内核态进程打开设备的问题

Old123 2007-07-15 07:15:30
我修改了ARM Linux内核,在我修改的代码中有一段是要使用一块FPGA芯片提供的功能,我不知道能不能直接open设备文件,再write和read。如果不能的话我该怎么做才能打开设备。
...全文
247 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Old123 2007-08-31
  • 打赏
  • 举报
回复
  有疑问的话,可以和我邮件联系huangxiangli2000@163.com
Old123 2007-08-31
  • 打赏
  • 举报
回复
问题已经解决了,在ULK2第9章的最后有提到如何在内核态使用系统调用。经过试验,可以采用如下的方法:
1.使用_syscallN()宏声明你要使用的系统调用,N是系统调用的参数个数,参考man 2 syscall和linux/unistd.h。
  2.你可以像正常使用系统调用一样使用open,write了
Old123 2007-07-23
  • 打赏
  • 举报
回复
可是Linux里面设备是用文件表示的,我要操作设备,只能打开设备文件才行啊。楼上能不能解释下我的困惑
无知者无谓 2007-07-19
  • 打赏
  • 举报
回复
能够直接访问驱动中的函数这我知道,可是我调read,write时文件名用哪个啊?
=====================================================================
那个文件是用来给用户态跟内核态交互用的,它不是一个物理设备
对于你来说操作的应该是“物理设备”而不是用户态的那个“文件名”
Old123 2007-07-18
  • 打赏
  • 举报
回复
能够直接访问驱动中的函数这我知道,可是我调read,write时文件名用哪个啊?
hzcpig 2007-07-17
  • 打赏
  • 举报
回复
就是你找到FPGA的驱动程序代码,直接调用里面的读写函数或者干脆你找到核心代码,直接复制过来做底层操作就可以了。
cpuwolf 2007-07-17
  • 打赏
  • 举报
回复
不行
你是要实现驱动叠加?

在内核中你就是老大,所以你可以直接访问FPGA驱动中的函数
Old123 2007-07-16
  • 打赏
  • 举报
回复
楼上的能不能给个例子或是一些相关的资料,万分感激。
hzcpig 2007-07-16
  • 打赏
  • 举报
回复
应该不行,open和read,write都是用户态打开设备的调用。

如果要在内核态使用设备,应该使用驱动为内核提供的系统调用,或者直接把驱动include进去,直接调用驱动里read,write的相应函数。

4,438

社区成员

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

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