嵌入式系统软件的设计
系统软件可以选用以VxWorks为操作系统的嵌入式设计方法。
VxWorks操作系统的集成环境叫Tornado。Tor-nado集成环境是一个高效明晰的图形化实时应用开发平台,它包括一套完整的、面向嵌入式系统的开发和调测工具。VxWorks的优点如下:
(1)具有较好的可裁减性;
(2)支持应用程序的动态链接和动态下载;
(3)具有较好的兼容性;
(4)具有很高的可靠性和稳定性;
(5)具有很好的实时性;
VxWorks的多任务机制对任务的控制采用优先级抢占和轮转调度机制,从而充分保证了实时性,并可用同样的硬件配置满足更强的实时性要求,以便为应用开发留下更大的余地。
PCI设备有三种物理存储空间:配置空间、存储器空间和I/O空间。其中配置空间是长度为256字节的一段连续空间,空间定义如图4所示,在配置空间中, 只读空间包括设备标识、供应商代码、修改版本、分类代码以及头标类型。其中供应商代码用来标识设备供应商的代码;设备标识用来标识某一特殊的设备;修改版 本标识设备的版本号;分类代码用来标识设备的种类;而头标类型用来标识头类型以及是否为多功能设备。除供应商代码之外,其他字段的值可由供应商分配。
基地址寄存器最重要的功能是分配PCI设备的系统地址空间。在基地址寄存器中,bit0(最低位)可用来标识到底是存储器空间还是I/O地址空间。基地址 寄存器映射到存储器空间时,bit0为“0”,而当其映射到I/O地址空间时,bit0为“1”。
在驱动PCI设备时,首先是PCI设备的查找。嵌入式操作系统一般都提供有相应的API函数查找。而在VxWorks操作系统中,通过函数 pciFindDevice?PCI_VENDOR_ID?PCI_DEVICE?index? &pciBus? &pciDevice,&pciFunc_可以找到供应商代码为PCI_VENDOR_ID、设备标识为PCI_DEVICE的第n(index+1)个 设备,并且返回总线号、设备号以及功能号,然后分别保存于&pciBus、&pciDevice、&pci-Func中。
其次是PCI设备的配置。通过操作系统提供的API函数可以访问PCI设备的配置空间,从而完成PCI设备基址寄存器的配置、中断配置、以及ROM基地址 寄存器的配置,最终得到PCI存储器空间和I/O地址空间的映射以及设备中断号等。在VxWorks操作系统中,访问PCI设备配置空间的API函数有: pciConfigOutLong和pciConfigInLong等,它们可分别完成对PCI设备配置空间的读写操作。
|