前 言
在许多实际项目中是需要在mcu掉电前保存一些数据,以供mcu在下一次上电后能读取。而瑞萨的mcu rl78g13能通过瑞萨免费提供的数据闪存编程库(fdl)来简单快捷地实现内部data flash的读写操作。
本文是基于cs+(for cc) 开发环境,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的读写操作,真的是十分的简单快捷,用户无需过多的查看手册都可以十分迅速地掌握。通过瑞萨的开发环境cs+(for cc),可以实现瑞萨rl78系列mcu的外设的选择、配置、代码生成,大大减少了开发人员对于mcu底层的配置,从而缩短了整个项目的开发周期,这也是瑞萨rl78系列mcu深受广大嵌入式开发人员的好评之一。
来源:瑞萨mcu小百科
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理
四种远程调用的区别和联系
SiC MOSFET:桥式结构中栅极-源极间电压的动作-低边开关关断时的栅极-源极间电压的动作
中国深圳先进院在高分辨率超声成像领域取得重要进展
VCSEL:3D感测领衔 汽车电子行业未来可期
OpenCV配置CUDA以支持GPU加速
基于RL78-FDL库实现RL78G13 Data Flash的读写操作
韩国5G用户数量已达到998万
哪一些因素会影响无人机航测的精度
未来我们的隐私问题会有哪些
如何从干式变压器的声音判断故障
国企智慧党建,如何借OA强基层、保廉洁、促活力
桥梁监控解决方案
10K和10A型中频变压器及线圈
建筑工地将安装在线扬尘监测系统的优势
如何测量高压或负电源轨上的电流及测量电流的精度考虑因素
无限数据流量并不是WiFi的唯一威胁 还面临其他一些新兴技术的挑战
u-boot armv8链接脚本
图灵奖正式公布 计算机技术与电影“联姻”
华为p50折叠手机支持无线充电吗
基于GPRS和PLC的远程路灯监控系统设计策略