利用ColdFire uClinux实现数据采集和传输
时间:10-06
来源:互联网
点击:
5 uClinux上运行任务的分析
在uClinux上运行了三个任务:读取采集数据、通过以太网发送数据、接收和执行来自ICS的命令。其中的读取采集数据任务对实时性有要求,把它用中断处理程序来实现,而其它的两个任务则通过用户进程来实现。通过以太网发送数据的任务和读取采集数据的任务其享一个缓冲区,通过ioclt函数在它们它们传递缓冲区双向链表的地址。所以还需要为SPM注册一个驱动程序,这也是在uClinux操作中比较特别的进程和内核通信的方法。同时,把对SPM的设置和查询等操作也包装在这个驱动程序里同,这些操作都是通过ioctl函数向程提供接口。注册驱动程序的函数是: result="register"_chrdev(ECM_MAJOR,“ecm”,%26;amp;ecm_fops);可见,这里把SPM作为一个字符型的设备,由于缓冲区是共享,所以必须提供一个锁相制,使得在某个进程向缓冲片中写数据时,其它的进程不读或写该缓冲片。 UClinux不仅在信息家电、低端网络设备和工业控制领域中有较广的应用,而且在简单的数据采集和传输方面也有了应用方案。
在uClinux上运行了三个任务:读取采集数据、通过以太网发送数据、接收和执行来自ICS的命令。其中的读取采集数据任务对实时性有要求,把它用中断处理程序来实现,而其它的两个任务则通过用户进程来实现。通过以太网发送数据的任务和读取采集数据的任务其享一个缓冲区,通过ioclt函数在它们它们传递缓冲区双向链表的地址。所以还需要为SPM注册一个驱动程序,这也是在uClinux操作中比较特别的进程和内核通信的方法。同时,把对SPM的设置和查询等操作也包装在这个驱动程序里同,这些操作都是通过ioctl函数向程提供接口。注册驱动程序的函数是: result="register"_chrdev(ECM_MAJOR,“ecm”,%26;amp;ecm_fops);可见,这里把SPM作为一个字符型的设备,由于缓冲区是共享,所以必须提供一个锁相制,使得在某个进程向缓冲片中写数据时,其它的进程不读或写该缓冲片。 UClinux不仅在信息家电、低端网络设备和工业控制领域中有较广的应用,而且在简单的数据采集和传输方面也有了应用方案。
- 嵌入式系统中USB控制的Host/Slave模式的应用(07-23)
- 基于Simulink的嵌入式网络化控制仿真实现(07-31)
- Blackfin处理器在VoIP解决方案中的应用(08-02)
- 基于HHBF561的家庭网关平台的研究与设计(08-02)
- SOPC技术在嵌入式工业以太网中的应用(08-19)
- Jupiter处理器在嵌入式网关中的应用(09-01)