Andriod深度探索—HAL与驱动开发 第七章 读书笔记

创建LED驱动的设备文件

第1步:使用cdev_init函数初始化cdev

第2步:指定设备号。直接在代码指定或动态分配

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

第4步:使用class_create宏创建struct class

第5步:使用device_create函数创建设备文件

卸载LED驱动的设备文件

需要依次调用device_destroy、class_destroy和unregister_chrdev_region方法

void device_destroy(struct class *class, dev_t devt)

void class_destroy(struct class *cls)

void unregister_chrdev_region(dev_t from, unsigned count)

控制LED

LED驱动可以使用如下两种方式控制LED

1.通过字符串控制LED。

2.通过I/O命令控制LED。

 要想使用上述两种方式控制LED。LED驱动必须要接收相应数据。如果通过字符串控制LED。需要使用file_operations.write函数。如果通过I/O命令控制LED,需要使用file_operations.ioctl函数。

移植Linux驱动有一条非常重要。就是在修改Linux驱动源代码时,应尽量不修改Linux驱动的接口。

本章主要学习了LED驱动,它是一个真正和硬件打交道的Linux驱动。虽然LED驱动并不复杂,只是控制了几个LED,但是LED驱动已经包括了Linux驱动所有必要的部分。一个完整的Linux驱动主要由内部处理和硬件交互两部分组成。其中内部处理主要是指Linux驱动的装载、卸载、与设备文件相关的动作处理(读写设备文件、向设备文件发送I/O命令等动作)以及业务逻辑等。Linux驱动在不同的平台的移植也是处理这两部分。

转载于:https://www.cnblogs.com/l233ee/p/5561697.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值