C8051F350 flash擦除的问题求助

2019-03-24 18:06发布

下面是我用的flash擦除程序,用软件仿真的时候可以擦除掉给定地址的扇区,但在线调试的时候发现程序一运行到*pwrite = 1;  语句时就会自动复位,没有实现擦除,不知道是怎么回事,求大神们帮忙啊!
void ClrFlash(uint addr)
{
          char xdata * data pwrite;
          EA = 0;                             //Disable interrupts
     //change clock speed to slow, then restore later
          VDM0CN = 0x80;                     // Enable VDD monitor
          RSTSRC = 0x02;                     // enable VDD monitor as a reset source
          pwrite = (char xdata *)addr;               
          FLKEY  = 0xA5;                      // Key Sequence 1
          FLKEY  = 0xF1;                      // Key Sequence 2
          PSCTL  = 0x03;                      // PSWE = 1; PSEE = 1
          VDM0CN = 0x80;                     // Enable VDD monitor
          RSTSRC = 0x02;                     // Enable VDD monitor as a reset source
          *pwrite = 1;                       // Initiate page erase
          PSCTL &= ~0x03;                    // PSWE = 0; PSEE = 0
          EA = 1;                       //Restore interrupts
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
zx2240
1楼-- · 2019-03-26 01:45
zca123 发表于 2015-2-6 11:21
这段程序是我的程序里使用的。没有出现问题
呃呃呃,好的,我再试试,非常感谢!



chunyang
2楼-- · 2019-03-26 02:50
 精彩回答 2  元偷偷看……
zx2240
3楼-- · 2019-03-26 03:55
chunyang 发表于 2015-2-6 12:29
注意看门狗,对Flash进行操作的时间较长,要注意看门狗的溢出周期。


主函数里把看门狗已经禁止了还会这样子么....谢谢!


chunyang
4楼-- · 2019-03-26 09:54
zx2240 发表于 2015-2-6 12:52
主函数里把看门狗已经禁止了还会这样子么....谢谢!



务必确认。另外注意对Flash操作的指令和地址要正确。
zx2240
5楼-- · 2019-03-26 11:07
 精彩回答 2  元偷偷看……
zx2240
6楼-- · 2019-03-26 14:23

一周热门 更多>