介紹
瑞薩Virtual EEPROM模塊簡稱VEE模塊,該VEE模塊模擬基本的EEPROM功能,支持讀和寫操作兩種常見的數(shù)據(jù)操作。在應(yīng)用程序的整個生命周期內(nèi),保留存儲扇區(qū)的擦除計(jì)數(shù),擦除計(jì)數(shù)可以隨時(shí)訪問。驅(qū)動函數(shù)會自動做磨損均衡處理,延長Flash的使用壽命。
主要內(nèi)容
以開發(fā)板EK-RA2E2為例,使用VEE模塊存取數(shù)據(jù):
1、創(chuàng)建新工程
2、工程創(chuàng)建完成后,通過FSP配置Virtual EEPROM
2.1 添加Virtual EEPROM Stack
選擇配置標(biāo)簽頁 Stack → New Stack → Storage → Virtual EEPROM on Flash(rm_vee_flash)
2.2 配置Virtual EEPROM Stack
在生成的Stack框圖中,點(diǎn)擊 Virtual EEPROM on Flash(rm_vee_flash),可以看到e2 studio左下角出現(xiàn)屬性欄,按照如圖所示配置。
2.3 配置g_flash0 flash(r_flash_lp)
點(diǎn)擊框圖中g(shù)_flash0 flash(r_flash_lp),并按下圖所示,設(shè)置Flash Ready Interrupt Priority。此處工程設(shè)置為Priority 1,可根據(jù)實(shí)際需要調(diào)整。
按照上面步驟配置配置完成后,點(diǎn)擊FSP就會生成工程Virtual EEPROM以及相關(guān)的初始化代碼。
3、編寫示例代碼,驗(yàn)證Virtual EEPROM功能。
在工程中打開scr/hal_entry.c文件,void hal_entry(void) 函數(shù)由main函數(shù)調(diào)用,我們自己的代碼由hal_entry調(diào)用,這樣做符合瑞薩軟件的架構(gòu),方便以后使用RTOS。
在hal_entry.c文件中添加下面的代碼
然后在hal_entry函數(shù)調(diào)用上面的rm_vee_example函數(shù)
接下來就可以編譯調(diào)試程序,當(dāng)程序正常運(yùn)行起來之后,就可以看到綠色LED燈亮起,說明存到Flash中的數(shù)據(jù)再讀取出來,經(jīng)過對比確認(rèn)數(shù)據(jù)正確。也可以在調(diào)試狀態(tài)下,將全局變量添加到觀察窗口,單步調(diào)試,觀察數(shù)據(jù)的變化。
程序運(yùn)行前
程序運(yùn)行起來之后
可以看到右側(cè)相關(guān)變量的數(shù)值已經(jīng)有改變
在后面附加了如何在調(diào)試過程中觀察全局變量數(shù)值變化。
*附:觀察全局變量的方式
選中要觀察的數(shù)據(jù)名稱,右擊,選擇添加監(jiān)看表達(dá)式
可以在調(diào)試界面看到相關(guān)表達(dá)式的值,隨著程序運(yùn)行,可以在這里觀察數(shù)值的變化。
結(jié)論
使用VEE模塊,可以方便地使用Flash存取數(shù)據(jù)。不再需要自己去考慮數(shù)據(jù)存儲的位置以及磨損均衡等問題,可以把精力專注于實(shí)現(xiàn)功能上。