- 论坛徽章:
- 0
|
原帖由 思一克 于 2006-4-14 17:07 发表
那你open("/dev/mem", ...)之后,又不read/write了。
去memset哪个地方?
"所以我不会用read/write
memset area
*(DWORD *)addr = 0x000000f
这不会更简单吧. "
我当时测试只是稍修改了mapper
方便测试,我加了一句,置/dev/mem 0x600000 0x400000 c
后一看,这段内存全是c
如果没有文件的instance
直接赋予的地址Kernel会以为是虚地址
所以打开是必须的.
也就是说,open /dev/mem
lseek
这几句主要是定位
后面操作时,最好是memcpy/memset等.
如果采用vfs的read/write就没必要了
而且就是文件操作,也并非实现write/read就会调用copy_to_user之类呀
在我的/proc/mem_window中记录文件,实际只返回了物理地址指针及len
其实重写了read/write的operation
[ 本帖最后由 obrire 于 2006-4-14 17:27 编辑 ] |
|