系列文章目录
此博客内容根据韦东山嵌入式Linux驱动开发课程书写而来,将课程中用到的代码移植到树莓派4B板子。
文章目录
- 系列文章目录
- 前言
- 一、驱动设计思想--分离
- 二、示例代码
- 三、操作步骤如下
前言
在上一篇内容中,书写了一个设备驱动程序来完成LED的点亮与熄灭,在里面抽象出了一个file_operations结构体,通过register_chrdev函数将file_operations结构体将结构体告诉内核来注册驱动程序;
针对硬件操作部分抽象出了led_operations结构体,在led_operations定义了LED的属性和动作。
抽象结构体就是利用了面向对象的思想,并且在程序中还利用了上下分层的思想,在程序中分为了两侧,上层实现了与硬件无关的操作,比如注册字符设备驱动(lecdrv.c),下层则是与树莓派硬件操作相关的,里面定义了树莓派LED的属性和动作。
一、驱动设计思想–分离
分离的思想则是在前面面向对象和分册的思想的基础上进一步升级,加入分离思想。假设我们有两块树莓派的板子,两块板子使用的是同一款芯片bcm2711,但是两块板中使用不同的LED资源,假设A主板使用GPIO0、1,B主板使用了GPIO2、3,如果我们还是使用前面的设计思想,在驱动程序中我们需要写两个不同
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)