嵌入式操作系统启动流程_第1页
嵌入式操作系统启动流程_第2页
嵌入式操作系统启动流程_第3页
嵌入式操作系统启动流程_第4页
嵌入式操作系统启动流程_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、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 的方式方法 , 读

2、 写ROM地址空间分配,MMU寄存器,中断定义参照硬件资料, 多读一些源码会有所帮助 .3BSP主要文件目录的组成及主要文件的作用3.1 目录 target/config/All:这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文 件.configAll.h:缺省定义了所有VxWorks的设置.如果不用缺省的设置,可在BSP目录下的config.h 文件中用#define或#undef方式来更改设置.bootInit.c:在romlnit.s 后,完成Boot ROM的第二步初始化.程序从romlnit.s 中的 romlnit() 跳到这个文件中的romStart().

3、来执行必要的解压和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 的生成 , 参见READMEBSP发布纪录,版本,总的文档config.h包括所有涉及CPU主板

4、的设置及定义(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 的方式生成 .

5、这个文件还能包含目录 target/config/comps/src 的驱动.sysScsi.c可选文件用于 Scsi 设备设置和初始化 .sysSerial.c可选文件用于所有的串口设置和初始化 .bootrom.hexASIC文件包含 VxWorks Boot ROM代码VxWorks运行在目标机上,完整的,连结后的VxWorks二进制文件.VxWorks.sym完全的,连结后带有符号表的VxWorks二进制文件VxWorks.st完全的,连结后,standalone,带有符号表的VxWorks二进制文件4 VxWorks Image4.1 VxWorks images consist o

6、f: Text segment-executable in structio n.* Data segment-Initilized global and static varibles. BSS.4.2分类和工作机理:Bootrom 不是 VxWorks Image,不参与讨论它本质上是一段Bootprogram,最少的系统初始化,主要用于启动装载 VxWorks image.一般有压缩 和不压缩两种形式,如bootrom和boot_uncmp与VxWorks image的区别在于 一个 Bootrom 调用 bootConfig.c,而 VxWorks 调用 usrConfig.c.VxW

7、orks本质上分为两大类: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 V

8、xWorks Image2. 驻留的 VxWorks_rom_resident2. 说的再具体点:1)可下载的 Vxworks image2)ROM中烧制的Image1. 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在存储介质中的

9、存放方式5 启动5.1启动概述1. Bootrom的启动最少的系统初始化,主要用于启动装载VxWorks image. 一般有压缩和不压缩 两种形式,如 bootrom 和boot_uncmp.与 VxWorksimage的区别在于一个 Bootrom 调用 bootConfig.c,而 VxWorks调用 usrConfig.c.文件 romI nit.s 中的 romInit()- 文件 boot In it.c 中的 romStart()- 文件 bootConfig.c 中的 usrInit()sysHwlnit()usrKernelInit()KernelI nit(usrRoot,

10、.)其中 /target/config/all/bootConfig.c是 Boot ROM设置模块.用于通过网络加载VxWorks image.usrRoot()-bootCmdLoop(void)命令行选择,或autobootingbootLoad(pLine, &entry)加载模块到内存(网络,TFFS,TSFS.)netifAttach()-go(entry)(en try)()从入口开始执行,不返回.*各个函数的主要作用romln it() power up,disable in terrupt,put boot type on the stack,clears caches.ro

11、mStart() load Image Segments into RAM.usrInit()Interruptlock out,save imformation about boot type,handleall the Initializationbefore the kernel is actually started,thenstartsthe kernel execution to create an initial task usrRoot().This task completes the start up.sysHwI nit() In terrup locked,I niti

12、alizeshardware,registers,activatio n kernelKernelI nit(usrRoot,.)Initializes and starts the kernel. Defines system memory partiti on. Activates a task tUsrRoot to complete in italizatio n. Uni ocks ini errupts. Uses usrI nit()stack.usrRoot() 初始化内存分区表(memory partition library)初始化系统系统时钟(system clock)初

13、始化输入输出系统(I/O system)- 可选 Create devices- 可选* 设置网络(Configure network) 可选 激活 WDE目标通信(Activate WDB agent) 可选 调用程序(Activate application)2. VxWorks的启动1)Loadable VxWorks 的启动a)使用Bootrom进行最小系统起动b)加载程序段、数据段、BBS段c)跳转到RAM中运行的VxWorks的启动(详见下面)2)VxWork_ROM 的 VxWorks 启动1. ROM中运行的VxWorks的启动VxWorks在ROM中运行,即写入ROM中的Vx

14、Works是非压缩的,不需要解压,系统 直接跳到ROM的首地址,运行VxWorks.注意:ROM运行的VxWorks并不支持所有的 主扳,应以主扳手册为准.文件 romInit.s中的 romInit()-文件 bootlnit.c中的 romStart()- 文件 usrConfig.c 中的usrlnit()sysHwlnit()usrKernellnit()KernelI nit(usrRoot,.)VxWorks在ROM中运行主要是为了节省 RAM空间,以便应用程序有更大的空 间运行.只把 VxWorks image 的 data 段复制到 RAM勺 LOCAL_LOW_ADRS, t

15、e 分留在ROh并在ROM中执行.ROM中运行的VxWorks缺点是运行速度慢2. RAM中运行的VxWorks的启动VxWorks在RAM中运行,即写入ROM中的Boot或VxWorks Image是压缩的, 需要先解压copy所有的text和data到RAM勺LOCAL_LOW_AD中S下面sysInit() 主要是初始化RAM用的,系统直接跳到RAM的首地址,运行VxWorksusrInit()前面不压缩,即 romInit(),romStart()不能压缩.文件 romInit.s 中的 romInit() 文件 bootInit.c 中的romStart()sysaLib.s 中的 sysInit() 文件 usrConfig.c 中的usrInit()sysHwInit()usrKernelInit()KernelInit(u

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论