2010-09-26 78 views
1

我正在使用軟件來控制嵌入式ARM系統上的mmap'd設備,但遇到了一些可用的調試和開發工具不足的情況。即像valgrind和更高端線程分析器這樣的工具工具不可用。我如何通過網絡代理mmap讀取和寫入?

我希望做的是編譯的x86機器上我的代碼,mmap的內存使用相同的大小,然後代理讀取那些通過網絡/寫入嵌入式機器然後可以迴應一個「虛擬」段因此。

我意識到這可能需要一個客戶機/服務器機制,而且會非常慢,但擁有此選項的好處會使得mmap接口本身之外的機制(異步事件處理,線程管理)可供儀器使用x86開發工具將非常有用。

我在某些ASIC開發中聽說過這種技術用於仿真,但從未使用任何提供此功能的東西。這裏的關鍵是我想在兩個平臺上使用相同的代碼,而不必重寫一堆東西,或者必須編寫內核模塊,其中包含任何硬件處理邏輯。我想通過mmap保留所有在userland的設備控制邏輯

回答

1

如果您認爲這一點,基本上這歸結爲實現遠程文件系統。

  • 的「最簡單」可能會,如果你的 嵌入式設備可以實現你的 臺式機上 簡單的版本NFS客戶端 的一面,和mmap文件
  • 逆應該也是可以的, 即在您的嵌入式系統上運行nfs服務器模塊 ,並且 將類似/dev/shm的東西導出爲nfs掛載點到您的桌面。

對於這兩種方法(使用mmap的任何其他方法),您必須非常小心數據同步。但只要你有一個基本上一個作家和一個讀者的典型調試設置,這可能是可行的。如果這變得更復雜,則可以使用遠程文件鎖定作爲nfs擴展。

+0

一個有趣的建議,我會調查! – synthesizerpatel 2010-09-28 17:43:38

0

我以前想過類似的東西,但從來沒有真正想過實施它。不過,你可能想給memcached一些東西一看,我知道它通常用於基於web/db的東西,但是爲了這個目的可能會濫用它,特別是因爲它是用於調試的。