搜索
bottom↓
回复: 3

请教RL78 G12单片机flash和data flash读写命令

[复制链接]

出0入30汤圆

发表于 2016-6-15 12:00:20 | 显示全部楼层 |阅读模式
请教RL78 G12单片机flash和data flash读写命令及操作详解,不用库,

出0入0汤圆

发表于 2016-6-16 15:02:15 | 显示全部楼层
之前问过FAE,只能用库,里面的指令不对外开放。

出0入30汤圆

 楼主| 发表于 2016-6-16 19:16:53 | 显示全部楼层
听说用库写data flash时,要耗用1K RAM,

出0入30汤圆

 楼主| 发表于 2016-6-16 19:18:49 | 显示全部楼层
R8C/1B 学习板--IAR下的 data flash之读写例 [复制链接]
http://www.renesas-mcu.com/read-htm-tid-788-fpage-5-page-1.html

void block_erase(  unsigned char *ers_addr)
{
    di();                         //禁止中断
    fmr0=0x01;            
    asm("");
    fmr0=0x03;
    asm("");
    fmr1=0x80;
    asm("");
    fmr1=0x82;                     //使用EW1模式
    asm("");
    *ers_addr=0x20;               //擦除命令,先写0X20,再写0XD0
    *ers_addr=0xd0;               //擦除命令
    while(!fmr00);               //等待擦除完成
    if(fmr07==1) *ers_addr=0x50; //清除状态寄存器
    fmr0=0x01;
    ei();
}
void writedata(unsigned char *ers_addr,unsigned char wdata)
{
    di();                 //禁止中断
    fmr0=0x01;
    asm("");
    fmr0=0x03;
    asm("");
    fmr1=0x80;
    asm("");
    fmr1=0x82;
    asm("");
    *ers_addr=0x40;              //命令 选写0X40  再写数据
    *ers_addr=wdata;             //数据
    while(!fmr00);               //等待擦除完成
    if(fmr07==1) *ers_addr=0x50; //清除状态寄存器
    fmr0=0x01;
    ei();
}
调用:
block_erase((void *)0x2400);
block_erase((void *)0x2800);
writedata((void *)Ftpd,Ubuf[Dtmp2]);

Ftpd--是一个变量,Ubuf[Dtmp2]  是一个变量数组。

FLASH写,只能把1变成0,不能把0变1,  读就是直接读绝对地寻址!

RL78能否与以上R8C通用?
RL78=78K内核+R8C的外设,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 18:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表