3291|1

1560

帖子

24

TA的资源

五彩晶圆(初级)

楼主
 

2440学习记录(五)带有中断的字符驱动编写 [复制链接]

本帖最后由 lonerzf 于 2014-7-21 15:21 编辑

参考文章:blog.csdn.net/lwj103862095/article/details/17511867
          hi.baidu.com/513773348/item/9952025f34e8f611db1635ef

花了一天时间,对字符驱动里入门时较常出现的一些函数做了整理。
         
一、内核的中断体系

ARM架构linux内核中,有5种常见的异常,其中中断异常是其一,Linux内核将所有中断统一编号,使用一个irq_desc结构体来描述这些中断,里面记录了中断名称、中断状态、中断标记、并提供了中断的底层硬件访问函数(如:清除、屏蔽、使能中断),提供了这个中断的处理函数入口,通过它还可以调用用户注册的的中断处理函数。

二、irq_desc结构体

Linux内核将中断统一编号,并使用irq_desc结构数组来描述中断。


三、使用request_irq向内核注册中断



四、中断释放函数free_irq



五、linux进程的休眠

使用wait_event函数,其扩展型常用的函数为
wait_event_interruptible(wq, condition);        表明它是一个可被中断打断的休眠。
wq是一个等待队列,condition是条件,如果condition = 0,则将会进行休眠,直到condition = 1,并且有唤醒函数唤醒它。

六、linux进程的唤醒

使用wait_up函数,其扩展型常用的函数为wake_up_interruptible(wq)wqwait_event_interruptiblewq是一致的。
不能直接使用wait_event_interruptiblewake_up_interruptible函数。必须事先使用static DECLARE_WAIT_QUEUE_HEAD(wq)定义并初始化一个等待队列头,并设置condition条件变量。

七、copy_to_user



八、file_operations结构体


   这里,红色的函数是入门常见的几个字段,特别标明。

九、register_chrdev



十、class_create



十一、device_create




可以对照附件内驱动查看以上内容。
key.rar (2.89 KB, 下载次数: 9)



最新回复

过来看看~~~~~~~~~~~~~  详情 回复 发表于 2014-7-21 15:47
点赞 关注
个人签名这孩子,成熟的象征,理智的典范。

回复
举报

1119

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
过来看看~~~~~~~~~~~~~
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表