




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章嵌入式系统开发环境的建立 本章要点 主机开发环境的建立嵌入式Linux系统内核的裁剪 编译嵌入式Linux系统开发板的烧写 建立主机开发环境 1 交叉编译什么是交叉工具链 为什么要使用交叉工具链 所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码 安装 进行嵌入式开发前 首先需安装交叉工具链 步骤如下 1 解压工具链到某一目录下例 tarxvzfarm linux gcc 4 3 2 tar gz C 2 修改 etc profile 添加pathmunge usr local arm 4 3 2 bin3 执行source etc profile 使用 编译器 arm linux gccarm linux gcchello c ohello反汇编工具 arm linux objdumparm linux objdump D ShelloELF文件查看工具 arm linux readelfarm linux readelf ahelloarm linux readelf dhello查看hello使用的动态库 编译嵌入式Linux内核 嵌入式Linux系统由Linux内核与根文件系统两部分构成 两者缺一不可 内核制作 制作嵌入式平台使用的Linux内核 方法和制作PC平台的Linux内核基本一致 下面使用对比的方式介绍如何制作用于嵌入式开发板的内核 1 清除原有配置与中间文件x86 makedistcleanarm makedistclean2 配置内核x86 makemenuconfigarm makemenuconfigARCH arm3 编译内核x86 makebzImagearm makeuImageARCH armCROSS COMPILE arm linux 根文件系统 根文件系统是Linux启动时使用的第一个文件系统 没有根文件系统 Linux将无法正常启动 根文件系统由一系列目录组成 目录中包含了应用程序 C库 以及相关的配置文件 根文件系统 1 创建根文件系统的目录mkdirrootfscdrootfsmkdirbindevetclibprocsbinsysusrmnttmpvarmkdirusr binusr libusr sbinlib modules2 创建设备文件cddev mknod m666consolec51mknod m666nullc13cd 3 安装 etctaretc tar gz C xxx rootfs 根文件系统 4 编译内核模块进入Linux内核目录 linux2 6 29 makemodulesARCH armCROSS COMPILE arm linux 5 安装内核模块makemodules installARCH armINSTALL MOD PATH xxx rootfs 根文件系统 Busybox 嵌入式开发中的瑞士军刀 6 配置busybox进入busybox目录执行makemenuconfiga 进入BusyboxSettingsbuildOptions 选中 Buildbusyboxasastaticbinary 静态链接CrossCompilerprefix arm linux InstallationOptions 选中 Don tuse usr 选中该项可以避免busybox被安装到宿主系统的 usr目录下 破坏宿主系统BusyboxInstallationPrefix xxx rootfs 该选项表明编译后的busybox的安装位置 根文件系统 7 编译 安装busyboxmakeARCH armCROSS COMPILE arm linux makeinstall Ramdisk 基于前面步骤制作好的根文件系统 可进一步制作ramdisk 步骤如下 1 genext2fs b8192 d xxx rootfsramdisk genext2fs为产生ramdisk的工具 2 gzip 9 framdisk BootLoader 什么是BootLoader 软件层次 一个嵌入式系统从软件角度来看分为三个层次 1 引导加载程序包括固化在固件 firmware 中的boot程序 可选 和BootLoader两大部分 2 Linux内核特定于嵌入式平台的定制内核 3 文件系统包括了系统命令和应用程序 一个同时装有BootLoader 内核的启动参数 内核映像和根文件系统映像的固态存储设备的典型空间分配结构图 软件层次 回忆PC PC机中的引导加载程序由BIOS 其本质是一段固件程序 和GRUB或LILO一起组成 BIOS在完成硬件检测和资源分配后 将硬盘中的引导程序读到系统内存中然后将控制权交给引导程序 引导程序的主要任务是将内核从硬盘上读到内存中 然后跳转到内核的入口点去运行 即启动操作系统 定义 在嵌入式系统中 通常没有像BIOS那样的固件程序 因此整个系统的加载启动任务就完全由BootLoader来完成 比如在一个基于ARM7TDMIcore的嵌入式系统中 系统在上电或复位时都从地址0 x00000000开始执行 而在这个地址处安排的通常就是系统的BootLoader程序 定义 简单地说 BootLoader就是在操作系统运行之前运行的一段小程序 通过这段小程序 可以初始化硬件设备 从而将系统的软硬件环境带到一个合适的状态 以便为最终调用操作系统做好准备 安装 系统加电或复位后 所有的CPU通常都从CPU制造商预先安排地址开始执行 比如 S3C2410在复位后从地址0 x00000000起开始执行 而嵌入式系统则将固态存储设备 比如 FLASH 安排在这个地址上 而bootloader程序又安排在固态存储器的最前端 这样就能保证在系统加电后 CPU首先执行BootLoader程序 移植 为什么需要进行bootloader移植 移植 每种不同的CPU体系结构都有不同的BootLoader 除了依赖于CPU的体系结构外 BootLoader还依赖于具体的嵌入式板级设备的配置 比如板卡的硬件地址分配 外设芯片的类型等 这也就是说 对于两块不同的开发板而言 即使它们是基于同一种CPU而构建的 但如果他们的硬件资源或配置不一致的话 要想在一块开发板上运行的BootLoader程序也能在另一块板子上运行 还是需要作修改 流程 BootLoader的启动过程可分为单阶段 Single Stage 和多阶段 Multi Stage 两种 通常多阶段的BootLoader具有更复杂的功能 更好的可移植性 从固态存储设备上启动的BootLoader大多采用两阶段 即启动过程可以分为stage1和stage2 stage1完成初始化硬件 为stage2准备内存空间 并将stage2复制到内存中 设置堆栈 然后跳转到stage2 流程 BootLoader的stage1通常包括以下步骤 硬件设备初始化为加载BootLoader的stage2准备RAM空间拷贝BootLoader的stage2到RAM空间中设置好堆栈 why 跳转到stage2的C入口点 流程 BootLoader的stage2通常包括以下步骤 初始化本阶段要使用到的硬件设备将内核映像和根文件系统映像从flash上读到RAM中调用内核 内存分布 Uboot介绍 Uboot是德国DENX小组开发的用于多种嵌入式CPU MIPS x86 ARM XScale等 的bootloader程序 UBoot不仅支持嵌入式Linux系统的引导 还支持VxWorks QNX等多种嵌入式操作系统 从下面地址可以下载到uboot的源代码 ftp ftp denx de pub u boot 目录结构 进入到UBOOT目录 可以得到如下的目录结构 boardcommoncpudiskdocdriversdttexamplesfsinclude 目录结构 lib armlib genericlib i386lib m68klib microblazelib mipslib nioslib nios2lib ppcnetpostrtctools 目录结构 Board和开发板有关的文件 每一个开发板都以一个子目录出现在当前目录中 比如 SMDK2410 子目录中存放与开发板相关的文件 Common实现Uboot支持的命令 Cpu与特定CPU架构相关的代码 每一款Uboot下支持的CPU在该目录下对应一个子目录 比如有子目录arm920t等 目录结构 Disk对磁盘的支持 Doc文档目录 Uboot有非常完善的文档 推荐大家参考阅读 DriversUboot支持的设备驱动程序都放在该目录 比如各种网卡 支持CFI的Flash 串口和USB等 目录结构 Fs文件系统的支持 IncludeUboot使用的头文件 该目录下configs目录有与开发板相关的配置头文件 如smdk2410 h 该目录下的asm目录有与CPU体系结构相关的头文件 Net与网络协议栈相关的代码 例如 TFTP协议 RARP协议的实现 Tools生成Uboot的工具 如 mkima
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 偏旁的演变课件
- 你好地球绘本课件
- 音乐制作室管理办法
- 网络信息核查管理办法
- 2025年乡镇拆迁面试题及答案
- 出行司机交通安全培训课件
- 2025年中央一号文件划重点+70题(含答案)
- 基于微服务架构的插件式自动化部署研究-洞察及研究
- 出生证明真伪鉴定课件
- 出国工作前安全培训教育课件
- 高三一轮复习课件
- 驾驶员安全教育培训考试试卷含答案
- 2025广东河源市暨南大学附属第五医院急需紧缺人员招聘117人(第二批)笔试参考题库附答案解析
- 2025江苏航空产业集团有限责任公司人才招聘备考试题及答案解析
- 污水处理站运行记录台账范本
- 2025年消毒供应室业务学习考试试题(附答案)
- 无人机地下结构探测技术-洞察及研究
- 校园基孔肯雅热防控措施课件
- 图像特征提取讲解
- 多彩贵州地方课程课件
- 劳技自制收纳盒课件
评论
0/150
提交评论