您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

实时操作系统VxWorks在跟踪雷达系统中的应用

时间:2007-1-20栏目:电子通信论文

0,0,0,0,0,0,0,0,0,0)==ERROR)
  
  ……
  
  messageHandle();
  
  return(OK);
  
  }
  
  信号处理板通过PCI总线和CPU板相连。在系统上电后,VxWorks对信号处理板进行一系列必要的初始化。首先在硬件初始化函数sysHwInit()里,调用pciConfigLibInit()来选择PCI设备的配置机制Mechanism#1或Mechanism#2,接着调用pciConfigLibInit()对PCI设备中断进行初始化,建立中断链表。这两个步骤对PCI做了最基本的配置,随后的一些PCI配置都以它们为基础。随着系统初始化的继续,在另一个硬件初始化函数sysHwInit2()里,调用了sysPciAutoConfig(),这个函数对PCI设备做了进一步的初始化。首先,它逐个查找PCI设备,先查找0号总线上的所有设备,一旦查到PCI-PCI桥设所有设备为止。查找过程中,这个函数对一些在总线上慢显现的设备作了一些特殊的等待处理。这会减慢系统启动的速度,若需要,用户可以通过修改内核源程序来避免等待。当确定了所有的设备后,函数再次查找一遍设备。这次,它创建一个PCI设备列表,把所有的设备都存到列表中。然后,函数根据这个列表,对每个设备做一些配置。它根据设备硬件上的设备映射设备存储空间和I/O空间,分配中断向量等,图4的PCI映射存储器空间就是这样映射的。然后,系统还对一些特殊的PCI设备做相应的配置。到此为止,系统对PCI设备的初始化工作就结束了。用户了解这些配置后,就可以在应用程序里对自己的PCI设备进行访问了。
  
  操作系统启动后,开始执行usrAppInit()。这个函数的内容由用户自己编写,它完成用户所需的功能。在本系统中,因为程序不知道哪个槽上有哪种信号处理板,所以程序首先按槽号逐个查找一遍,以确定哪个槽有信号处理板;然后读出设备的PCI映射存储空间地址,以便对信号处理板进行读写,同时读出中断线的内容,进而通过pciIntConnect()来挂中断。pciIntConnect()函数考虑了PCI设备对中断资源的共享,这样不会破坏共享同一个中断信号的其它中断。中断处理使用了信号量机制,处理模式如图5下半部所示。当有中断产生时,中断服务子程序立即响应,它给相应的处理进程发送信号,处理进程即开始工作;在没接收到信号时,处理进程处于等待状态。
  
  STATUSdspISR()
  
  {
  
  ……
  
  switch(intType)
  
  {
  
  
  
  
  caseINT_20MS;/*INT_20MS=1*/
  
  ……
  
  semGive(sem20ms);
  
  break;
  
  caseINT_ACQGATE:/*INT_ACQGATE=2*/
  
  ……
  
  semGIve(semAcqGate);
  
  break;
  
  default:
  

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页