- 20
- 0
- 约5.81千字
- 约 7页
- 2017-02-01 发布于重庆
- 举报
Vxworks的引导过程
VxWorks的引导过程
此文为学习记录,非正式文档
相关术语说明如下:
Boot: 引导或加载
Boot ROM : 用来存放boot程序的ROM, boot程序首先对硬件作必要的基本的始化后搬运boot程序到RAM空间。然后启动加载程序通过网口、串口或者扩展FLASH加载VxWorks系统。Boot ROM程序可看作是一个独立的系统,具有自加载功能和通过串口、网口或扩展FLASH加载VxWorks系统的功能。
RAM_HIGH_ADRS:拷贝boot ROM映像的目标地址
RAM_LOW_ADRS:VxWorks映像的起始地址:
1启动过程
以下启动过程是通过串口或者网口加载VxWorks系统的过程,并不代表所有的加载过程。
上电复位后第一条被执行的指令位置0xfff00100(针对MPC8240)
上电复位后CPU从0xfff00100取指令开始执行.这个地址位于boot ROM空间内。
完成启动所必要的初始化
设置状态字并创建一个哑堆栈(dummy stack)
2)初始化存储器接口
2. 跳到C程序的入口地址
第一个被执行的C程序是romStart().
程序首先拷贝boot ROM内的部分boot程序到RAM空间.(我认为这以后程序都在RAM中运行)。 然后根据哑堆栈中的参数决定是否清零内存RAM(如是冷启动(cold start)则清零),再把ROM段的剩余部分拷贝到RAM 的RAM_HIGH_ADRS地址(如果ROM代码是压缩的,还要解压)。
处理器跳到RAM的入口地址 RAM_HIGH_ADRS(bootConfig.c)。
在这里执行的程序是usrInit();
使cache无效,清零bss段,初始化向量表,进行板级初始化。
启动多任务内核
VxWorks的boot ROM本身就是一个独立的应用。到此步为止可看作是boot ROM内的这个独立系统已经被加载且运行起来了。
加载VxWorks系统
通过串口、网口或者从扩展FLASH中加载系统,VxWorks被加载到RAM的地端地址,起始地址为RAM_LOW_ADRS.
应用程序加载
各步所调用函数先后顺序如下:
上电复位——》romInit()——》romStart()——》usrInit()——》initVectBaseSet()——》sysHwInit()——》usrKernelInit() ——》kernelInit()——》usrRoot()(启动串口或者网口加载程序)——》(完成对VxWorks系统的加载) ——》sysInit()——》usrInit()——》initVectBaseSet()——》sysHwInit()——》usrKernelInit() ——》kernelInit()——》usrRoot()(和前一个usrRoot()不一样,这里启动用户程序)
romInit():
这是上电复位后首先执行的程序
(a)设置哑堆栈,初始化CPU内的寄存器,无效Cache,禁止中断;
(b)保存启动类型,启动类型分为冷启动和热启动
(c)硬件初始化,主要是初始化存储器接口。
(d)调用romStart();
romStart():
这是第一个被执行的C程序。
BootROM程序分为两个部分,第一部分是上电复位后的首先执行的程序,完成硬件的必要初始化和搬运程序到RAM,如果第二部分的程序被压缩这部分程序还包括解压程序;第二部分是Boot ROM的其余部分程序,完成加载VxWorks系统的功能。这部分程序是可被压缩的。如果第二部分程序没有被压缩,则在搬运时可把bootROM内的程序一次搬运到RAM中。下面的步骤是针对第二部分程序被压缩的情况。
完成功能如下:
搬运bootROM的第一部分程序到RAM。
如果是冷启动则需要一些存储区清0,这些存储区是除了堆栈区(为启动所设的哑堆栈)和(a)步所搬运程序覆盖的区域外的其他存储区。
解压并搬运bootROM的其余程序到RAM
跳至被解压的程序的入口点执行,即执行usrInit();
usrInit():
这是运行在VxWorks下的第一个C程序
完成功能如下:
设置Cache模式,禁止Cache
对bss段清0
保存启动类型
调用函数intVecBaseSet()设置中断式量表基本地址
调用sysHwInit()初始化硬件到静止状态(Quiescent State),这主要是让可能产生中断的设备复位和禁止其产生中断。
调用usrKernelInit(),根据定义的的常数选择适当的初始化函数完成初始化。
调用kernelInit(),初始化多任务环境,孵化任务usrRoot(),此函数不返回。
UsrRoot():
完成功能如下:(有些步骤根据需要选择)
您可能关注的文档
- 大学生课堂学风现状及对策.doc
- 一种家居遥控一体化系统.doc
- 2013年十大最具影响力的影视业并购案.docx
- Windows7_引导修复.doc
- Android系统启动过程详解.doc
- 《Linux操作系统》第2版完整习题答案-电子工业出版社.doc
- VxWorks启动过程详解.doc
- 把Win8安装到移动硬盘VHD文件制作移动Win8的方法技巧.docx
- 燃机启动原理.doc
- 实验3 蟾蜍坐骨神经干电生理实验.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 组织生活会前征求意见和建议的情况报告集合.docx VIP
- 2020年全国高考全国一卷英语真题(含解析).pdf VIP
- _中国男性乳腺癌临床诊治实践指南(2023版).pdf VIP
- 标准图集-17J008 挡土墙(重力式、衡重式、悬臂式) 无水印.pdf VIP
- 管理沟通——原理、策略及应用(第三版)课件全套 赵洱岽 第1--14章 管理沟通概论---数字化时代的沟通.pptx
- 初二物理上册质量与密度练习题难题带答案1.pdf VIP
- DB31_T 416-2008 城市道路路名牌(法规规范).pdf VIP
- V83-CV100出入口车牌识别高清网络一体化摄像机操作手册20180427.pdf VIP
- 《再别康桥》优秀课件.ppt VIP
- 2026届高考政治总复习选必一高考主观试题答题模型总结(2023-2025年真题适配版).pdf VIP
原创力文档

文档评论(0)