论文研究-基于U-boot构建嵌入式系统的BootLoader .pdf

所需积分/C币:9 2019-08-15 11:14:49 213KB .PDF
44
收藏 收藏
举报

基于U-boot构建嵌入式系统的BootLoader,马骁,张广,BootLoader(引导装载程序)是嵌入式系统软件开发的第一个环节,通过它将操作系 统和硬件平台衔接在一起。由于BootLoader 与硬件平台联系��
国武技论文在线 储设各中。 与主机进行文件传输所用通信设备及协议 最常见的情况就是目标机上的 通过串口与主机之间进行文件传输传输协议 通常是 协议中的一种。但是串口传输的速度是有限的因此通过 以太网连接并借助议来下载文件是个更好的选择这也是所采用的方式。 的主要任务与典型结构框架 从操作系统的角度看 的总目标就是正确地调用內核来执行。另外 的实现依赖于的体系结构因此大多数 都分为 和 两大部分。依 赖于体系结构的代码如设备初始化代码等通常都放在中用汇编语言来实现 通常 用话言来实现。这样可以实现更复杂的功能代码会具有更好的可读性和可移 植性 在 勿% 主要完成以下的工作: ·基本的硬件初始化,包括屏蔽所有的中断,设置的速度和时钟频率, 初始 化,初始化关闭内部指令和数据 为加载 的可执行映像准备空间。通常为了获取更快的执行 速度,把 加载到空间来执行。因此为了加载 的 要提前准备好 段可用的 空间范围。 ·拷贝 的 可执行映像到 空间中。设置好堆栈指针,这是 为执行的语言代码做准备。 ·跳转到 的入口点。 的 用汇编语言跳转到函数入∏点处。 由于 的代码通常是用语言米实现的,目的是实现更复杂的功能和实现更好 的代码的可读性和可移植性。但是与普通的语言应用程序不同的是,在编译和链接 这样的应用程序时,不能使用库中的任何支持函数。 初始化本阶段要是用的硬件设备,包括初始化串口,初始化定时器等,在初始化这些 设备之前,可以输出一些打印信息 ·检测系统的内存映射,所谓内存映射就是指在整个物理地址空间里面指定哪些地址范 围被分配用来寻址单 ·加载内核映像和根文件系统映像,这里包括规划内存占用的布局和从 中拷贝 的数据 ·设置内核的启动参数。 和 中的地址空间分配如下图所示,从低地址到高地址依次是 的可执行映象, 的可执行映像,内核映像以及 。由于 是在 中执行的,故还需要在的地址空间开辟一块地址范围用于 存放 的可执行映像,执行时山堆栈指针来完成跳转功能 国武技论文在线 唯栈指针 为叫执行影像准 备的地址范围,大小 地址空间 内核映像 地址空间 的可执行 映像的最大大小: 的可执行 映像大小: 图2地址空间分配 简介 全称 ,是遵循条款的开放源码项目。从 逐步发展演化而来。其源码目录、编译形式与 内核很相似,事 实上,不少 源码就是相应的内核源程序的简化,尤其是一些设备的驱动程序 支持 系统 嵌入式操作系统。其口 前要支持的日标操作系统是 这是 中 的一层含义,另外一层含义则是 除了支持 系列的处理器外,还能 支持 等诸多常用系列的处理器 对 系 列处理器支持最为丰富,对的支持最完善 的特点 开放源码; 支持多种嵌入式操作系统内核,如 支持多个处理器系列,如 较扃的可靠性和稳定性; 高度灵活的功能设置,适合 调试、操作系统不同引导要求、产品发布等; 丰富的设各驱动源码,如串口、以太网 键盘等; 较为丰富的开发调试文档与强人的网络技术支持 国武技论文在线 主要目录结构 了解 源代码的目录结构是非常重要的因为在向开发板上移植时往往需要结合 具体板的信息来作出相应的修改。而如何修改、在何处修改就需要对 的日录结构有 很深的认识。以下是它的目求结构以及目求存放代码的用途 目标板相关文件,主要包含 驱动 独立于处理器体系结构的通用代码,如内存大小探测与故障检测; 与处理器相关的文件,如 子目录下含串凵、网凵、驱动及中断初 始化等文件 通用设备驱动,如 驱动目前对 支持较好; 的说明文档 可在 下运行的示例程序;如 头文件, 子目录下与目标板相关的配置头文件是移植过程中 经常要修改的文件 处理器体系相关的文件,如 目求包含与 体系结构相关的文 件; 与网络功能相关的文件目录,如 上电自检文件目录,尚有待于进一步完善 驱动程序; 用于创建 和镜像文件的工具 与处理器体系相关的编译或者链接选项 的主 的移植要点 本文主要探讨以 项目为例来移植的过程关于如何在环境下建立 开发环境不进行过多赘述。这里处理器采用的是 体系下的 片的 片的 操作系统采用 交叉编译器为 以及源代码为 来完成 引导程序的分析和移植。 建立开发板 在 的 目录下就是其支持的开发板数量非常多。这里我们选择 开发板作为蓝本,在该开发板的基础上进行移植能够降低移植工作的难度诚少移植的工作 在 下建立开发板目录 修改 文件,添加我们自己开发板的配置信息 在 中找到 的配冒信息,在下面加上与 相关的信息: 说明:第一个 表示用 头文什;表示用体系结 表示是 系列;最后一个 表示用 里的文件。 建立开发板的头文件 用以下命令建立 国武技论文在线 建立 廾发板的私有目录,即把 目录卜的所有文件拷贝到 目录下,包括 用以下命令实现: 试编译 选定 作为编译的对象: 在 生成 文件和 文什,其内容如下 说明我们自u的廾发板的头文件已经被包含了。 设置编译⊥具,我们的编译上具是 ,因此要在 文件里做相应的修 将 修改为: 执行。如果可以完成编译的全过程,说明 栘植框架成功建立。 但是显然现在编译生成的这个 仍然不适合我们的廾发板,实际上它还是为 廾发板设计的溟代码 结合具体开发板修改文件 般来说虽然 可以支持很多开发板但是在开发时有些文件还是要注意结合开 发板的具体信息来修改以下是需要注意侈改的几个地方 开发板的配置文件 在 中添加相应的文件并新建个⊥程 ⊥程建立后在软件中进入 即我们开发板的头文件,可以找到: 这是定义用户的类型和板子类型,系统中是使用 板子 血我们所要使用的是 和自u的板子。所以应该将这两句话修改为: 这样,系统就会自动寻找和板子的相关信息 的设置 在 工程中我们用到了片的 如果开发板的 和所选择的相近廾发板并不相同就需要在 作相应修改。该程序主 要完成的功能包括初始化、打卬信息、擦除和写入等操作。这里主要 国武技论文在线 修改型号它包括如卜儿个函数 初始化; 打印信息 擦除 写入 ,从内存复制数据。 与启动相关的寄存器 的参数设置,应根据日标板的数据于册与 和的相关位含义进行合理设置。这不仅关系到能否正常工作,而且与串口 调试有直接的关联。 此外,不同的目标板对 在中存放地址的要求不尽相同。事实上,这是由 处坦器中断复位向量来决定的,与主板硬件相关。对 主板来讲,就是由硬件配置 决定的。也就是说, 烧写具体位置是由硬件决定的,而不是程序设计米选 择的。程序中相应 起始地址必须与硬件所确定的硬件复位向量相吻合,因此, 的镜像文件必须烧写到起始位置。事实上,大多数的系列的处理器中断 复位向量是 和 。这也是一般所说的高位启动和低位启动的 所在位置。可通过修改 头文件中 和 中的 的设置来与硬件配相对应。 的设冒 要修改的地方主要是初始化内存控制器部分,由文件中的 完成 的设置,并由 中的 完成初始化 当串∏能输出以后, 移植是否顺利基本取决于 的驱动是否正确。与串∏调 试相比,这部分工作更为重要,难度更大。 目标板 驱动涉及三部分。一是 相关寄存器的设置:二是表:三是 上电初始化过程。任何一部分有问题,都 会影响 嵌入式操作系统甚至应用程序的稳定、可靠运行。所以说, 的驱动 不仅关系到 本身能否正常运行,而且还与后续部分相关,是相当关键的部分。 以太网接口的配置 在 中我们只使用网络接口,未使用 所以在 文 件的最后将 的宏定义删除。 朋除: 然后进入文件中,我们需要配置 为接口( 而源代码是配置的 ,所以我们须进行修改 修改其中的 为 管理帧寄存器( ):用于和兼容的设备进行通信,向寄存 器提供读写通道。 国武技论文在线 速度控制寄存器( ):提供始终频率控制,使得管理帧发挥作 用 编译生成目标文件 先运行 然后运行 再运行 之后会生成三个文件: 格式的文件,可以被大多数 程序识别; 进制文件,纯粹的 进制执行代码,不保存格 式和调试信息。这个文件一般用于烧录到用户开发板中; 格式,可以通过串行口下载到开发板中。 下载 并启动 为了减少的烧写次数在调试过程中并不直接将 映象和文件系统 映象烧写到再从加载到 中运行而是采取直接将它们从主机下 载到目标板的 中运行成功之后再烧写到中去。在 的移植过程中需要 反复下载引导程序和 映象到 中进行分析、调试和跟踪采用仿真器和 下载都会比较慢费时费丿通过方式下载会速度快、可靠性好。移植完成后 重新启动,若正常就会从串口中看到如下图信息,说明 已绎运行成功了。 U-Boot 1.1.6 CPU: MPC859DsInnA at 100 MHz:4 FB I-Cache 4 FB D-Cache FEC present+ Board: tc32oer yol859x board DA:32 FLASH: 8 MB+ serial+ Jut Err: serial Hit any key to stop autoboot 5+ 图 启动界面 结论 能够支持多种体系结构的处理器支持的开发板也越来越多。因为 仝依赖硬伻平台所以在新电跻板上需要移植 稈序。对于没有包括的或者新的开发板 处的办法就是选择一款相近的开发板在其基础上进行相应的修改。 是操作系统 和硬件的枢纽开发人员除了要掌握 的结构和工作流程外还要对相关硬件有一定 的了解所以从头来构建 是非常麻烦的。如果基于 构建嵌入式 的 国武技论文在线 就可以极大地简化廾发过程。 本文通过对移植过程的探讨给出了一个针对大多数开发板的操作步骤在 正常运行以后便可下载内核和文件系统进行下一步开发从而缩短开发周期。 参考文献 昭玲基于 的嵌入式 北京:北京航天航空人学出版社, 刘磊,秦志光基于构建的嵌入式的 计算机应用研究, 页页 畅卫功,刘尧猛 的分析与移植信息技术,年第期:页页 张进,姜威 的启动流稈及移植国外电子元器什,年第期:页页 宋国军,林学龙,嵌入式系统屮 基本特点及其移植方法单片机与嵌入式系统应用 页页

...展开详情
试读 9P 论文研究-基于U-boot构建嵌入式系统的BootLoader .pdf
立即下载 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 至尊王者

关注 私信
上传资源赚钱or赚积分
最新推荐
论文研究-基于U-boot构建嵌入式系统的BootLoader .pdf 9积分/C币 立即下载
1/9
论文研究-基于U-boot构建嵌入式系统的BootLoader .pdf第1页
论文研究-基于U-boot构建嵌入式系统的BootLoader .pdf第2页

试读结束, 可继续读1页

9积分/C币 立即下载