新闻中心

EEPW首页>嵌入式系统>设计应用> 基于PC104总线的VxWorksBSP设计

基于PC104总线的VxWorksBSP设计

作者: 时间:2012-04-05 来源:网络 收藏

VxWorks内核的加载分为两个步骤,第一个步骤是PCBIOS对bootrom的加载,第二个步骤是BSP引导映像bootrom对VxWorks操作系统映像加载。基本流程如下所示:

2.3 BSP中函数调用过程分析

BSP启动操作系统的过程中,需要调用一列函数以完成对系统内存映像的加载,整个过程分析如下,RomInit函数初始化处理器,关闭高速缓存,关中断,初始化内存。接着调用RomStart,把映像的数据段拷贝到RAM中去,然后调用usrInit()对Bss段清零,调用intVecBaseSet()设置矢量基地址表,调用excVecInt()初始化中断以及异常的向量表,初始化系统硬件,调用 usrKernelInit()初始化wind内核,最后执行流程执行到kernelInit(),kernelInit启动wind内核。Wind内核的第一个任务是usrRoot它通过调用usrAppInit启动用户的任务,系统可真正启动。

2.4 修改BSP设计概要

一般情况下,提供一些评估板的板载支持包,而PC104主机板是根据工作实际需要购买的,评估板的板载支持包不能够直接使用,需要进行修改完善。可行的方法是:基于pc586的BSP作为模板进行适当修改,以满足这款PC104主机板的特定硬件环境。

板载支持包通常存放在的安装目录下面,其路径是Root/target/config /bspname,root代表tornado的安装目录。设计一个可用的新的板载支持包,必须对本身自带板载支持包作一定的分析。 pc586板载支持包主要包括一些C文件和一些汇编文件,它们是:config.h,configAll.h,Pc.h,sysLib.c,ctdt.c,sysNetif.c,mkboot.c。板载支持包的缺省配置是由configALL.h来确定的,用户可通过config.h来改变缺省配置。缺省配置是按照处理器厂商的评估板外围硬件进行系统配置,根据实际硬件环境,一般需要做一定的改动,通常会在config.h中进行,通过一系列的定义宏,完成系统配制工作。

要设计针对这个半物理仿真试验的所选用的PC104主机板板载支持包,增加VxWorks对CF卡支持,需要做出较大改动的文件是config.h和configAll.h以及sysLib.c这3个文件,具体如下:

①在config/bspname/bspname.h中找到修改其CF卡的中断号,因为一般中断号0x9是预留给硬盘接口,为了避免产生中断冲突,将#define ATA1_INT_LVL0x9,改为#define ATA1_INT_LVL0xf

②在config/bspname/sysLib.c中找到ATA_RESOURCEataResource[]={................PCMCIA................ }

修改为ATA_RESOURCEataResource[]={................IDE_LOCAL................. }

另外还需要改写其他的参数,例如ATA1_CONFIG等。

③在config.h中,把#define SYS_WARM_ATA_CTRL 0改为#define SYS_WARM_ATA_CTRL 1这样系统热启动后,就会从CF卡上的引导区上引导。

④在config.h中将#define SYS_WARM_TYPE SYS_WARM_FD/*warmstartdevice*/改为#define SYS_WARM_TYPESYS_WARM_ATA

⑤修改ataType数组使它和所选的CF卡的几何参数(磁道,扇区,柱面等)相等。

将原来的ataTypes数组ATA_TYPEataTypes[ATA_MAX_CTRLS] [ATA_MAX_DRIVES]= {................{{761,8,39,512,0xff},/*ctrl1drive0*/...............};

改为ATA_TYPE ataTypes [ATA_MAX_CTRLS] [ATA_MAX_DRIVES]= {................{{984,16,4,512,0xff},/*ctrl1drive0*/...............};

这个参数可以在主机板的BIOS中查找到,进入BIOS后使用idedetection就可以查看到CF卡几何参数,根据查到CF卡的几何参数,就可以在sysLib.c中做出相应的修改。

2.5 BSP的调试

针对板载支持包的设计开发,VxWorks并没有提供了非常好的调试手段,这样就给调试BSP带来的很大困难。所以在对 BSP进行调试之前,尽量减少代码量,通过改写BSP目录下Makefile来去除不需要的代码编译,然后再对BSP调试。调试的方式一般采用闪灯的方式,通过在有疑问的代码之间插入闪灯的代码,通过对I/O端口的可视LED访问,观察灯是否闪亮来判断BSP的执行流程。

3 结束语

通过多次试验的调试,最终设计出了基于的VxWorks板载支持包。并应用于某型飞机燃油系统的智能化管理,实践结果表明,这种方法是一种切实可行的方案。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭