VxWorks启动过程的详细解释(上)
vxworks有三个图像:
VxWorks Image有三种类型的文件
- Loadable Images:由Boot-ROM引导通过网口或串口下载到RAM
- ROM-based Images(压缩/没有压缩):即将Image直接烧入ROM,执行时将Image拷入RAM中执行。
- ROM-Resident Images:Image的指令部分驻留在ROM中执行。仅将数据段部分拷入RAM。
注意这里说的三种映像都是包括真正操作系统VxWorks的映像,当中后两种能够直接启动并执行起来。可是第一种不行,它必须借助还有一个叫做Boot Image的映像(能够在Tornado 中的build->build boot rom中生成)才干执行起来,也就是利用Boot Image引导起来然后通过网口或串口下载真正包括VxWorks的Loadable Image,然后才干执行起来。
也就是说Boot Image是和Loadable Image 结合使用的。
如今看来一共同拥有四种映像文件。让我们看看它们的组成吧:
- Boot Image:包括一段叫做BootStrap Programs的程序+一段ROM BOOT Program程序。
- Loadable Images:有操作系统VxWorks和应用组成的映像。
- ROM-based Images(压缩/没有压缩):包括一段叫做BootStrap Programs的程序+ Loadable Images(即有操作系统VxWorks和应用组成的映像)
- ROM-Resident Images:同上
通过上面我们能够看出。ROM-based Images,ROM-Resident Images。Boot Image
三种映像都包括一段叫做BootStrap Programs的程序,它具有启动功能。能够把ROM中的代码段和数据段复制到RAM中;以下让我们看看三种VxWorks的启动过程:
- Boot Image + Loadable Images:
我们说过Loadable Images是依靠Boot Image载入启动的。首先有Boot Image中的程序BootStrap Programs把Boot Program程序载入到RAM中的RAM_HIGH_ADRS处。然后控制权交给Boot Program。由Boot Program负责一系列简单的硬件初始化(网口,串口等),開始下载Loadable Images(即包括应用的VxWorks操作系统)到RAM_LOW_ADRS,然后控制权交给VxWorks操作系统開始运行。
以下的图一是一个简单的流程图,后面的图二是更为具体的流程图。
图一
图二(1)
图二(2)
- ROM-based Images(压缩/没有压缩):
这样的映像由于其本身就包括BootStrap Programs程序,因此能够直接启动。所以这样的映像中也就不须要Boot Programme了,首先BootStrap Programs启动,把映像中的VxWorks载入到内存的RAM_LOW_ADRS处并開始执行。图三是一个简图,图四是更为详尽的流程图。
图三
图四
- ROM-Resident Images:
这样的映像的载入和上一种是基本同有点儿。只是加载只有data科和bss只有部分。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
最新文章
- 树莓派2安装使用小米WIfi(360 小度 腾讯wifi)
- VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT连接方式)
- java FileLock
- LUCAS 定理
- NotePad++更改背景颜色
- [转载]使用uiautomator做UI测试
- 1.Basic Structure
- python 的经常使用时间操作,取得当前时间等
- java变量初始化
- codevs 1283 等差子序列
- spring事务源码分析结合mybatis源码(三)
- MUI初学1
- Codeforces 659G Fence Divercity dp
- C# txt文件的读取与写入
- [日常] 高性能MySQL-索引
- Orchard模块开发全接触2:新建 ProductPart
- a new way of thinking about a problem
- poj4052 Hrinity
- 2018.11.28 OGNL表达式与struts2框架结合的体现---在配置文件中体现(补充)
- C++基础学习8:类的定义(class)
热门文章
- VS_VERSION_INFO
- [Angular2 Form] Validation message for Reactive form
- Struts(22)标签库具体解释
- ios开发网络学八:NSURLSession相关代理方法
- [转载]Ocelot简易教程(一)Ocelot是什么
- 【codeforces 742C】Arpa's loud Owf and Mehrdad's evil plan
- Hadoop源码分析(MapReduce概论)
- js进阶 11-6 jquery如何获取和设置元素的宽高(jquery多方法)
- HTML5移动开发实战必备知识——本地存储(1)
- [React Native] Installing and Linking Modules with Native Code in React Native