ycheng2004 发表于 2016-6-15 12:00:20

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

请教RL78 G12单片机flash和data flash读写命令及操作详解,不用库,

snhsr 发表于 2016-6-16 15:02:15

之前问过FAE,只能用库,里面的指令不对外开放。

ycheng2004 发表于 2016-6-16 19:16:53

听说用库写data flash时,要耗用1K RAM,

ycheng2004 发表于 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);

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

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

RL78能否与以上R8C通用?
RL78=78K内核+R8C的外设,
页: [1]
查看完整版本: 请教RL78 G12单片机flash和data flash读写命令