vxworks的三种映像形式

vxworks的三种映像形式

2023年7月17日发(作者:)

vxworks的三种映像形式 VXWORKS是⼀种灵活的、可裁剪的嵌⼊式实时操作系统,⽤户可以根据需要创建⾃⼰的VXWORKS映像,由它来引导⽬标系统,⽽后下载并运⾏应⽤程序。 根据应⽤场合不同,vxworks映像可以分成三类:可加载的映像、基于ROM的映像和驻留ROM映像。1.1可加载的映像 该种⽅式对应vxworks下的image⼯程,因此在编译image⼯程时,实际上romInit.s⽂件并不会被编译,第⼀个⼊⼝⽂件为sysALib.s。 运⾏于RAM,不包含搬移程序,需要借助⼀些外部程序如BOOTROM才能加载到RAM的低端RAM_LOW_ADRS地址处。这是缺省的开发映像。 ⽬标板上电后,烧写在ROM中的引导程序Bootstrap会被拷贝到RAM的⾼端地址RAM_HIGH_ADRS处,并跳转⾄该地址执⾏ROM引导程序,配置好所选的加载⽅式(缺省为⽹络⽅式),并将指定的主机⽬录下的可加载的vxworks映像下载到⽬标板的RAM地址RAM_LOW_ADRS处,并跳转到此处执⾏操作系统的初始化。 优点:⽣成的vxworks映像可以存放在开发主机PC机上,不⽤烧到ROM中,节省了ROM容量,也便于随时修改不同的映像,适⽤于调试的初期阶段。不⾜之处是需要在主机上维护⼀个正确的映像,对于调试硬件⽆关的上层应⽤程序不是很⽅便。1.2基于ROM的映像 该种⽅式对应vxworks下的"Boot Loader/BSP Project"⼯程,在该⼯程的创建过程中,⼜可根据映像的压缩形式⼿动选择压缩、⾮压缩、驻留等,如下图⽰,在该⼯程编译过程中romInit.s⽂件会被编译,且作为其运⾏的第⼀个⼊⼝⽂件。 该映像是⼀种运⾏于RAM中,但起初存放于ROM中的映像,即该映像需要和搬移程序⼀起固化在BOOT中。换句话说,这种⽅式下不存在引导⼀说,固化到ROM中的vxworks镜像已经包含了引导相关的内容(romInit.s)。⽬标板上电后,⾸先运⾏BOOT中的引导搬移程序,将整个映像拷贝到RAM地址RAM_LOW_ARDS处,并跳转到此处执⾏。(bootstrap将boot程序搬移到RAM的⾼地址,再搬移映像到RAM的低地址并运⾏)该映像根据是否被压缩⼜可分为:1.2.1 基于ROM的未压缩的vxworks映像 可以直接从ROM拷贝到RAM中;1.2.2 基于ROM的压缩的映像 主要是为了节约ROM空间,在从ROM拷贝到RAM的过程中需要解压缩,因此与上述未压缩的映像相⽐,它的引导过程相对较慢,但两者在RAM中的运⾏速度是⼀样的。1.2.3 驻留ROM的映像 起初也和搬移程序⼀起固化在ROM中,⽬标板上电后,⾸先运⾏BOOT中的引导搬移程序,但仅将映像的数据段和BSS段拷贝到RAM地址RAM_LOW_ADRS处,映像的代码段仍旧留在ROM中(与1.2.1和1.2.2的区别),从ROM中开始执⾏。 优点是具有最快的引导速度,占⽤最少的RAM空间,适⽤于RAM空间有限的⽬标板。但由于该映像在ROM中运⾏,运⾏速度在三种映像中是最慢的。番外: 汇编级的硬件初始化程序romInit.s,⽤于系统的基本初始化,设置⼀些重要寄存器的初始值,进⾏存储器映射 搬移程序bootInit.c,将ROM引导程序拷贝⾄RAM的⾼端地址RAM_HIGH_ADRS,然后跳转到此处执⾏ROM引导程序。 ROM引导程序起初存放在ROM中,初始化时被拷贝到RAM中,主要⽤于系统的进⼀步初始化,并配置加载⽅式,将映像加载⾄RAM。 引导过程成功以后,RAM中ROM引导程序占⽤的空间(从RAM_HIGH_ADRS开始)可以重新被系统利⽤。 RAM_HIGH_ADRS是ROM引导程序的加载点,RAM_LOW_ADRS是vxworks的加载点。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689550519a265397.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信