本项目在BootRom启动时,完成初始化CPU、堆栈指针、寄存器,清理内存,屏蔽中断、CACHE;实现地址的映射搬家。在启动后,完成多任务环境建立, 包括usrRoot任务、网络任务、多串口任务和FTP任务等。引导映像在8G CF卡中执行(驻留型引导映像),为下一步加载VxWorks映像做准备,系统中其对应的编译规则文rules.bsp。
BootRom运行时,调用的系统函数流程如图5所示:
4.4 VxWorks的配置及启动
VxWorks类型映像是系统的主映像,它由一个体积很小的内核及一些可以根据需要定制的系统模块组成,是真正运行于目标板上的操作系统。在风河公司提供的集成开发环境Tornado2.2中,用户可以方便地对系统进行裁剪。
依据可裁剪性特点,项目根据实际需要对VxWorks进行了最优配置,删除了图形显示、TrueFFS设备等模块,增加了Ftp、定时器、网络系统模块,如图6所示。通过BootRom引导映像加载VxWorks应用,并跳转到VxWorks的入口函数SysInit(),执行应用程序,运行于VxWorks系统之上。
本项目VxWorks系统启动过程如表1所示:
4.5 测试与验证
作为与硬件紧密结合的软件模块,对BSP进行充分的单元测试和集成测试是开发成功的保证。
在项目中,开发BSP模块的网络驱动程序时,由于实时操作系统没有提供Itel82559网卡驱动源代码,为了确保整个系统的稳定运行,系统对网络展开了如下的测试:
(1)进行网络协议栈与网络驱动程序的集成功能测试,确保网络驱动程序的功能正确。
(2)全面测试运行在该网络接口上各种网络协议,如ICMP、TCP等。
5 结束语
在介绍BSP的基本概念和作用的基础上,重点介绍了VxWorks 实时操作系统的BSP设计的具体步骤以及需要注意的问题。文章以盛博科技PMI2开发板为例,分析了基于VxWorks的BSP, 并实现了在实际工程中的应用。然而入式设计的难点在于,针对不同的CPU板, 需根据具体的硬件板进行具体设计。
参考文献
[1] WindRiver System Inc. VxWorks BSP Developer's Guide 5.5[M].2002.