linux 字符驱动要点

1、字符驱动模型

1)创建cdev

2) 申请设备号,若使用静态的设备号,查看内核文档Documentation/devices.txt;

3)实现file_operation

  read

   write

  ioctl

   定义魔术,查看ioctl-number.txt,已经使用的魔术

   定义命令

常用函数

copy_to_user(void *dst,void*src,size_t len);

copy_from_user(void*dst,void*src,size_t len);

4)创建设备文件

  cat /proc/devices 查看当前系统注册的设备

a.手动创建 mknode /dev/testchar c major minor

可以通过cat /proc/devices查看主设备号,从源码中找到次设备号;

b.自动创建

 首先,需要在编译内核时候,在 Device Drivers-->

                                                 Generic Driver Options--->

                                                                 [*] Maintain a devtmpfs

                                                                  [*] Automount devtmpfs

或者 制作根文件系统的启动脚本中输入

  mount -t sysfs none sysfs /sys

mdev -s

 其次,在加载设备的将设备信息导出到“/sys”

在 /sys 中导出设备类信息

cls = class_create(THIS_MOUDLE,DEV_NAME);

/在cls指向类中创建一组(个)设备文件

fori(i=minor;i<(minor+cnt);i++)

devp = device_create(cls,NUll,MKDEV(major,i),NULL,"%s%d",DEV_NAME,i)

2、按照以上要点,一个简单的字符设备驱动就搭建完成了。

这样就可以编写用户程序进行测试。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值