2914|1

7172

帖子

195

TA的资源

五彩晶圆(高级)

楼主
 

《原子嵌入式Linux驱动开发详解与实战》第一章阅读心得 [复制链接]

 

最近一周粗略看了下本书的

第1章字符设备驱动开发

 

字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。

LINUX应用程序对驱动的调用如图

 

 

前两章重点讲解了LINUX的设备驱动的开发

 

LINUX上做过一些应用

但是驱动我自己真的还没有完整的做过

 

一:详细讲解了字符设备驱动的开发实验

能够对 chrtest 进行打开和关闭操作,设备打开和关闭是最基本的要求,几乎所有的设备都得提供打开和关闭的功能。
对 chrtest 进行读写操作
假设 chrtest 这个设备控制着一段缓冲区(内存),应用程序需要通过 read 和 write 这两个函数对 chrtest 的缓冲区进行读写操作。所以需要实现 file_operations 中的 read 和 write 这两个函数

书中列举了一个例子,详细分析了chrdevbase_read和chrdevbase_write函数的编写内容

tatic ssize_t chrdevbase_write(struct file *filp, const char __user *buf, size_t cnt, loff_t *offt)

{

         int retvalue = 0;

         /* 接收用户空间传递给内核的数据并且打印出来 */

         retvalue = copy_from_user(writebuf, buf, cnt);

         if(retvalue == 0){

                   printk("kernel recevdata:%s\r\n", writebuf);

         }else{

                   printk("kernel recevdata failed!\r\n");

         }

        

         //printk("chrdevbase write!\r\n");

         return 0;

}

 

驱动函数完成后就需要编写应用APP函数

 

其实APP函数简单了很多,编写测试 APP 就是编写 Linux 应用,操作有关的一些函数,比如open、 read、 write 和 close 这四个函数。

 

编写完成后就是编译

 

加在驱动文件insmod chrdevbase.ko

然后运行

 

最新回复

这个字符设备最基本的一类设备驱动,在 Linux 驱动中,这个明白了   详情 回复 发表于 2024-3-26 07:29
点赞 关注

回复
举报

6609

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

这个字符设备最基本的一类设备驱动,在 Linux 驱动中,这个明白了

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表