您好,我使用的是CH582_BLE_MESH工程,需要用到DataFlash存儲(chǔ)一些數(shù)據(jù),但是每次開機(jī)數(shù)據(jù)就被清零了,估計(jì)是該存儲(chǔ)地址被占用,試了好幾個(gè)地址都是同樣的現(xiàn)象,想請(qǐng)問一下還有那塊DataFlash地址是空閑區(qū)域?謝謝
關(guān)于DataFlash這一塊,官網(wǎng)的文檔一直沒有詳細(xì)介紹一下,希望沁恒把這一塊的資料補(bǔ)全。
您好,最新EVT中,默認(rèn)使用了前12K的dataflash??梢栽赼pp_mesh_config.h中修改宏,最小扇區(qū)數(shù)為2,最小扇區(qū)存儲(chǔ)也可以改小,小到初始化不報(bào)錯(cuò)即可。另外如果mesh代碼中使用了BLE,用到了BLE的配對(duì)綁定功能,配對(duì)綁定數(shù)據(jù)保存在dataflash的尾部,見config.h中的相關(guān)宏。
@夏季的雪您好,最新EVT中提供有FLASH例程,您可以參考例程編寫代碼。手冊(cè)中也有flash相關(guān)參數(shù)如下圖。
如果您需要其他方面的參考,或者您有其他寶貴建議,都可以提出。
dataflash使用首地址是從0x00開始還是0x70000開始,從0x00開始能正常存儲(chǔ)數(shù)據(jù)但會(huì)破壞程序正常運(yùn)行,從0x70000開始都不能正常存儲(chǔ)數(shù)據(jù)重啟數(shù)據(jù)就清零,12K以后都有試了
您好,調(diào)用庫(kù)函數(shù)EEPROM_READ/ERASE/WRITE時(shí)只需要偏移地址,不用從0x70000開始。
您是下載代碼時(shí)點(diǎn)了“清空dataflash”嗎,“重啟”是指調(diào)用節(jié)點(diǎn)reset之后嗎。
借地問一下,582的DataFlash是否需要注意壽命問題?
您好,使用壽命需要結(jié)合代碼的擦寫頻次考慮,手冊(cè)中有擦寫次數(shù)典型值。如果說保存比較頻繁,在應(yīng)用層代碼中可以使用多扇區(qū)管理的方式,交替使用n塊flash來延長(zhǎng)壽命。