请教RL78 G12单片机flash和data flash读写命令
请教RL78 G12单片机flash和data flash读写命令及操作详解,不用库, 之前问过FAE,只能用库,里面的指令不对外开放。 听说用库写data flash时,要耗用1K RAM, 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]