快閃記憶體 - Read Write Stream

材料準備

範例說明

快閃記憶體 API 使用 3 * 4K 位元組 (12Kb) 的內存,通常足以滿足大多數應用程式的需要。然而,可以透過指定特定的記憶體位址和所需的大小來提供更大的記憶體。
在本範例中,指定快閃記憶體的起始位址為0xFD000(“FLASH_MEMORY_APP_BASE”),大小為0x1000(“TEST_SIZE”由使用者設定)。讀取從位址到“TEST_SIZE”即0xFD000到0xFE000的所有值,然後將所有值儲存到“buf”中並加1。最後將所有新值寫回相同的位址。每次 Ameba 重新啟動時,讀取值都會增加,直到“RESET_THRESHOLD”(最高 0xFFFFFFFF),然後重設為 0。但是,如果在超過 2 個閾值時間段後繼續失敗,則會導致 100% 失敗。
在“File”->“Examples”->“AmebaFlashMemory”->“ReadWriteStream”中開啟範例程式碼。編譯並上傳到Ameba,然後多次按重置按鈕。開啟Serial Monitor查看結果。

1

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

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