1

運行Linux的嵌入式設備。通常,MTD設備文件子系統用於與閃存進行交互。使用嵌入式設備上的內存

我對這些設備上的內存管理有幾個問題。設備存儲器映射規範不可用。 我們在嵌入式設備上訪問內存的方法很少,其中直接調用內存地址,例如調試時直接寫入內存地址的某個值,或者使用命令在物理地址上讀取:

show <hex address> <number of words to display> 

此命令是否執行對設備的NVRAM NOR閃存或RAM存儲器的訪問? 是否有可能扭轉這個過程,即找到內存地址「生活」一個特定的設置?假設我們知道一個特定的值,並且我們知道該值存儲在某處是內存。有沒有可能找到地址?

+0

不清楚。你想在哪裏執行閱讀?在內核級還是應用級? – LPs

+0

@LPs從終端會話中可以讀取和寫入數據到寄存器(MAC寄存器,PHY寄存器),因此它是OSI第1層。 – sonex

回答

1

此命令是否執行對NVRAM NOR閃存或 存儲器的訪問?

是的,該命令適用於兩種類型的內存,並且通常適用於OS內存映射(即PCI設備內存)中列出的任何其他內存。

是否有可能做反向這個過程,即查找內存地址 其中「生活」一個特定的設置?假設我們知道一個具體的值 ,並且我們知道值存儲在某處是內存。有沒有可能找到地址 ?

是的,如果你有編譯的控制,也有像objdumpnm,讓您分解二進制工具。如果你只有部署系統,你想看看逆向工程。

+0

什麼不清楚:假設我有mtdblock設備(nvram)保存在我的驅動器上,我研究了它並找到目標對象所在的內存地址。如果我在正在運行的系統上調用此內存地址,它是否會返回目標對象,這意味着_static_ mtdblock上的對象的內存地址與實時_running_系統上的內存地址匹配?靜態文件和運行系統上的內存地址是否應該匹配? – sonex

+0

@sonex:取決於可執行文件的哪一部分以及如何設置鏈接器。請參閱:http://www.linuxjournal.com/article/6463?page=0,0 –

相關問題