您好, 登录| 注册|
论坛导航
您好, 登录| 注册|
子站:
商城:

搞Linux设备驱动,你应该明白这几个问题!

2017-12-05 09:37 来源:电子工程网 编辑:Janet

想要深入理解linux设备驱动,你必须明确以下几个问题:

· 应用程序、库、内核、驱动程序的关系

· 设备类型

· 设备文件、主设备号与从设备号

· 驱动程序与应用程序的区别

· 用户态与内核态

· Linux驱动程序功能

搞Linux设备驱动,你应该明白这几个问题!

一、应用程序、库、内核、驱动程序的关系

1) 应用程序调用一系列函数库,通过对文件的操作完成一系列功能:      

应用程序以文件形式访问各种硬件设备(Linux特有的抽象方式,把所有的硬件访问抽象为对文件的读写、设置)

函数库:  

部分函数无需内核的支持,由库函数内部通过代码实现,直接完成功能

部分函数涉及到硬件操作或内核的支持,由内核完成对应功能,我们称其为系统调用

2) 内核处理系统调用,根据设备文件类型、主设备号、从设备号(后面会讲解),调用设备驱动程序;

3) 设备驱动直接与硬件通信;

二、设备类型

硬件是千变万化的,没有八千也有一万了,就像世界上有三种人:男人、女人、女博士一样,linux做了一个很伟大也很艰难的分类:把所有的硬件设备分为三大类:字符设备、块设备、网络设备。

1) 字符设备:字符(char)设备是个能够像字节流(类似文件)一样被访问的设备。

对字符设备发出读/写请求时,实际的硬件I/O操作一般紧接着发生;

字符设备驱动程序通常至少要实现open、close、read和write系统调用。

比如我们常见的lcd、触摸屏、键盘、led、串口等等,就像男人是用来干活的一样,他们一般对应具体的硬件都是进行出具的采集、处理、传输。

2) 块设备:一个块设备驱动程序主要通过传输固定大小的数据(一般为512或1k)来访问设备。

块设备通过buffer cache(内存缓冲区)访问,可以随机存取,即:任何块都可以读写,不必考虑它在设备的什么地方。

块设备可以通过它们的设备特殊文件访问,但是更常见的是通过文件系统进行访问。

只有一个块设备可以支持一个安装的文件系统。

比如我们常见的电脑硬盘、SD卡、U盘、光盘等,就像女人一样是用来存储信息的。

1 2 下一页 

声明:本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原网站所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱:editor@netbroad.com。

相关阅读

技术专题 更多>>
2018慕尼黑上海电子展电源网直击报道
带你走进国内权威CNAS&ILAC认证实验室
电源网牵头联合芯派实验室和是德科技联手为电源网网友提供的福利活动—即“免费带你走进国内最权威的CNAS&ILAC认证实验室—西安功率器件测试应用中心”活动圆满举办成功。

头条推荐

  • TI新版产品上线
2017年电源网工程师巡回培训会-上海站会后报道
2017年电源网工程师巡回培训会-上海站于9月16日召开,会议共计6个议题有近230的工程师到场参与,陶显芳陶老师分享了关于"EMI传导干扰滤波电路的设计“议题,将现场工程师交流推向了高潮!
2018慕尼黑上海电子展
关注我们
新浪微博
官方Q群
客服热线
服务时间:周一至周五9:00-18:00
微信关注
免费技术研讨会
获取一手干货分享