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

評論