快閃記憶體 - Read Write Word

材料準備

範例說明

快閃記憶體 API 使用 3 * 4K 位元組 (12Kb) 的內存,通常足以滿足大多數應用程式的需要。然而,可以透過指定特定的記憶體位址和所需的大小來提供更大的記憶體。
在本範例中,指定快閃記憶體的起始位址為0xFD000(“FLASH_MEMORY_APP_BASE”),大小為0x1000。使用偏移0x1F00,即快閃記憶體中的0xFD000 + 0x1E00 = 0xFEE00。 讀取位址的值,然後加1。接下來,將新值寫入相同位址。最後一步,再次從位址讀取值並與增加的值進行比較。如果值相同則證明讀寫一個字成功。每次 Ameba 重新啟動時,讀取值都會增加,直到“RESET_THRESHOLD”(最高 0xFFFFFFFF),然後重設為 0。
在“File”->“Examples”->“AmebaFlashMemory”->“ReadWriteWord”中開啟範例程式碼。編譯並上傳到Ameba,然後多次按重置按鈕。開啟Serial Monitor查看結果。

1

預設情況下,Flash Memory API 使用位址 0xFD000~0xFFFFF 來儲存資料。寫入快閃記憶體時存在限制。
就是不允許直接將資料寫入到上次寫入時所使用的相同位址,除非先清除該磁區。快閃記憶體 API 有 1 個與清除相關的函數。
• 使用“FlashMemory.eraseSector(sector_offset)”清除快閃記憶體目標位址的一個磁區(4K 位元組)。
• 使用“FlashMemory.eraseWord(offset)”清除快閃記憶體目標位址的一個字(4 個位元組)。

請先確認已安裝QQ通訊軟體