博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于如何编写linux设备驱动
阅读量:6432 次
发布时间:2019-06-23

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

关于如何编写linux设备驱动

1)首先确定硬件接口使用的总线,

2)然后确定要实现的功能,是网卡、sensor还是什么?再确定对上层应用暴露的接口, 从而选择子系统,例如iio、input子系统等。由于linux只有字符设备、块设备、网络设备三种设备,其实iio、input子系统都是字符设备,只是它们帮你封装好了字符设备的file_operations和Major设备号了,另外提供统一的sysfs接口(一类sysfs接口)。你只需要按照子系统要求注册进子系统就行。子系统就像应用和你驱动之间的framework中间层,它帮你处理了很多通用的功能。另外自己再加入一些specific的sysfs接口即可。
确定了上面这些后,你就可以找到对应的例子去抄(参考)了。说白了,linux 内核设计者已经给你搭好了大的框架,你所要思考框架的东西并不多,你需要的是熟悉内核提供了什么框架子系统,如何使用。
什么样的bus,决定你调用什么总线API去访问硬件,什么样的功能决定你用什么样的子系统来暴露接口给上层应用使用。

关于具体的写linux驱动的方法、技巧和注意事项,欢迎观看我的《如何编写linux设备驱动》的视频:

另外我的相关培训视频请看:

欢迎观看我发布的各个课程:

另外我的免费的linux各种驱动开发课程如下:

另外注意:

即原则,内核只提供功能和接口,不负责策略和配置,策略和配置应该有具体应用提供。
天下代码一大抄,鼓励大家理解的方式抄好的代码例子。
对各个linux kernel子系统的api函数和重要结构体的熟悉是必须的。

转载于:https://blog.51cto.com/8906847/2367953

你可能感兴趣的文章
2017(中国)商博会系列介绍之智能生活展
查看>>
eclipse link方式安装 sts(Spring Tool Suite)
查看>>
数据结构思维 第三章 `ArrayList`
查看>>
CentOS6、7编译安装FFmpeg
查看>>
被眼睛欺骗?这正是你比机器高明的地方!深度学习如何处理认知错觉
查看>>
向导机器人出没日本机场,外表萌萌哒!
查看>>
Android项目实战(二十九):酒店预定日期选择
查看>>
PHP IDE phpstorm 常用快捷键
查看>>
蓝牙的未来怎样发展?
查看>>
AI、新材料、5G、智慧城市,未来的社会场景在高交会提前上演
查看>>
Facebook开发的一种数据查询语言——GraphQL:安全概述和测试技巧
查看>>
ECS主动运维2.0,体验升级,事半功倍
查看>>
vim 学习方法
查看>>
php token验证范例
查看>>
WebSocket的C++服务器端实现
查看>>
java中两种添加监听器的策略
查看>>
MySQL explain 详解
查看>>
【翻译】Traits in PHP
查看>>
脑洞成现实!AI系统可提前10s预测地震
查看>>
视频风口下,传统CDN服务商将归何处
查看>>