首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

内核空间有关问题

2012-12-18 
内核空间问题请问不同的进程进入同一个驱动时,他们的内核空间是不是相同的?如先有一个进程进入了一个驱动,

内核空间问题
请问不同的进程进入同一个驱动时,他们的内核空间是不是相同的?
如先有一个进程进入了一个驱动,初始化了里面的一个静态的数据a,然后睡眠,等待条件
之后有另一个进程打开进入了这个驱动,来取数据a,是不是在这里取到的数据a就是在上面那个进程中初始化了的值?
[最优解释]
驱动是可以动态加载的,只有加载了其定义的变量才有一页,也就是能输出。如果卸载了,肯定就没了。
你的问题可能就是这个问题。
MODE_INC_USE_COUNT
2.4 可能定义在/usr/include/linux/module.h

2.6要用 try_module_get(THIS_MODULE)和module_put(THIS_MODULE)
你试试看,我也没用过

[其他解释]

引用:
谢谢
那是不是要是先前那个驱动关掉了,后面那个驱动再去读时,那个静态数据里就是空的呢?
还有在写demo测试的时候MODE_INC_USE_COUNT显示没有定义,请问这个宏是包含在哪个头文件里

对不起,我分不多,没办法,回答完这个我就给分了,谢谢~~

#include<linux/module.h>包含以下宏
MOD_INC_USE_COUNT
MOD_DEC_USE_COUNT
MOD_IN_USE

 
[其他解释]
内核空间是共享的,任何进程都共享相同的内核空间,拥有自己的用户空间。
所以,内核编程,也就是驱动,要考虑可重人等问题。
内核中全局的静态数据是可以共享访问的。
[其他解释]
谢谢
那是不是要是先前那个驱动关掉了,后面那个驱动再去读时,那个静态数据里就是空的呢?
还有在写demo测试的时候MODE_INC_USE_COUNT显示没有定义,请问这个宏是包含在哪个头文件里

对不起,我分不多,没办法,回答完这个我就给分了,谢谢~~
[其他解释]
谢谢
那是不是要是先前那个驱动关掉了,后面那个驱动再去读时,那个静态数据里就是空的呢?
还有在写demo测试的时候MODE_INC_USE_COUNT显示没有定义,请问这个宏是包含在哪个头文件里

对不起,我分不多,没办法,回答完这个我就给分了,谢谢~~ 

[其他解释]
很感谢各位帮助
现在又遇到写操作时的bad address,纠结啊
写个驱动测试真纠结,各种权限检查

热点排行