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. ASP.NET Core 2.0 : 一. 概述

    为什么要使用 ASP.NET Core? .NET Core 刚发布的时候根据介绍就有点心里痒痒, 大概看了一下没敢付诸于行动,  现在2.0发布了一段时间了, 之前对其"不稳定" ...

  2. 2017年总结的前端文章——CSS高级技巧汇总

    1. 页面顶部阴影 body:before{ content: ""; position: fixed; top:-10px; left:; width: 100%; height ...

  3. 使用websocket实现在线聊天功能

    很早以前为了快速达到效果,使用轮询实现了在线聊天功能,后来无意接触了socket,关于socket我的理解是进程间通信,首先要有服务器跟客户端,服务的启动监听某ip端口定位该进程,客户端开启socke ...

  4. 克隆虚拟机以及两台linux机器相互登录:linux学习第四篇

    克隆虚拟机 1.      克隆 之后自己命名克隆的虚拟机并自己选择存放位置,完成克隆 2.      克隆虚拟机之后对新的虚拟机修改网络配置,以免冲突(将配置文件里的UUID去掉,并修改IP地址) ...

  5. [Python Study Notes]批量将wold转换为pdf

    本文代码,由原ppt2pdf.py进行改写 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  6. laravel框架学习-缓存,事件

    缓存配置:app/config/cache.php   缓存:     增加缓存项: Cache::put( 'key', 'value', $Cachetime );     在缓存中增加一个不存在 ...

  7. python学习:使用正则收集ip信息

        使用正则表达式收集主机信息        #!/usr/bin/env python   from subprocess import Popen, PIPE import re def ge ...

  8. word设置每页50行

    1. 显示行号:页面布局-行号-每页重编行号 2. 调整页边距:页面布局-页边距-调整上下边距为2 3. 调整行数:页面布局-文档网格-只指定网格-设置行数

  9. CodeForces 820C

    题意略. 这道题目的出题者竟然被hack了!? 我的思路是:在游戏开始时,为了尽量少地用字母,我应该尽量选取计算机输出的前a个字母中已经使用过的字母.但是为了使电脑也尽量少用字母,我添加的这b个字母应 ...

  10. 解决react-router4在browserhistory路由下的nginx的白屏或者404问题

    使用react-router,官方推荐用browserhistory,美观简洁.但是nginx服务器端的配置也让人头疼. 首先看官方举例的方法: server { location / { try_f ...