




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在Linux内核移植到ARM处理器时,有一个问题不能忽视,那就是移植 Boot 一 loader , Linux内核启动部分的代码需要判断从 Boot - loader传递过来的寄存器 值。为什么需要Boot - loader呢?这与硬件本身的启动方式有关,有了 Boot 一 loader可以方便系统的开发。通过这段 Boot - loader小程序,可以初始化硬件 设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以 便为最终调用操作系统内核准备好正确的环境。(1) Boot loader所支持的CPU和嵌入式板每种不同的CPU体系结构都有不同的Boot loader ,
2、有些Boot loader 也支持多种体系结构的CPU,如U Boot。除了依赖丁 CPU的体系结构外, Boot loader实际上也依赖丁具体的嵌入式板级设备的配置。这也就是说,对 丁两块不同的嵌入式板而言,即使它们是基丁同一种CPU而构建的,要想让运行在一块板子上的Boot-loader 程序也能运行在另一块板子上,通常也都需要修改Boot loader的源程序。(2) Boot loader的安装媒介系统加电或复位后,所有的CPU通常都从某个预先安排的地址上取指令。比 如,基丁 ARM内核的CPU在复位时通常都从地址 OX00000000 取它的第一条 指令。而基丁 CPU构建的嵌入式
3、系统通常都有某种类型的固态存储设备(比如: ROM、EEPROM或Hash等)被映射到这个预先安排的地址上。因此在系统加电 后,CPU将首先执行Boot -loader程序。如图所示就是一个同时装有 Boot 一 loader 内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空 间分配结构图。bool parameterskernelroot filesystembootloader图固态存储设备的典型空间分配结构(3)用来控制Boot-loader 的设备或机制主机和目标机之间一般通过 申口建立连接,Boot - loader软件在执行时通常 会通过申口来进行I/O,比如:输出打
4、印信息到申口,从申口读取用户控制字符(4) Boot-loader的启动过程是单阶段还是多阶段通常多阶段的Boot-loader能提供更为复杂的功能,以及更好的可移植性。 从固态存储设备上启动的Boot-loader 大多都是2阶段的启动过程,即启动过程 可以分为stage 1 和stage2两部分。(5) Boot-loader 的操作模式大多数Boot-loader都包含两种不同的操作模式:启动加载”模式和 下载”模式,这两种区别不是很大。从最终用户的角度看,Boot-loader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。启动加载模式:这种模式也称为自主
5、”模式。即Boot -loader从目标机上的某个固态存储设备上将操作系统加载到SDRAM中运行,整个过程并没有用户的介入。这种模式是Boot - loader的正常工作模式,因此在嵌入式产品发布时, Boot-loader 必须工作在这种模式下。下载模式:在这种模式下,目标机上的 Boot -loader将通过申口连接或网络 连接等通信手段从 主机(Host)下载文件,比如:下载内核映像和根文件系统映 像等。从主机下载的文件通常首先被 Boot - loader保存到目标板的SDRAM 中,然后 再被Boot-loader 写到目标板上的Hash类固态存储设备中。Boot - loader的
6、这种模式通常在第一次安装内核与根文件系统时被使用;此 夕卜,以后的 系统更新也会使用Boot loader的这种工作模式。工作丁这种模式下的Boot loader通常都会向它的终端用户提供一个简单的命令行接口 。(6) Boot - loader与主机之间进行文件传输所用的通信设备及协议最常见的情况就是,目标机上的 Boot -loader通过申口与主机之间进行文件 传输,传输协议通 常是xmodem / ymodem / zmodem 协议中的一种。但 是,申口传输的速度是有限的,因此通过以太网连接并借助TFTP协议来下载文件是个更好的选择。此外,主机方所用的软件也要考虑。比如,在通过以太网
7、连接和TFTP协议来下载文件时,主机方必须有一个软件用来提供TFTP服务。(7) Boot loader的主要任务与典型结构框架首先做一个假定:假定内核映像与根文件系统映像都被加载到SDRAM中运行。因为,在嵌入式系统中内核映像与根文件系统映像也可以直接在ROM或n ash这样的固态存储设备中直接运行,但这种做法无疑是以运行速度的牺牲为代价的。从操作系统的角度 看,Boot - loader的总目标就是正确地调用内核来执 行。另外,由于Boot loader依赖于CPU的体系结构,因此大多数 Boot loader都分 为stage 1和stage 2 两大部分。依赖于CPU体系结构的代码,比
8、 如设各初始化代码等,通常都放在 stagel中,而且通常都用ARM汇编语言来实 现,以达到短小精悍的目的。而stage 2则通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。Boot loader的stage 1 和stage 2 通常包括如表所示的 5个步骤(以执 行的先后顺序列出)。(8)申口终端Boot - loader程序设计与实现后,申口终端就能正确地收到打印信息了。此 外,向申口终端打印信息也是一个非常重要而乂有效的调试手段。但是,经常会碰到申口终端显示乱码或根本没有显示的问题。发生这样的问题 主要有两种原因:Boot loader对申口的初始化
9、设置不正确。运行在Host端的终端仿真程序对申口的设置不正确,这包括波特率、奇偶 校验、数据位和停止位等方面的设置。此外,有时也会碰到这样的问题,那就是:在 Boot -loader的运行过程中可 以正确地向申口终端输出信息,但当 Boot -loader启动内核后却无法看到内核的 启动输出信息。对发生这一问题的原因可以从以下几个方面来考虑。首先确认内核编译时配置了对申口终端的支持,并配置了正确的申口驱动程 序。Boot - loader对申口的初始化设置可能会和内核对申口的初始化设置不一 致,例如,Boot loader和内核对其CPU时钟频率的设置不一致。最后,还要确认Boot - loa
10、der所用的内核基地址必须和内核映像在编译时 所用的运行基地址一致,尤其是对于ARM Linux而言'。假设内核映像在编译时 用的基地址是0XC0028000 ,但Boot - loader却将它加载到0XC0010000 处 去执行,那么内核映像就不能正确地执行。在Linux内核移植到ARM处理器时,有一个问题不能忽视,那就是移植 Boot 一 loader , Linux内核启动部分的代码需要判断从 Boot - loader传递过来的寄存器 值。为什么需要Boot - loader呢?这与硬件本身的启动方式有关,有了 Boot 一 loader可以方便系统的开发。通过这段 Boo
11、t - loader小程序,可以初始化硬件 设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以 便为最终调用操作系统内核准备好正确的环境。(1) Boot loader所支持的CPU和嵌入式板每种不同的CPU体系结构都有不同的Boot loader ,有些Boot loader 也支持多种体系结构的CPU,如U Boot。除了依赖丁 CPU的体系结构外, Boot loader实际上也依赖丁具体的嵌入式板级设备的配置。这也就是说,对 丁两块不同的嵌入式板而言,即使它们是基丁同一种CPU而构建的,要想让运行在一块板子上的Boot-loader 程序也能运行在另一块板子上,通
12、常也都需要修改Boot loader的源程序。(2) Boot loader的安装媒介系统加电或复位后,所有的CPU通常都从某个预先安排的地址上取指令。比 如,基丁 ARM内核的CPU在复位时通常都从地址 OX00000000 取它的第一条 指令。而基丁 CPU构建的嵌入式系统通常都有某种类型的固态存储设备(比如: ROM、EEPROM或Hash等)被映射到这个预先安排的地址上。因此在系统加电 后,CPU将首先执行Boot -loader程序。如图所示就是一个同时装有 Boot 一 loader 内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空 间分配结构图。bool param
13、eterskernelroot filesystembootloader图固态存储设备的典型空间分配结构(3)用来控制Boot-loader 的设备或机制主机和目标机之间一般通过 申口建立连接,Boot - loader软件在执行时通常 会通过申口来进行I/O,比如:输出打印信息到申口,从申口读取用户控制字符(4) Boot-loader的启动过程是单阶段还是多阶段通常多阶段的Boot-loader能提供更为复杂的功能,以及更好的可移植性。 从固态存储设备上启动的Boot-loader 大多都是2阶段的启动过程,即启动过程 可以分为stage 1 和stage2两部分。(5) Boot-loa
14、der 的操作模式大多数Boot-loader都包含两种不同的操作模式:启动加载”模式和 下载”模式,这两种区别不是很大。从最终用户的角度看,Boot-loader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。启动加载模式:这种模式也称为自主”模式。即Boot -loader从目标机上的某个固态存储设备上将操作系统加载到SDRAM中运行,整个过程并没有用户的介入。这种模式是Boot - loader的正常工作模式,因此在嵌入式产品发布时, Boot-loader 必须工作在这种模式下。下载模式:在这种模式下,目标机上的 Boot -loader将通过申口连接或网
15、络 连接等通信手段从 主机(Host)下载文件,比如:下载内核映像和根文件系统映 像等。从主机下载的文件通常首先被 Boot - loader保存到目标板的SDRAM 中,然后 再被Boot-loader 写到目标板上的Hash类固态存储设备中。Boot - loader的这种模式通常在第一次安装内核与根文件系统时被使用;此 夕卜,以后的 系统更新也会使用Boot loader的这种工作模式。工作丁这种模式下的Boot loader通常都会向它的终端用户提供一个简单的命令行接口 。(6) Boot - loader与主机之间进行文件传输所用的通信设备及协议最常见的情况就是,目标机上的 Boot
16、 -loader通过申口与主机之间进行文件 传输,传输协议通 常是xmodem / ymodem / zmodem 协议中的一种。但 是,申口传输的速度是有限的,因此通过以太网连接并借助TFTP协议来下载文件是个更好的选择。此外,主机方所用的软件也要考虑。比如,在通过以太网连接和TFTP协议来下载文件时,主机方必须有一个软件用来提供TFTP服务。(7) Boot loader的主要任务与典型结构框架首先做一个假定:假定内核映像与根文件系统映像都被加载到SDRAM中运行。因为,在嵌入式系统中内核映像与根文件系统映像也可以直接在ROM或n ash这样的固态存储设备中直接运行,但这种做法无疑是以运行
17、速度的牺牲为代价的。从操作系统的角度 看,Boot - loader的总目标就是正确地调用内核来执 行。另外,由于Boot loader依赖于CPU的体系结构,因此大多数 Boot loader都分 为stage 1和stage 2 两大部分。依赖于CPU体系结构的代码,比 如设各初始化代码等,通常都放在 stagel中,而且通常都用ARM汇编语言来实 现,以达到短小精悍的目的。而stage 2则通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。Boot loader的stage 1 和stage 2 通常包括如表所示的 5个步骤(以执 行的先后顺序列出)。(8)申口终端Boot - loader程序设计与实现后,申口终端就能正确地收到打印信息了。此 外,向申口终端打印信息也是一个非常重要而乂有效的调试手段。但是,经常会碰到申口终端显示乱码或根本没有显示的问题。发生这样的问题 主要有两种原因:Boot loader对申口的初始化设置不正确。运行在Host端的终端仿真程序对申口的设置不正确,这包括波特率、奇偶 校验、数据位和停止位等方面的设置。此外,有时也会碰到这样的问题,那就是:在 Boot -loader的运行过程中可 以正确地向申口终端输出信息,但当 Boot -loader启动内核后却无法看到内核的 启动输出信息。对发生这一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备维修值班管理制度
- 设备设施日常管理制度
- 设计公司事故管理制度
- 设计园林公司管理制度
- 证书介质领用管理制度
- 诊所医保网络管理制度
- 诊所营销日常管理制度
- 试验质量奖惩管理制度
- 财务资金计划管理制度
- 财政收费票据管理制度
- 重庆市沙坪坝区南开中学校2023-2024学年八年级下学期期末英语试题(无答案)
- 广东省深圳市南山区2023-2024学年七年级下学期期末英语试题
- 2022-2023学年江苏省苏州市高二下学期学业质量阳光指标调研卷英语试卷
- 偏差行为、卓越一生3.0版
- 广告说服的有效实现智慧树知到期末考试答案章节答案2024年湖南师范大学
- 苏教版小学四年级下册科学期末测试卷及参考答案1套
- 体育场馆物业管理操作规范
- 2024年“才聚齐鲁成就未来”水发集团限公司社会招聘重点基础提升难、易点模拟试题(共500题)附带答案详解
- 24春国开电大《旅游学概论》形考任务1-4试题及答案
- 生命伦理学:生命医学科技与伦理智慧树知到期末考试答案章节答案2024年山东大学
- JT∕T1180.4-2018交通运输企业安全生产标准化建设基本规范第4部分:道路普货运输
评论
0/150
提交评论