bootrom的构成

在开发阶段,VxWorks 操作系统大多采用bootrom+ VxWorks 方式启动,即下载型方式进行。一方面,由于VxWorks本身调试的需要,另一方面,bootrom相比VxWorks内核较小,可以较快地烧录到平台ROM 中。在下载型方式中,bootrom的主要任务就是从主机端(相对运行VxWorks 的目标板而言)通过串口或者网口将VxWorks内核映像载入目标板RAM中,而后跳转到VxWorks
内核映像入口处执行。bootrom 完成的所有工作基本上都是为了下载VxWorks内核映像做准备。

bootrom在构成上基本类似于VxWorks内核本身,即二者使用同一套函数,但是也有一个较大的区别:bootrom使用bootConfig.c文件,而VxWorks内核本身则使用usrConfig.c文件。在下载型启动方式下使用的VxWorks 内核映像由如下文件构成:sysALib.s、sysLib.c、usrConfig.c 和设备驱动程序文件。bootrom
映像则由如下文件构成:romInit.s、bootInit.c、sysALib.s、sysLib.c、bootConfig.c和设备驱动程序。

bootrom 映像中虽然包含sysALib.s 文件代码,但是其并不使用其中定义的任何函数。

sysLib.c 以及设备驱动程序都是相同的,在下载启动方式下,VxWorks 内核映像不包含romInit.s和bootInit.c文件。但是一旦处于产品阶段,当采用ROM 启动方式时,VxWorks 内核映像构成将基本类似于bootrom映像构成,即为:romInit.s、bootInit.c、sysALib.s、sysLib.c、usrConfig.c、设备驱动程序文件。

ROM启动方式下,sysALib.s文件没有使用,但是仍然包含在内核映像中,可以修改系统文件中的相关宏定义,去掉该文件,但如果需要下载型VxWorks 内核映像,还是要加上sysALib.s文件,故建议一直包含该文件。其中romInit.s、bootInit.c、sysLib.c、设备驱动程序与bootrom
中使用的都是同一套文件,然而无论VxWorks映像是基于下载方式的,还是ROM方式的,其总是使用usrConfig.c文件,而bootrom则总是使用bootConfig.c 文件。这两个文件虽然定义有相同的函数(usrInit 和usrRoot),但基本实现却大不相同,bootConfig.c 也进行一些初始化,如当使用网口下载VxWorks 内核映像时,其需要进行网口初始化,但是正如上文所述,bootConfig.c中完成的所有工作都是为了能够从外部主机上下载真正的VxWorks操作系统映像,其本身不具有VxWorks
操作系统功能部件;而usrConfig.c 则不然,其需要完成维持VxWorks 操作系统正常运行时所需的所有组件的初始化工作,所以usrConfig.c才是真正进行VxWorks操作系统的启动工作的。

bootrom的构成的更多相关文章

  1. orpsocv2 从ROM(bootrom)启动分析--以atlys板子的启动为例子

    1 复位后的启动地址 1) 复位后,启动地址在or1200_defines.v最后宏定义,atlys板子的目录:orpsocv2\boards\xilinx\atlys\rtl\verilog\inc ...

  2. LPC18xx LPC43xx LPC4370 Bootrom USB DFU FPB - Flash Patch and Breakpoint Unit

    What is the difference between a Bootrom vs bootloader on ARM systems Bootrom Bootrom (or Boot ROM) ...

  3. bootrom启动流程【转】

    转自:http://blog.csdn.net/blueoceanindream/article/details/6851787 闲来无事,总结一下linux bootrom的启动流程: 环境:MIP ...

  4. 嵌入式Linux引导过程之1.5——从BootRom到Xloader

    在开始看Xloader_Entry的代码之前,我想先总结一下从芯片上电到开始运行Xloader的代码的过程,这是我目前理解的一个过程,可能有所出入,待以后继续完善. 当 系统上电之后,首先会将PC寄存 ...

  5. bootrom脚本的创建

    bootrom脚本的创建     以下以压缩版bootrom 为例,基于Powerpc 平台,详细介绍压缩版bootrom 的生成过程及执行流程,从而使读者对bootrom有一个彻底的了解.这对于Vx ...

  6. vxWorks/BootROM Imageq启动顺序详解

    vxWorks/BootROM Imageq启动顺序详解 VxWorks image     分为在ROM中运行和在RAM中运行两种,两者启动顺序的区别在于sysInit()函数的调用,该函数在RAM ...

  7. bootrom/spl/uboot/linux逐级加载是如何实现的?

    关键词:bootrom.spl.uboot.linux.mksheader.sb_header.mkimage.image_header_t等等. 首先看一个典型的bootrom->spl-&g ...

  8. Rocket - devices - bootrom

    https://mp.weixin.qq.com/s/PylfNmJDRasTUj9fGp7gLQ 简单介绍bootrom目录中各个文件的实现. 1. Makefile 1) make过程 Makef ...

  9. hi3531spi flash启动和bootrom启动的对比

    a

随机推荐

  1. Django----模板层

    一.模板层:           python的模板:HTML代码+模板语法      模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签. import datetime t=dateti ...

  2. 让44.1版本的sketch打开更高版本的sketch文件

    我们都知道,sketch的有效license与版本挂钩.最近设计师又更新了sketch版本,导致她生成的源文件我都无法打开. 毕竟我不是使用sketch进行UI设计,仅用它来查看设计稿参数,再花99美 ...

  3. POJ [P2289] Jamie's Contact Groups

    二分+二分图多重匹配 辣鸡ACM式读入 对于这种奇葩的读入方法,还是老老实实的用scanf吧 #include <iostream> #include <cstdio> #in ...

  4. 洛谷 [P1113] 杂务

    图论的做法是topsort 一看见有序我们就想到了DAG图,于是用topsort做,对于每一个加入队列的顶点,都用它的时间去更新它所指向的点的时间,本质上仍是DP的思想,dp[i]=max{dp[j] ...

  5. 2048小游戏代码解析 C语言版

    2048小游戏,也算是风靡一时的益智游戏.其背后实现的逻辑比较简单,代码量不算多,而且趣味性强,适合作为有语言基础的童鞋来加强编程训练.本篇分析2048小游戏的C语言实现代码. 前言 游戏截图:  游 ...

  6. [Python Study Notes]内存信息

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  7. 【Tools】ubuntu虚拟机Vmware Tools 安装记录

    1.下载VmwareTools 链接: https://pan.baidu.com/s/1c4baji4 密码: h3si 2.终端打开下载文件位置 cd /home/ubuntu/Downloads ...

  8. zabbix server总是stoped,找到此方法解决了问题

    zabbix日志报错: One child process died (PID:8885,exitcode/signal:1). Exiting ... syncing history data... ...

  9. vmware安装centos7

    VMware下安装CentOS7.2 http://www.mamicode.com/info-detail-1455647.html centos7.2配置网络 http://blog.csdn.n ...

  10. ios开发常用RGB色值

    iOS中RGB常用的色值,同时可将对颜色的设置定义成宏,方便开发应用,如: // RGB颜色转换(16进制->10进制) #define UIColorFromRGB(rgbValue) [UI ...