嵌入式Linux對內存的直接讀寫

本文轉載於: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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章