读写的功能失效
/*---------------------------------------------------------*read/write flash
* Parameters: cmd:the command
* can be: FLASH_READ
* FLASH_WRITE
* FLASH_ERASE
* pDat: the input and output register address, target type is 'protect_reg'
*
* e.g. protect_reg dat;
* dat.addr = 0x1800; //IAP addr
* dat.dat= 0x55; //IAP dat
* OperateFlash(FLASH_WRITE, &dat);//0x55----write to--->0x1800
* Return Value: none
*/
void OperateFlash(const lock_reg_cmd cmd, protect_reg *pDat)
{
BOOL tmp = EA;
EA= 0;
switch(cmd)
{
//======================= READ FLASH =======================
case FLASH_READ:
case FLASH_WRITE:
case FLASH_ERASE:
IFADRH = pDat->addr>>8;
IFADRL = pDat->addr&0xff;
IFD = pDat->dat;
IFMT = cmd;
if(UNLOCK_NUMBER == unlockRegVar) //safety
{
ISPCR |= 0x80; //enable ISP
SCMD = 0x46;
if(UNLOCK_NUMBER == unlockRegVar) //safety
{
SCMD = 0xb9; //start to operate
}
}
pDat->dat = IFD;
break;
default:
break;
}
LOCKREG();
ISPCR = 0x00;
IFD = 0xff; //for safety
EA = tmp;
} 什么来由
路必康给的IFD 读写重复了... 我改过之后 还是不行 他们的资料 也太少了... 只介绍了这几个ISP寄存器
MA803的原厂出厂IAP设置为3400~37FFh的1KB空间
LZ的例程好象是MA801的,
修改 dat.addr = 0x3400; //IAP addr
再测试看看 不对。。。
可能是有使用Writer修改过出厂设置了。
是的 你说对了 我后面设置 成13K就可以了 IAP空间 默认的13K
什么的读写功能,看不懂。。。
哦,那我就知道怎么回事了,多谢大家
返回失败代码了吗 指定读写的地址了吗
有返回的编码吗
是否可以直接找技术支持呢
没能成功解除读写保护是吗
是不是被他们加密了啊
页:
[1]