中科藍訊SDK開發 內置FLASH讀法方法
首先了解一下中科藍訊的芯片框架結構:
芯片內部一般會封裝一顆 512K 或 1M SpiFlash,用于存放代碼及資源文件/參數記憶等。SpiFlash 和芯片之間通過 spi 接口進行通信。
首先,代碼不會直接在 SpiFlash 上運行,SpiFlash 中所有程序及數據均需要先通過 spi 接口加載到芯片 RAM 中,CPU 再從 RAM 中取指令或數據運行。
以上就是中科藍訊平臺 FLASH 相關內容的介紹。下面我們探討一下內部Flash讀寫方法,難免會有失誤,歡迎大家一起留言探討,謝謝大家!
確認寫入地址
調API讀寫FLASH
API:
寫 flash cache:
cm_write8(u32 addr, u8 val); //注意:write 只是寫入 cache;
addr 是待寫入的地址值,val 是需要寫入的值;
cm_sync(); //將 write 寫入 cache 的內容同步到 spiflash 中;
注意此接口函數在寫入操作后進行調用是必須的,否則寫入操作不會生效。
讀 flash cache:
cm_read8(u32 addr);
addr 是準備讀取的地址值,函數返回值是我們讀取到的結果值。
寫參數接口函數
void bsp_param_write(u8 *buf, u32 addr, uint len);
讀參數接口函數
void bsp_param_read(u8 *buf, u32 addr, uint len);
#if FLASH_RW_TEST_EN u8 readPram[16]; bsp_param_write("Prama test\n", PARAM_USER_DATA, 16); bsp_param_read(readPram, PARAM_USER_DATA,16); printf("%s", readPram); #endif // FLASH_RW_TEST_EN
編譯燒錄、調試

開啟開發功能,燒錄后,會打印日志