嵌入式操作系统启动流程 下载本文

内容发布更新时间 : 2024/10/28 18:22:58星期一 下面是文章的全部内容请认真阅读。

1 什么是BSP:

1. 在通电后,初始化硬件(bootrom)

2. 支持VxWorks和硬件驱动通信(Image的底层驱动) 3. 本质上是硬件驱动、初始化的合集;

2 研究BSP内容:

1. 2. 3. 4. 5. 6. 7.

系统image的生成和image的种类 image的download下载过程 系统的启动顺序和过程

调试环境的配置及远端调试的方式和方法 相应BSP设置文件的修改(网络,串口..) BSP各文件的组成和作用.

要对系统底层驱动清楚,也就是对CPU及相关的硬件有所了解.主要是32微处理器(上电启动过程, download image的方式方法,读写ROM,地址空间分配,MMU,寄存器,中断定义,..).参照硬件资料,多读一些源码会有所帮助.

3 BSP主要文件目录的组成及主要文件的作用:

3.1 目录target/config/All:

这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文件.

configAll.h:

缺省定义了所有VxWorks的设置.如果不用缺省的设置,可在BSP目录下的config.h文件中用#define或#undef方式来更改设置. bootInit.c:

在romInit.s后,完成Boot ROM的第二步初始化.程序从romInit.s中的

romInit()跳到这个文件中的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文件. Makefile

一些命令行控制images的生成,参见 README

BSP发布纪录,版本,总的文档 config.h

包括所有涉及CPU主板的设置及定义(includes,definations),参见 configNet.h

网络驱动的主要设置文件,主要对END驱动设置. romInit.s

汇编语言文件,是VxWorks Boot ROM和ROM based image的入口,参见 sysALib.s

汇编语言文件,程序员可以把自己的汇编函数放在这个文件里,在上层调用.VxWorks image的入口点_sysInit在这个文件里,是在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二进制文件 VxWorks.st

完全的,连结后,standalone,带有符号表的VxWorks二进制文件 4 VxWorks Image

4.1 VxWorks images consist of:

Text segment---executable instruction.

? Data segment---Initilized 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 Tornado, 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 中