字符设备知识 笔记

1:在linux系统中,驱动程序通常采用内核模块的结构来编码。因此编译、安装一个驱动程序实际上就是编译、安装一个内核模块。


2:通过字符设备文件,应用程序可以使用相应的字符设备驱动程序来控制设备。创建字符设备文件的方法一般有两种:
1:使用mknod命令
mknod /dev/文件名 c 主设备号 次设备号
c:代表是字符设备文件,char的缩写
主设备号:字符设备文件和设备驱动程序之间的联系就是通过主设备号来建立 的。
次设备号:取0-255之间非0的值就可以。


注意:在创建字符设备文件的时候要根据已经安装好的驱动程序的设备号来确定 使用mknod时的主设备号的值,两者要保持一致。
例:mknod /dev/memdev0 c 253 0




2:使用函数在驱动程序中创建




3:编写应用程序来使用字符设备驱动。
注意以下语句:
int fd = 0;
fd = open("/dev/memdev0",O_RDWR);
打开memdev0这个设备。


编写应用程序在开发板上运行的时候如果遇到这个问题:
/binsh: ./***: not found
这种情况一般是编译时有动态库,而开发板上没有动态库。可以使用下面这个命 令来查看:
arm-linux-readelf -d ***
解决的方法有两种:
一种是把编译时使用的动态库拷贝到开发板上去。
另一种是使用静态编译:
#arm-linux-gcc -static ***.c -o ***


总结:
应用程序通过调用系统函数open write read等函数,来操作字符设备文件/dev/memdev0,然后文件memdev0通过对应的主设备号找到驱动程序,实现底层硬件的访问读写等等一系列操作。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值