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操作系统的启动工作的。

最新文章

  1. 关于telnet源码
  2. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc
  3. IIS7配置PHP图解(转)
  4. .net 操作sftp服务器
  5. SqlServer 还原他服数据库只建立发布却删除不了
  6. jsp 环境配置记录
  7. cpp quiz
  8. HDU 3573 Buy Sticks (逻辑)
  9. linux软件安装(rpm,源码编译)
  10. java 协调同步的线程
  11. JAVA基础--接口 interface
  12. css3 2d转换3d转换以及动画的知识点汇总
  13. HTML 基本标签01
  14. 深圳--博雅互动 Android面试打酱油归来
  15. php生成文字水印和图片水印
  16. 案例:中科院光机所应用大数据可视化工具-LightningChart | 见证高性能图表
  17. MySQL系列
  18. newJob_newFell
  19. linux 机器之间 zssh, rz, sz互相传输
  20. Java并发编程笔记之ReentrantLock源码分析

热门文章

  1. 模型的继承 -- Django从入门到精通系列教程
  2. JAVA设计模式---模板方法
  3. 玩转webpack(二):webpack的核心对象
  4. mysql 删匿名帐户
  5. loadrunner调用jar包方法
  6. 如何使用 Bootstrap 搭建更合理的 HTML 结构
  7. Nginx调用远程php-fpm
  8. Servlet中请求重定向和请求转发和include
  9. 如何使用supervisor管理你的应用
  10. Java多维数组各轴长度可以不对齐