嵌入式Linux对内存的直接读写

来源:互联网 发布:软件学校排名 编辑:程序博客网 时间:2024/05/16 02:43

本文转载于:http://blog.sina.com.cn/s/blog_838007b101013n0y.html


memdev:直接读写内存。

可以在busybox的杂项中找到:


CONFIG_USER_BUSYBOX_DEVMEM:                                       
                                                                  
devmem is a small program that reads and writes from physical     
memory using /dev/mem.                                           
                                                                  
Symbol: USER_BUSYBOX_DEVMEM [=y]                                  
Prompt: devmem                                                    
  Defined at ../user/busybox/busybox-1.14.3/miscutils/Kconfig:216 
  Depends on: USER_BUSYBOX_BUSYBOX                                
  Location:                                                       
    -> BusyBox (USER_BUSYBOX_BUSYBOX [=y])                        
      -> Miscellaneous Utilities                                  


[用法]
Usage: devmem ADDRESS [WIDTH [VALUE]]
读取:在地址0x97000000读取32bit值(WIDTH默认等于32, 可选值为[8, 16, 32, 64])
/dev # devmem 0x97000000 
0x11111111
读取:在地址0x97000000读取16bit值
/dev # devmem 0x97000000 16
0x1111


写入:在地址0x97000000写入32bit值0x7777ABCD
/dev # devmem 0x97000000 32 0x7777ABCD
/dev # devmem 0x97000000              
0x7777ABCD


注意:如果/dev下没有mem这个node,会出现错误:
/dev # devmem 0x97000000 
devmem: can't open '/dev/mem': No such file or directory


这时可以在Host系统中手动创建一个(例如在NFS root filesystem模式):
host@host-laptop:~/embedded/tftpboot/nfsroot/dev$ sudo mknod mem -m666 c 1 1
注意这里的权限是666,允许任何人任意读写,可以很好的配合程序debug。


/dev # devmem 0x97000000
0x7777ABCD
原创粉丝点击