新闻中心

EEPW首页>嵌入式系统>设计应用> ARM+Linux 的仪器控制系统的设计模式分析

ARM+Linux 的仪器控制系统的设计模式分析

作者: 时间:2012-07-25 来源:网络 收藏

对于AT91RM9200利用如下转换函数获取虚拟地址,其中宏AT91_VA_BASE_SYS是系统虚拟基地址:

读写端口对于AT91RM9200还可使用专门函数

ARM+Linux 的仪器控制系统的设计模式分析

int at9 1_set_gpio_value(unsigned pin,int value),并包含头文件asm-arm/arch-at91/gpio.h。一般端口的访问在驱动模块初始化时申请资源,在卸载时释放资源,而对于I/O口的使能则在open方法中实现,相应的禁用在release方法中实现。

1.3 ioctl方法的实现

用户可以通过ioctl方法向内核发送各种命令,必要时传递参数,下面展示一个简单实例。

ARM+Linux 的仪器控制系统的设计模式分析

1.4中断控制实现

当外部信号的到来时刻不可预测时,使用轮询方式将使得效率极低,需要使用阻塞型中断实现。即没有中断信号到来时阻塞读进程,使其处于睡眠状态,当中断到来唤醒读进程,执行预定处理操作。

首先,在open方法中使用request_irq()安装中断处理程序,在release方法中释放。函数原型如下:

ARM+Linux 的仪器控制系统的设计模式分析

其中:参数irq为中断号;handler为ISR指针;flags为与中断管理有关的各选项字节掩码;dev_name即设备名;dev_id为中断信号线。

其次,ISR为申请中断时使用的参数名,假设为irq0_handler,定义原型如下:

ARM+Linux 的仪器控制系统的设计模式分析

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭