嵌入式实时系统的优盘启动技术

技术分类: 嵌入式系统  | 2008-01-23
来源:与非网

  2 嵌入式实时系统优盘启动软件程序设计

  为实现对优盘的操作,在基于VxWorks设计的嵌入式实时系统中,需要设计的程序包括:USB主控制器驱动器、USBD主驱动器、USB块存储设备驱动程序、文件系统的安装以及应用程序通过文件系统读写优盘设备程序等,如图3所示。故要实现从优盘启动,需要在bootConfig..c文件中的usrRoot函数巾添加4个函数。

嵌入式实时系统优盘启动软件程序设计

  (1)初始化USB主控制器的函数

  初始化HCD(USB Host Controler Driver)函数,即初始化SL81lHS并将其连接到指定总线上:LOCAL int fn-cAttach(pHRB_ATTACH pHrb)。

  该函数词用SL811Init()初始化SL811控制芯片。执行函数taskSpawn("tSl81lint",0,0,0x4000,(FUNCPTR)intThread,(int)pHost,0,0,0,0,0,0。0,0,O),创建intThread任务对发生的中断作出处理。

  这里的intTbaead调用OSS_SEM_TAKE(pHost->in-tPendi

ng,interval)阻塞,与中断服务程序intHandle同步。

  调用函数processSl811hInterrupt()处理硬件中断,读取中断状态寄存器判断中断类型。

  调用UHC_INT_CONNECT(pHost,intHandler,pHost,&s)函数连接SL811主控制器芯片中断。UHC_INT_CONNECT是一个宏定义。

程序

  函数intHandler完成对中断的处理,调用函数OSS_SEM_GIVE(pHost->imPending),释放用于中断和任务之间同步的二进制信号量。

  (2)初始化USBD的函数

  函数usbdInitialize()初始化内部USBD数据结构,并依次调用其他USB驱动栈模块的入口。

  函数usbdlnitialize()调用usbdHcdAttach(execFunc,&s1811IOCfg,pToken)把HCD连接到USBD上。这里的execFunc就是函数usbHcdSl811hExee()。

  函数usbdInitialize()调用USBEnumerate(USBD_CLIENT_HANDLE clientHandle,FILE*fout)列举所有连接到系统上的USB主控制器、Hub和USB设备。

  (3)初始化USB存储设备的函数

  函数usbBulkDevInit()完成USB盘的初始化并安装DOS文件系统。

  函数usbBulkDevlnit调用函数usbdClientRegister("BULK_CLASS",&usbdHandle)及函数usbdDynamicAt-tachRegister(usbdHandle,USB_CLASS_MASS_STORAGE,USB_SUBCLASS_SCSLCOMMAND_SET,USB_INTERFACE_PROTOCOL_BULK_ONLY,usbBulkDc-vAttachCallback),建立同USB的连接,注册回调例程。

  函数usbBulkDevlnit调用函数OSS_THREAI)_CRE-ATE(bulkClientThread,(pVOID) fout,OSS_PRIORITYINTERRUPT,"tBulkClnt",&bulkTaskId),创建一个任务,管理优盘的插入和移出。

  其中bulkCliemThread例程调用pBulkBlkDev=(BLK_DEV*)usbBulkBlkDevCreate (bulkNodeld,NULL,NULL,USB_SCSI_FLAG_READ_WRITEl0);安装USB设备。 调用pBulkDosVol=dosFsDevInit("/ud0/",pButkBlkDev,NULL);安装DOS文件系统。

  (4)从优盘加载映像文件的函数

  设计USBDLoad(),实现映像文件VxWorks从优盘设备加载。USBDLoad()函数主要包括以下语句:

程序

  修改bootConfig.c文件中的bootLoad函数,加入对从优盘启动的支持。主要加入以下语句:

程序

  重新编译、链接生成新的bootrom.hex,烧录到板子上的Flash中,将VxWorks映像文件拷贝到优盘上,将优盘插入到嵌入式主机的USB接口上。在启动的过程中,系统会自动装载优盘的VxWorks系统映像文件,实现基于VxWorks的嵌入式实时系统优盘启动。

  3 总 结

  在基于MPC860和VxWorks设计的嵌入式实验板上可实现嵌入式实时系统从优盘的启动。嵌入式实时系统从优盘启动的显著优点主要表现在:更新系统映象文件方便(替换优盘中的影像文件即可,无需重新烧录);启动快速(USB接口传输速度快),可适用于多种实时操作系统(保存在优盘中的映像文件也可以是使用其他嵌入式实时操作系统,如PSOS、Nuclues等开发生成的);对系统的Flash存储容量要求小(Flash中主要存储Bootrom程序,而系统映像文件保存在优盘中)。当然,在实际应用中还可以将嵌入式实时系统采集到的数据保存到优盘上,这样能方便地实现嵌入式设备和PC机设备资源的共享。

0
0
(请您对文章做出评价)
1】【2
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

  • 博客推荐

  • 论坛推荐

  • 在线研讨会