|
MPS430,写入flash的数据运行一段时间后就发生了变化,大神帮忙看看什么原因啊?
串口写如数据段如下://串口只设置一次
Flash_ptr = (char *)0x1040; // Initialize Flash pointer
FCTL3 = FWKEY; // Clear Lock bit
FCTL1 = FWKEY + ERASE; // Set Erase bit
*Flash_ptr = 0; // Dummy write to erase Flash seg
FCTL1 = FWKEY + WRT; // Set WRT bit for write operation
*Flash_ptr++ = RX_BUF[6]; // Write value to flash
*Flash_ptr++ = RX_BUF[7]; // Write value to flash
FCTL1 = FWKEY; // Clear WRT bit
FCTL3 = FWKEY + LOCK; // Set LOCK bit
TX_BUF[0]=0xBB; TX_BUF[1]=0X0A;//command
TX_BUF[2]=Zi_ID[0]; TX_BUF[3]=Zi_ID[1];//???
TX_BUF[4]=RX_BUF[1]; TX_BUF[5]=RX_BUF[2];//????
TX_BUF[6]=1; //len
TX_BUF[7]=0xff;
Flash_ptr = (char *)0x1040; // Initialize Flash pointer
ZADDRS1 = *Flash_ptr++;
ZADDRS2 = *Flash_ptr++;
//回复
片子上电时读flash:
char *Flash_ptr; // Flash pointer
//////////////////////////////////////////////
Flash_ptr = (char *)0x1040; // Initialize Flash pointer
Zi_ID[0] = *Flash_ptr++;
Zi_ID[1] = *Flash_ptr++;
其他再没有什么地方操作flash了。
运行一段时间之后有的设备的地址就变了,大神帮忙看看是这两点程序的问题吗? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|