如何在内核模块中对linux字符驱动进行读写呢

xc889078 2012-03-14 11:18:01
如果是用户空间的话 有copy_to_user()、copy_from_user()函数,但如果我想在内核中编写内核模块,实现对linux字符驱动的读写过程,应该怎么做呢?请教大家啦!
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用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()函数 本来就是在内核空间中使用的!

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧