资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
AKA嵌入式兴趣小组系列专题 Assabet Sa1110开发板嵌入式Linux移植简介 姚文龙Alan Yao 0目录 简要说明准备交叉编译工具编译redboot烧录redboot使用redboot装载并执行kernel装载并运行文件系统 1简要说明 1 1版权说明1 2体例说明1 3assabet sa11101 4ecos redboot1 5常用术语 1 1版权说明 源码都来自opensource社区 用google可以搜索到 所以 不再详细标明出处 版权属于原作者 本文档由AlanYao为AKA嵌入式小组编写 不得用于商业用途 具体的Assabet开发板来自于中基教育软件产品SPC 转载本文档时 不得损害该公司的商业利益 1 2体例说明 本文中提到的源码都放在本文档的同一目录下 所提到的版本 基本上只能保证该版本可用 并不代表更新或更旧的版本可用 本文档的说明均以同一目录下的资料为依据 并且此存放目录是 opt orig所有源码解压后 都放在 opt src 代表root用户的操作 代表普通用户的操作 1 3assabet sa1110 Intel公司的StrongARM1110 SA 1110 是一款通用RISC微处理器 arm体系结构 16KB的指令Cache 8KB的数据Cache 一个512B小型Cache 一个writebuffer 一个readbuffer 一个内存管理单元 MMU 集成在一个芯片中 功耗是206MHz 400mWAssabet开发板是基于sa1110的 有PCMCIA CF插槽和JTAG接口 可以用来调试32M的内存和32M的flash详细说明参见sa1110的datasheet sa1100 278240 pdf 1 4ecos redboot ecos的源代码和相关工具可以从eCOS主页获得 1 5常用术语 Host 一般指用来开发的PC机 这里是 PIII1G256M redhat7 3 即i686 pc linux gnuTarget 指的是assabet开发板 即arm linuxBuild 是指当前工作的编译工具所在的主机构建 一般不提倡在源码目录下直接编译 而是新建一个build目录 通过configure脚本程序生成build代码 然后编译 这里 所有的build目录 都在 opt build下cross compile 交叉编译工具 就是在host上编译能在target上运行的程序 这里放在 opt arm下target根目录 target上运行的程序和系统存放在host上的根目录 这里是 opt arm arm linux 2编译交叉编译工具 2准备2 0更新本地gcc编译器2 1建立Kernel的头文件2 2编译Binutils工具2 3编译C编译器2 4编译GLIBC库2 5编译C 编译器2 6编译kernel和helloworld 2准备 建立相关目录 mkdir p opt orig mkdir p opt src mkdir p opt build mkdir p opt arm将所有文件拷贝到 opt orig下 2 0更新本地gcc编译器 源文件gcc 2 95 3 tar gz以root用户编译 cd opt src tar xzvf opt orig gcc 2 95 3 tar gz mkdir p opt build gcc local cd opt build gcc local opt src gcc 2 95 3 configure prefix usr make makeinstall确认GCC版本是2 95 3 gcc version 2 1建立Kernel的头文件 源文件linux 2 4 18 tar gzpatch 2 4 18 rmk3 gzdiff 2 4 18 rmk3 pxa2 gzPatch cd opt src tar xzvf opt orig linux 2 4 18 tar gz gzip dc opt orig patch 2 4 18 rmk3 gz patch p1 d opt src linux gzip dc opt orig diff 2 4 18 rmk3 pxa2 gz patch p1 d opt src linux mkdir p opt arm arm linux includee 2 1建立Kernel的头文件 配置ARMlinuxkernel cd opt src linux cparch arm def configs assabet config yes makeoldconfigARCH arm makedep这里会出错 不影响 cp arfinclude asm arm opt arm arm linux include asm cp arfinclude linux opt arm arm linux include linux 2 2编译Binutils工具 源文件binutils 2 12 tar gz编译 cd opt src tar xzvfsrc binutils 2 12 tar gz mkdir popt build binutils cd opt build binutils opt src binutils 2 12 configure target arm linux prefix opt arm make makeinstall 2 2编译Binutils工具 这里生成的Bin工具是用于ELF执行格式的 前缀使用arm linux将Bin工具添加的执行路径中 exportPATH opt arm bin PATH别忘了在 HOME bashrc profile中添加上述语句 使路径修改长期有效 2 3编译C编译器 编译C 编译器 必须在编译GLIBC之后 才能进行 在这里 要先编译C编译器 然后用C编译器编译GLIBC 最后再编译C 编译器要记住host类型 在后续工作中需要 一般会在configure执行时的第一行 configuringforai686 pc linux gnuhost 这里利用 编译本地GCC 中的源码树 2 3编译C编译器 编译 mkdir p opt buld gcc cd opt build gcc opt src gcc 2 95 3 configure target arm linux prefix opt arm with cpu strongarm disable languages with headers opt src linux include make i make iinstall这里make带上 i选项 是要忽略make过程中的所有错误 如果不带这个参数 那么就不能正确编译glibcc a文件 并在编译GLIBC时出错 2 4编译GLIBC库 源文件glibc 2 2 5 tar gzglibc linuxthreads 2 2 5 tar gz准备源码 cd opt src tar xzvf opt orig glibc 2 2 5 tar gz cdglibc 2 2 5 tar xzvf opt orig glibc linuxthreads 2 2 5 tar gz mkdir p opt build glibc cd opt build glibc 2 4编译GLIBC库 编译C编译器时曾经记录host类型 在这里用作 build类型 因为这个类型 configure不能自己识别出来 配置编译 CC arm linux gcc opt src glibc 2 2 5 configure target arm linux build i686 pc linux gnu enable add ons prefix opt arm arm linux make makeinstall 2 4编译GLIBC库 刚才是给target编译GLIBC 但是交叉编译工具也需要GLIBC库 编译C 编译器配置编译 CC arm linux gcc opt src glibc 2 2 5 configure target arm linux build i686 pc linux gnu enable add ons prefix opt arm make makeinstall 2 4编译GLIBC库 其实也可以直接copy cp arf opt arm arm linux include opt arm include cp arf opt arm arm linux lib opt arm lib但是这种情况下 就要手工修改文件 opt arm lib libc so GROUP opt arm lib libc so 6 opt arm lib libc nonshared a 2 6编译kernel和helloworld 编译kernel cd opt src linux makedepARCH arm makezImageARCH arm源文件hello c includeintmain printf helloworld n return0 使用交叉编译环境工具编译hello c arm linux gcc v ohelloarmhello c 3编译bootloader bootloader选用redhat的redboot 详细用户 http pficheux free fr eyrolles linux embarque docs externes redboot pdf现成的二进制文件 http kernel pe kr pub armlinux people nico redboot详细用户说明中关于assabet的部分是5 5IntelSA1110 Assabet 这里详细介绍如何用源码编译bootloader 3编译redboot 3 1准备主机环境3 2编译ecosconfig3 3编译arm elf3 4编译redboot 3 1准备主机环境 从ftp ftp skynet ie cvs ecos latest tar gz获取最新Ecos现在使用放在 opt src下的ecos tgz cd opt src tarzxvf opt orig ecos tgz exportECOS REPOSITORY opt src ecos packages 3 2编译ecosconfig Ecosconfig是ecos的配置工具 编译生成的ecosconfig一般比直接下载的更不容易出问题 mkdir p opt build ecosconfig mkdir p opt ecos tools cd opt build ecosconfig opt src ecos configure prefix opt ecos tools with tcl usr make makeinstall exportPATH opt ecos tools bin PATH 3 3编译arm elf Ecos使用的是arm elf工具 前面编译的arm linux也是可以用的 但时常也会失灵 这里专门为ecos的redboot编译arm elf工具 一般情况下 很难用于其它地方所用的源码 都是前面保留在 opt src下的 opt src gcc 2 95 3 opt src binutils 2 12Arm elf的存放目录 opt arm elf 3 3编译arm elf 编译binutils mkdir opt build binutils elf cd opt build binutils elf opt src binutils 2 12 configure target arm elf prefix opt arm elf make makeinstall exportPATH opt
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号