设备驱动层
发布时间:2012/4/3 0:37:32 访问次数:608
MOS采用传统的“逻辑/物理”分层方式 KM23V16000DET-12 来对应硬件的设备驱动设计。MOS设备驱动层(DEV层)涵盖了同步I/O设备(如传感器、外部存储器等)的驱动程序和异步通信设备(如无线电波( radio)、串行口(serial link)、循环接口(loopback interfaces》的驱动程序,如图6-3所示的异步通信设备的驱动程序接口驻留在COMM层中。每一个设备都为上层用户提供了如表6-2所示的POSIX风格的系统调用函数(参数dev在MOS中代表了每一个设备的唯一标志号)。
MOS使用一个独立的静态表来存储每个设备的函数指钟。在表中使用索引而不是文件描述符来指明设备,这样可以减少代码空间和内存空间。因为表是静态的,表未满可能会造成一些表头丢失的情况。每个设备都有4个函数,拥有一个信号量,帮助多个用户互斥地使用设备。在设备初始化以后,需要调用dev_register()将设备函数指针放入到调用表中,同时对与设备相关的互斥信号量进行初始化。
dev_mode()提供了调用能量管理的接口,设备可以处于开、关或者是无效状态,设备状态的有效切换可以节约能耗。dev_ioctl()可以设置设备的一些具体参数。例如,对EEPROM的操作,在调用dev_read()和dev_write()访问硬件之前可以先使用dev_ioctl()设定存储器的地址。
MOS采用传统的“逻辑/物理”分层方式 KM23V16000DET-12 来对应硬件的设备驱动设计。MOS设备驱动层(DEV层)涵盖了同步I/O设备(如传感器、外部存储器等)的驱动程序和异步通信设备(如无线电波( radio)、串行口(serial link)、循环接口(loopback interfaces》的驱动程序,如图6-3所示的异步通信设备的驱动程序接口驻留在COMM层中。每一个设备都为上层用户提供了如表6-2所示的POSIX风格的系统调用函数(参数dev在MOS中代表了每一个设备的唯一标志号)。
MOS使用一个独立的静态表来存储每个设备的函数指钟。在表中使用索引而不是文件描述符来指明设备,这样可以减少代码空间和内存空间。因为表是静态的,表未满可能会造成一些表头丢失的情况。每个设备都有4个函数,拥有一个信号量,帮助多个用户互斥地使用设备。在设备初始化以后,需要调用dev_register()将设备函数指针放入到调用表中,同时对与设备相关的互斥信号量进行初始化。
dev_mode()提供了调用能量管理的接口,设备可以处于开、关或者是无效状态,设备状态的有效切换可以节约能耗。dev_ioctl()可以设置设备的一些具体参数。例如,对EEPROM的操作,在调用dev_read()和dev_write()访问硬件之前可以先使用dev_ioctl()设定存储器的地址。
上一篇:网络栈和通信层(COMM)