VxWorks_BSP移植_1
icepeak 发表于 2006-5-29 8:33:00
好多天没更新blog了,中间忙着整另外一个blog,所以无暇顾及.现在,把前几天学习笔记送上来!
在讲述BSP的移植之前,先讨论一下Vxworks的启动过程:
在ARM系统中,系统上电后会自动加载并运行位于0地址的指令,通常在这个地方会放置一条跳转指令,使它跳转到_romInit()(初始化的入口)
romInit()进行处理器模式的设置,关闭中断,初始化内存以及一些必要的硬件配置.
romInit()执行完上述工作以后,跳转到romStart(),它负责将ROM映像copy到RAM中,如果ROM映像中不含Vxworks内核,那么启动代码要负责将
Vxworks内核加载到RAM中去.接下来要开始运行Vxworks内核的入口程序sysInit(),它主要实现一些与romInit()类似的功能,然后还是调用
Vxworks内核的第一个例程usrInit(),usrInit()会根据BSP的设置,最终完成整个内核的前期初始化工作.在usrInit最后,由kernelInit()激
活多任务环境,并创建一个任务来安装设备驱动程序.同时启动设备,初始化Vxworks系统库,调用应用程序.
VxWorks_BSP移植_2
icepeak 发表于 2006-5-29 8:49:00
弄清楚VxWorks启动的顺序后,我们来讨论BSP的移植,VxWorks的BSP在先前的日志中已经有说明,大家可以查阅了解它和bootloader的区别和
联系.
不同的Target的BSP都不同,同种CPU的不同板子也会不同,所以移植修改是不可避免的,我们可以参考$(WIND_BASE)\target\config下的BSP
文件,找一个比较接近的来修改!关于这个目录的组织结构,网上有很多介绍,这里不赘述.
首先要重点修改的就是Makefilie文件和config.h文件,这两个文件跟目标板的硬件配置有很大的关系,主要是CPU类型,内存的大小和目标板
的外围设备的配置情况.关于这两个文件的修改下次会详细注释!