嵌入式操作系统启动流程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 什么是BSP:
1. 在通电后, 初始化硬件( bootrom )
2. 支持VxWorks和硬件驱动通信(Image的底层驱动)
3. 本质上是硬件驱动、初始化的合集;
2 研究BSP内容:
1. 系统image的生成和image的种类
2. image的download 下载过程
3. 系统的启动顺序和过程
4. 调试环境的配置及远端调试的方式和方法
5. 相应BSP设置文件的修改(网络,串口..)
6. BSP各文件的组成和作用.
7. 要对系统底层驱动清楚,也就是对CPU及相关的硬件有所了解•主要是32微处理
器(上电启动过程,download image的方式方法,读写ROM地址空间分
配,MMU寄存器,中断定义,..).参照硬件资料,多读一些源码会有所帮助.
3 BSP主要文件目录的组成及主要文件的作用:
3.1 目录target/config/All:
这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文件.
configAll.h:
缺省定义了所有VxWorks的设置.如果不用缺省的设置,可在BSP目录下的config.h文件中用
#define或#口门def方式来更改设置.
bootInit.c:
在romlnit.s 后,完成Boot ROM的第二步初始化.程序从romlnit.s 中的romlnit() 跳到这个文件中的romStart().来执行必要的解压和ROM image的放置.
bootConfig.c: 完成Boot ROM image的初始化和控制.
usrConfig.c: VxWorks image 的初始化代码.
3.2 目录target/config/comps/src:
涉及系统核心的components, 主要由target/config/All 中usrConfig.c 中函数调用
3.3 目录target/config/bspname:
包含系统或硬件相关的BSP文件.
一些命令行控制images 的生成, 参见
README
BSP发布纪录,版本,总的文档
config.h
包括所有涉及CPU主板的设置及定义(includes,definations), 参见
configNet.h
网络驱动的主要设置文件,主要对END驱动设置.
romInit.s
汇编语言文件,是VxWorks Boot ROM和ROM based image的入口,参见
sysALib.s
汇编语言文件,程序员可以把自己的汇编函数放在这个文件里,在上层调用.VxWorks image 的入口点_syslnit在这个文件里,是在RAM中执行的第一个函数.
sysLib.c
包含一些系统相关的函数例程, 提供了一个board-level 的接口,VxWorks 和应用程序可以以system-indepent 的方式生成. 这个文件还能包含目录target/config/comps/src 的驱动.
sysScsi.c
可选文件用于Scsi 设备设置和初始化.
sysSerial.c
可选文件用于所有的串口设置和初始化.
bootrom.hex
ASIC文件包含VxWorks Boot ROM代码
VxWorks
运行在目标机上,完整的,连结后的VxWorks二进制文件.
VxWorks.sym
完全的,连结后带有符号表的VxWorks二进制文件
完全的,连结后,standalone,带有符号表的VxWorks二进制文件
4 VxWorks Image
4.1 VxWorks images con sist of:
« Text segment---executable instruction.
« Data segment---In itilized global and static varibles.
• BSS.
4.2分类和工作机理:
Bootrom不是VxWorks Image,不参与讨论它本质上是一段Boot program,最少的系统初始化,主要用于启动装载VxWorks image.一般有压缩和不压缩两种形式,如bootrom 和boot_uncmp.与VxWorks image 的区别在于一个Bootrom 调用bootConfig.c, 而VxWorks 调用usrConfig.c.
VxWorks本质上分为两大类:
1. Vxworks分为两大类:
1)Uploaded images(通过网口、串口、硬盘、软盘、DOC、ROM中加载到RAM 中执行的)
vxWorks - basic Torn ado, shell 和symbol table 在主机端
vxWorks.st (文件很大)-独立的image,包含shell和symbol table在目标板运行2)ROM based images直接烧入ROM 的VxWorks):
VxWorks_Rom类的Vxworks又分了两类:1)驻留的resident 2不住留的
1. 不住留的ROM -Based VxWorks Image
2. 驻留的VxWorks_rom_resident
2. 说的再具体点:
1)可下载的Vxworks image
2) ROM中烧制的Image
1. vxWorks_rom - Tornado in ROM,非压缩,在RAM 中运行
2. vxWorks.res_rom_nosym - Tornado in ROM,非压缩,在ROM 中运行
3. vxWorks.st_rom - Stand-alone in ROM,压缩,RAM 中运行
4. vxWorks.res_rom - Stand-alone in ROM,非压缩,ROM 中运行
3. VxWorks在存储介质中的存放方式
5 启动
5.1启动概述
1. Bootrom的启动
最少的系统初始化,主要用于启动装载VxWorksimage. —般有压缩和不压缩两种形式, 如bootrom 和boot_uncmp.与VxWorksimage 的区别在于一个Bootrom 调用bootConfig.c, 而VxWorks调用usrConfig.c.