2012-11-11 30 views
0

我的要求很簡單。 我有一個嵌入式平臺上運行的Ubuntu。我想在內存中分配一些永久位置(我知道DRAM開始的地址)。我所需要的是內存不應該被操作系統觸及,我可以對該內存執行自定義操作(例如收集一些統計數據並寫入該位置)。在嵌入式系統中永久分配內存

的要求是:

  1. 分配在內存中的某個位置(操作系統分配的內存,並返回我回來的地址,我無所謂)。
  2. 這個位置應該在那裏,直到操作系統運行。
  3. 大小是一個參數。
  4. 我想使用busybox devmem命令來讀寫這個位置。
+0

這不是一個答案。也許你的問題很簡單,我的意思是,也許你可以使用Redis,SQLite或者一堆輕量級數據庫(在內存數據庫中)。 wiki.debian.org/ramfs ...希望這個幫助。 – yeyo

回答

0

您可以在文件系統上掛載一些內存,如tmpfs,然後在分區上操作文件。

例如,http://www.cyberciti.biz/faq/howto-create-linux-ram-disk-filesystem/

+0

具體的建議可能不適用,因爲它們不是由「原始」內存支持,而是由文件系統緩存代碼支持,結果是隻能通過該代碼訪問內容。海報似乎需要在內核啓動之前可能使用的「原始」內存。 –

1

您可以使用bigphysarea在啓動時分配一些內存。 可以在Linux內核參數設置的大小,你要跟只需要追加類似:

bigphysarea=2 

其中2表示2頁(2 * 4K)

這將允許你分配一個連續的內存由您的驅動程序使用。

我不確定要理解你想要做什麼,但要注意,這種分配只能從內核模式訪問。