在线问答
直播中

中科院

10年用户 208经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术 嵌入式技术 连接器 光电显示 存储技术 接口/总线/驱动 控制/MCU RF/无线
私信 关注

【OK210试用体验】4.2 Linux下驱动的编写---驱动程序设计原理篇

这篇文章要精练一些。由于第一,上一篇文章字数太多,导致了现在还是被审核状态中

第二,今天我因为远离故乡,所以心情也不是特别的阳光,上班开朗的工程师也都回家了,我(根据百度地图)据故乡还有30个小时的火车或者2000多公里的距离,心里惆怅。

再接着码字吧,只有传道,授业,解惑才是最重要的!
内核空间 :Linux操作系统,特别是它的内核,用一种简单而有效的方法管理机器的硬件,给用户提供一个简捷而统一的编程接口。同样的,内核,特别是它的设备驱动程序,是连接最终用户/程序员和硬件的一坐桥或者说是接口。任何子程序或者函数只要是内核的一部分(例如:模块,和设备驱动),那它也就是内核空间的一部分。
实现一个最基本的设备驱动程序的话,那么至少应该实现下面四个操作设备的函数打开一个设备,向设备写入数据,从设备读取数据,关闭设备等.。
设备基本数据结构
QQ截图20150927121030.png

打开设备的函数就是主要的。最最基本的
QQ截图20150927121052.png

写入设备的实现
QQ截图20150927121146.png

读取设备
QQ截图20150927121129.png

释放设备的函数
QQ截图20150927121103.png

内核模块的初始化
QQ截图20150927121308.png

用户空间. 最终用户的应用程序,像UNIX的shell或者其它的 GUI的程序(例如,gedit),都是用户空间的一部分。很显然, 这些应用程序需要和系统的硬件进行交互。但是,他们不 是直接进行,而是通过内核支持的函数进行,以下就是用户态测试程序:
QQ截图20150927121335.png

更多回帖

发帖
×
20
完善资料,
赚取积分