前 言
在許多實際項目中是需要在MCU掉電前保存一些數據,以供MCU在下一次上電后能讀取。而瑞薩的MCU RL78G13能通過瑞薩免費提供的數據閃存編程庫(FDL)來簡單快捷地實現內部Data Flash的讀寫操作。
本文是基于CS+(for CC) 開發(fā)環(huán)境,MCU是R5F100LE,FDL庫文件是在瑞薩官網下載的FDL_RL78_Type04_Installer_V200-doc-e.zip。
首先我們先解壓安裝好FDL庫
選擇CC-RL版本
安裝好后在文件夾里有以下4個文件,之后需要添加到工程里面。
之后新建一個工程,并添加剛才4個文件到工程中,由于FDL庫的運行需要用到MCU的內部時鐘,所以選擇默認的內部時鐘(fIH),頻率32M。
選擇使用Data Flash,并點擊生成代碼(Generate Code)
這樣我們就已經生成了基于FDL庫的代碼,現在直接調用代碼中的函數就能實現讀寫Data Flash。
我們現在來測試一下,本次測試的預想結果是在MCU的dataflash起始地址F1000H寫入5個數據,然后再從中讀取存放到目標數組中。
首先我們在r_main.c文件中定義兩個數組,tx_buf1為寫入數據的數組,rx_buf1為讀取數據的數組。然后在main函數中調用r_cg_pfdl.c中的一些函數,如下圖所示代碼:
在讀寫Data Flash時,首先調用R_FDL_Open函數來實現啟動FDL庫,之后我們擦除目標地址的數據,該MCUu是4k的Data Flash,而FDL庫每次操作擦除的地址是1k,所以把4k的地址分為4個塊,而目標地址F1000H處于塊0,即調用R_FDL_Erase(0);然后在F1000H的地址開始寫入數組tx_buf1的5個數據,調用R_FDL_Wirte(0x0000, tx_buf1[0],5);0x0000為F1000H的相對地址,此說明在該FDL庫的用戶手冊有寫到,如下圖:
從F1000H開始讀取之前寫入的5個數據存入數組rx_buf1中,即調用了函數R_FDL_Read(0x0000, rx_buf1[0],5)。最后完成擦除寫入讀取操作,關閉庫操作,即調用R_FDL_Close()函數。
代碼完成后我們仿真驗證一下,通過Memory1看到,寫入數據成功,如下圖
而通過查看watch1中rx_buf[1]數組的值可以看到,讀取數據成功,如下圖
總結
以上就是基于瑞薩提供的FDL庫來實現RL78G13 Data Flash的讀寫操作,真的是十分的簡單快捷,用戶無需過多的查看手冊都可以十分迅速地掌握。通過瑞薩的開發(fā)環(huán)境CS+(for CC),可以實現瑞薩RL78系列MCU的外設的選擇、配置、代碼生成,大大減少了開發(fā)人員對于MCU底層的配置,從而縮短了整個項目的開發(fā)周期,這也是瑞薩RL78系列MCU深受廣大嵌入式開發(fā)人員的好評之一。
來源:瑞薩MCU小百科
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理
審核編輯 黃宇
-
FlaSh
+關注
關注
10文章
1635瀏覽量
148033 -
RL78
+關注
關注
2文章
119瀏覽量
21657 -
RL78G13
+關注
關注
0文章
9瀏覽量
8823
發(fā)布評論請先 登錄
相關推薦
評論