vxworks启动进一步讨论

先讲讲BSP和BootRom之间的区别BSP只与“target/config/”下对应目录相关
romInit.s定义系统的入口romInit函数,系统上电最先执行的代码。romInit禁止CPU中断,设置初始堆栈,配置DRAM控制器等少数CPU设置后调用第一个C程序romStart。进一步硬件初始化有sysLib.c中定义sysHeInit函数完成。romInit.s中的硬件初始化会在sysALib.s或sysLib.s重复一遍。因为vxworks程序只需要BootRom提供参数串和启动代码。而不依赖于BootRom的硬件初始化(除了RAM初始化)。BootRom和Vxworks的无关行是一个原则,若不遵循这个原则,就会出现Vxworks和BootRom的关联修改。
从宏观角度看来,一般是先加载BootRom;BootRom在加载VxWorks应用,并跳转到Vxworks的入口sysInit执行;VxWorks有可能根据启动的脚本文件加载应用模块。整个过程完成后,系统进入多任务环境。
对于PC兼容体系结构,CPU不能从这样的存储器中获取指令执行,而需要BIOS的辅助。BIOS讲启动盘的引导扇区复制到主内存空间,再跳内存的指定地址执行。BIOS本身所处的存储器时CPU可直接访问执行的。BIOS再加载程序映象时哟自己的规范,比如引导扇区的位置和大小等。BootRom自己能满足这样的要求,比如说大小,BootRom比一个扇区大了许多。BIOS不能直接加载BootRom,而只能先加载辅助的小程序Vxld。由于大小限制,Vxld不支持完善的文件系统,所以要求启动盘上的BootRom文件必须连续存放。Vxld再加载BootRom。由于硬件环境限制,Vxld必须做的非常小,不能启动保护模式和支持翻检系统,因而限制了所能减灾程序映象的大小和内存加载位置。启动盘(如软盘)的大小也会限制程序映象的大小。
也有可能由于环境影响,出现BootRom与Vxworks映象融合在一起的情况,可以直接从Rom启动但是不灵活。

映象分类       类型
功能        BootRom,VxWorks,目标模块,vxworks_rom
运行位置  ROM运行[rom-resident],RAM运行的
压缩      压缩的,非压缩的
文家格式  标准执行格式(如ELF),Hex格式(支队Rom型的映象而言),而进制格式
符号表    Standalone,包含符号表和tshell等 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值