社区
Linux_Kernel
帖子详情
如何在内核模块中对linux字符驱动进行读写呢
xc889078
2012-03-14 11:18:01
如果是用户空间的话 有copy_to_user()、copy_from_user()函数,但如果我想在内核中编写内核模块,实现对linux字符驱动的读写过程,应该怎么做呢?请教大家啦!
...全文
137
5
打赏
收藏
如何在内核模块中对linux字符驱动进行读写呢
如果是用户空间的话 有copy_to_user()、copy_from_user()函数,但如果我想在内核中编写内核模块,实现对linux字符驱动的读写过程,应该怎么做呢?请教大家啦!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
neipe2003
2012-03-19
打赏
举报
回复
比如GPIO的读写,在你用内核的一些API,比如char int a= XXX_READ(0X12345678),0X12345678是对应寄存器的地址。然后不用copy_to_user(),直接用进行下一步操作。如果是为了提高执行效率,可以考虑用memmap()设置内存映射,绕开内核到用户空间的开销。
dfysy
2012-03-19
打赏
举报
回复
内核里面读数就没那么麻烦了,都在内核空间,你就跟访问一个外部函数那样访问就OK了
nossiac
2012-03-15
打赏
举报
回复
内核中没有C库,直接调用该字符驱动注册的读写函数就行了。
xc889078
2012-03-14
打赏
举报
回复
[Quote=引用 1 楼 laojing123 的回复:]
copy_to_user()、copy_from_user()函数 本来就是在内核空间中使用的!
[/Quote]
这个我知道,但那个函数是用于用户空间和内核之间的数据交换,现在我想编写内核模块,实现数据在内核内部的交换,不走用户空间
井朝天
2012-03-14
打赏
举报
回复
copy_to_user()、copy_from_user()函数 本来就是在内核空间中使用的!
Linux
内核模块
开发
本课程基于
Linux
5.10.179内核版本,由浅入深,从一个最简单的例子程序开始,
进行
内核模块
开发的学习,每一课由一个例子程序开始,逐步讲解
Linux
内核模块
的开发、调试以及各子系统的机制。学习本课程之后,学员将会对
Linux
内核模块
的开发有较为深刻的认识。在学习本课程之前,需要有一定C语言基础,能够使用常用的
Linux
命令,会用vi编辑器基本的操作。课程特点:循序渐进,深入浅出样例丰富,着眼实践课程具有丰富的实例和讲解,基本每节课都有一个示例程序,跟着示例程序
进行
开发将快速入门
Linux
字符
设备
驱动
开发之内存
读写
的应用实例
字符
设备是
Linux
系统三大类设备之一(
字符
设备、块设备、网络设备),作为
Linux
最简单的一类设备,
字符
设备常用来传输一些简单的控制命令或者少量的数据。本篇文章分享了如何在
Linux
内核
中
创建一个
字符
设备,并在应用程序
中
测试该设备的实例。该
字符
设备通过在内核
中
创建一段内存空间,并将这段空间作为
字符
设备
读写
访问的目标地址,来实现
Linux
内核
字符
设备
驱动
与应用程序的通信。 1. 操作系统 Li...
【嵌入式
Linux
内核
驱动
】
字符
设备
驱动
| 注册设备号 | 初始化
字符
设备 | 实现定制文件操作 | 实现
读写
文件操作
【嵌入式
Linux
】
字符
设备
驱动
| 注册设备号 | 初始化
字符
设备 | 实现定制文件操作 | 实现
读写
文件操作
Linux
驱动
简单的
字符
设备
驱动
例子
Linux
驱动
简单的
字符
设备
驱动
例子 一、简述 记--简单的
字符
设备
驱动
例子。 二、
字符
驱动
程序测试 使用简单的缓冲区,简单的实现
字符
设备的
读写
模拟。 2.1 测试代码 2.2 编译
驱动
程序并测试 三、应用层
读写
字符
设备测试 3.1 测试代码 3.2 测试结果 四、附 4.1 struct file_operations相关函数原型 在/usr/src/
linux
-headers-xxx/include/
linux
/fs.h
中
(xxx使用uname -......
linux
系统
中
字符
设备
驱动
开发方法
linux
驱动
有两种运行方式,第一种就是将
驱动
编译进
linux
内核
中
,这样当
linux
内核启动的时候就会自动运行
驱动
程序。
字符
设备是
Linux
驱动
中
最基本的一类设备
驱动
,
字符
设备就是一个一个字节,按照字节流
进行
读写
操作的设备,
读写
数据是分先后顺序的,比如我们常见的点灯、IIC、SPI等都是
字符
设备,这些设备的
驱动
叫做
字符
设备
驱动
。在
linux
驱动
开发
中
肯定要初始化相应的外设寄存器,只是在
linux
驱动
开发
中
,需要根据规定的框架来编写
驱动
,所以学
linux
驱动
开发重点是学习框架。”命令卸载具体
驱动
的时候。
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章