驱动的面试文件集合

问:Linux内核有那么多驱动程序,如何才能确定自己需要访问的驱动程序?
答:通过设备文件中包含的设备号信息 

问:Linux内核中,如何描述描述文件?
答:<1>struct inode 描述文件属性信息(文件类型,权限,大小,修改时间,设备号[设备文件])
   <2>struct file  描述一个打开的文件(打开的方式,文件偏移量,...)
       [注意:只要打开一次文件,就会分配一次]
       

问:应用层访问底层字符设备驱动的过程?
答:open---->设备文件
                             struct inode:设备号
                                             --------->struct cdev
                                                          它的一个成员记录操作硬件设备的函数接口
                                                         (struct file_operations)
                                             
     
     寻找成功之后:
     struct inode 结构体记录struct cdev这个结构体首地址
     struct file  结构体记录struct file_operations这个结构体首地址

问:写字符驱动,需要做什么?
答:<1>struct cdev:Linux 针对字符设备的通用描述
          
        struct  led_device{
            struct cdev cdev;//通用的字符设备描述
            ...
        };
        需要给自己设计的结构体分配空间
          
    <2>提供硬件设备的操作函数接口
         struct file_operations 结构体做填充  
         需要将这个结构体的首地址记录在struct cdev结构体中
                 
    <3>申请一个空闲的设备号
     
    <4>使用设备号,将struct cdev这个结构体添加到系统中去 
                       

七 写字符设备驱动,驱动需要包含哪些信息

1.设备号
       |
       |
2.struct cdev
       |
       |
       | 
3.一组函数接口 -----> struct file_operations
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值