博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第七章
阅读量:6982 次
发布时间:2019-06-27

本文共 758 字,大约阅读时间需要 2 分钟。

一:首先创建led驱动的设备文件

1.使用cdev_init函数初始化cdev

2.指定设备号

3.使用cdev_add函数将字符设备添加到内核中的字符设备数组中

4.使用class_create宏创建struct_class

5.使用device_create函数创建设备文件

二:卸载LED驱动的设备文件

三:设置寄存器与初始化LED驱动

四:控制LED(及所谓的代码编写——linuxC语言)

举例一种实现方法,如下:

混杂设备驱动中需要实现的是填充file_operations结构,然后设置miscdevices的各个字段值,然后注册到内核即可。详细流程如下:

1.编写ioctl接口函数

2.填充file_operations结构,主要是将ioctl函数注册进去

3.填充miscdevice结构,主要是次设备号、fops和设备名称。

4.编写要提供给module_init宏使用的初始化代码,设置LED端口为输出,注册到内核

5.编写要提供给module_exit宏使用的注销代码,主要是注销掉初始化中注册到内核的miscdevice设备

LED驱动虽然并不复杂,只是控制了4LED,但LED驱动已经包括了Linux驱动所必要的部分。一个完整的Linux驱动主要是由内部处理和与硬件交互两部分组成。其中内部处理主要是指Linux驱动的装载、卸载、与设备文件相关的动作处理以及业务逻辑等。与硬件交互通过iowrite32ioread32等函数与硬件中的寄存器进行数据交互。Linux在不同平台的移植也是处理这两部分。

http://i.cnblogs.com/EditPosts.aspx?opt=1

 

转载于:https://www.cnblogs.com/wstone/p/5560704.html

你可能感兴趣的文章
配套自测连载(二)
查看>>
linux下set和eval的使用小案例精彩解答
查看>>
为什么很多人努力了却死一地
查看>>
开放产品开发(OPD):Archi 汉化工具下载
查看>>
VS code for python开发利器
查看>>
高性能的MySQL(1)锁和MVCC
查看>>
如何用VDP备份虚拟机
查看>>
虚拟机安装 Windows 10 9926 预览版 “准备就绪”...... 故障
查看>>
FTP服务器的防火墙通用设置规则
查看>>
遍历系统文本全文
查看>>
《人人都能看懂经济学》读书笔记
查看>>
Linux文本比较命令:diff
查看>>
Android开发实践:JNI函数签名生成器
查看>>
危机!测试工程师真的要小心了
查看>>
MySQL 高可用MMM
查看>>
Centos6.2_X86_64 _LNMP安装全程实录
查看>>
我的友情链接
查看>>
eclipse插件安装方法
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(1)...
查看>>
Javascript中的字符串链接和Array.join()方法时间效率对比
查看>>