linux驱动程序的开发流程,linux驱动开发流程(转的)

基于操作系统的驱动就是在无操作系统下的硬件接口函数加上操作系统外套

实现一个嵌入式Linux设备驱动程序的大致流程如下:

(l)查看原理图,理解设备的工作原理。

(2)定义主设备号。设备由一个主设备号和一个次设备号来标识。主设备号唯一标识了设

备类型,即设备驱动程序类型,它是块设备表或字符设备表中设备表项的索引。次设备号仅

由设备驱动程序解释,区分被一个设备驱动控制下的某个独立的设备。

(3)实现初始化函数。在驱动程序中实现驱动的注册和卸载。

(4)设计所要实现的文件操作,定义file--operations结构。

(5)实现所需的文件操作调用,如read,write等。

(6)实现中断服务,并用request--irq向内核注册,中断并不是每个设备驱动所必需的。

(7)编译该驱动程序到内核中,或者用insmod命令加载模块。

(8)测试该设备,编写应用程序,对驱动程序进行测试。

典型字符设备驱动编写框架:

1 编写硬件接口函数

2 建立文件系统与设备驱动程序间的接口,如:struct file_operations结构体

3 注册设备到chrdevfs全局数组中,注册或注销设备可以在任何时候,但一般在模块加载时注册设备,在模块退出时注销设备。(module_init();module_exit();)

4 以模块方式编译驱动源码,并将其加载到内核中

5 创建设备节点,mknode

6 编写应用程序访问底层设备

驱动程序module的工作流程主要分为四个部分:

1、 insmod module

2、 驱动module的初始化(初始化结束后即进入“潜伏”状态,直到有系统调用)

3、 当操作设备时,即有系统调用时,调用驱动module提供的各个服务函数

4、 rmmod module

功能就是使linux操作系统可以和外围设备通信,对设备进行操作等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值