基于VxWorks的BSP技术分析
…
#undef WDB_TTY_DEV_NAME
#define WDB_TTY_DEV_NAME "/tyCo/0"
#undef CONSOLE_TTY
#define CONSOLE_TTY NONE
#undef WDB_TTY_CHANNEL
#define WDB_TTY_CHANNEL 0
#undef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_SERIAL
#undef WDB_TTY_BAUD
#define WDB_TTY_BAUD 38400
#define INCLUDE_TSFS_BOOT
#undef INCLUDE_WDB_TSFS
#define INCLUDE_WDB_TSFS
…
同时屏蔽掉与网络相关的组件。
(4)生成bootrom和VxWorks映像。在生成bootrom时,可在Tornado的集成环境下Build菜单中选择Build Boot ROM来创建指定类型的Boot ROM。在生成VxWorks映像时,可在Tornado的集成环境下Build菜单中选择standard BSP Builds来生成VxWorks映像。此外,也可以在命令行环境下利用Makefile创建各种映像类型。
根据bootCongfig.c中的说明,我们的在config.h中的设置使能了虚拟控制台,所以bootrom启动后,我们在Tornado开发环境中,通过选中configure target server的target server property中的console and redirection项,启动虚拟控制台。这样在虚拟控制台可以看到启动信息,且按下 “@” 之后开始加载 VxWorks image。
4.2基于VxWorks的应用程序的加载
应用程序运行于VxWorks操作系统上。对于已存在的应用程序,VxWorks主要通过两种方式添加。一类是可下载的应用程序;一类是可启动的应用程序。
一个可下载的应用程序包含一个或多个目标对象模块,这些模块可以下载和动态链接到VxWorks,并从shell或调试器中启动[4]。即允许目标模块装载到一个运行的系统中。通过创建一个可下载的工程,构建该工程,使用适当的映像启动目标。下载工程所产生的部分链接和变换的.out文件。
一个可启动的应用程序包含一个链接到VxWorks映像的应用程序[4]。目标机启动时,可启动的应用程序开始运行。通过创建一个可启动的工程添加应用程序文件,然后编辑VxWorks初始化文件usrAppInit.c,为应用程序的初始化和启动工程添加调用。
5 结束语
VxWorks以其良好的性能和持续发展能力在各种高精尖技术及实时性要求极高的领域得到了越来越广泛的应用,同时希望能将其移植到更多的硬件平台上。本文对基于VxWorks的BSP进行了分析,并在实际工程中得到了实现。但是针对不通的CPU板,BSP的实现不同,需根据具体的硬件板进行具体设计,这是嵌入式设计的难点所在。
本文作者创新点:在运用BSP技术解决VxWorks移植的过程中,提出了串口通信以及其相应的应用程序的加载方法。
参考文献:
[1] WindRiver System Inc. VxWorks BSP Developer’s Guide 5.5[M].2002.
[2] 王学龙.嵌入式VxWorks系统开发与应用[M].北京:人民邮电出版社,2003.
[3] 陈智育.VxWorks程序开发实践[M].北京: 人民邮电出版社,2004.
[4] WindRiver System Inc. Tornado User’s Guide 2.2[M].2003.
[5] 孙建恒.嵌入式系统应用研究及实例[J].微计算机信息,2004,20(6):65-66
评论