关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于VxWorks的VME从板驱动设计与实现

基于VxWorks的VME从板驱动设计与实现

作者: 时间:2013-06-14 来源:网络 收藏

4.2 驱动程序ioctrl方法的实现
驱动程序的ioctrl方法在驱动程序中具有重要地位,它除了要实现从板功能寄存器的设置及驱动程序的查询机制外,还要实现用户信号处理函数的注册工作,结合这些功能实现的ioctrl方法的框架代码如下所示。
i.JPG
整个的ioctl方法由switch结构组成,这样的结构代码简单明了,易读性和可维护性都很好,同时可以方便地通过扩充命令的方法来实现对从板功能寄存器多种多样的操作,便于驱动程序的重用。
4.3 驱动程序read方法的买现
驱动程序的read方法主要实现对缓冲区数据的读取,同时它是实现数据阻塞操作的关键,read方法的程序流程图如图6所示。

本文引用地址://m.amcfsurvey.com/article/159333.htm

k.JPG


函数首先进行参数的检查及转化;然后检查缓冲区标志,如果缓冲区存在数据则直接读出数据,如果缓冲区没有数据,函数就会申请缓冲区的信号量而使任务处于挂起状态,当中断处理任务处理完缓冲区后会发送一个信号量而使任务重新运行并且读出缓冲区数据;函数最后是设置缓冲区标志,表示缓冲区数据已经读出。函数要与中断处理任务进行同步;读取和设置缓冲区标志使用原子操作的方法,等待中断处理任务设置缓冲区时使用了信号量的方式完成了同步。

5数据传输测试
VME数据传输测试主要是测试总线数据传输的可靠性,只有总线数据传输的可靠性能够保证,驱动才能稳定的运行,其测试的方法是通过随机地读写从板的随机读写寄存器来完成的,整个测试中为了模拟操作系统在有负载情况下的运行效果,增加了一些定时器操作,
其测试的程序流程图如图7所示。

l.JPG


使用这种测试的方法最终得到测试的结果如表3所示。从测试结果可以看出,数据传输的准确性比较好,通过阅读VG5-7457PowerPC的板级支持包可以发现其实现VME数据总线操作的函数都有原子操作过程,以此保证数据传输的可靠性。良好的传输特性为驱动的实现提供了良好的基础。

m.JPG



6 结论
设计了基于从板的驱动程序框架,着重介绍了驱动程序的机制及这些机制的实现方法;在设计的整体上重点地考虑了驱动程序的可维护性及可移转性。采用这种方式建立起来的驱动程序代码的可读性好,可维护性强,而且可以方便地移植到其他的应用场合。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭