网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月02日漏签0天
驱动开发吧 关注:305贴子:225
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回驱动开发吧
>0< 加载中...

Linux驱动的层次关系与分类

  • 只看楼主
  • 收藏

  • 回复
  • 安信实验室李生
  • 高级粉丝
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Linux驱动的层次关系与分类
1、Linux软件系统的层次关系
软件系统可分为:应用程序、库、操作系统(内核)、驱动程序
以点亮LED为例,分析各层间的写作关系
1)应用程序调用库提供的open函数打开代表LED的设备文件;
2)库根据open函数传入的参数执行“swi”指令,这条指令会引起CPU异常,进而进入内核;
3)内核的异常处理函数根据这些参数找到相应的驱动程序,返回一个文件句柄给库,进而返回给应用程序;
4)应用程序得到文件句柄后,使用库提供的write或ioctl函数发出控制指令。
5)库根据write或ioctl函数传入的参数执行“swi”指令,引起CPU异常,进入内核;
6)内核的异常处理函数根据这些参数调用驱动程序的相关函数,点亮LED
  库给应用程序通过的接口函数:open、read、write、ioctl、mmap等(系统调用),都是设置好相应寄存器后,执行某条指令引发异常进入内核,对于ARM架构CPU,指令为swi,软中断
  实际上,内核和驱动并没有界线,因为驱动最终是要通过静态链接和动态加载编进内核中去的;从上分析可知,驱动一般是被动的,根据应用程序的需求来执行。
2、驱动程序分类
  字符设备、块设备、网络设备


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回驱动开发吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示