我用的芯片是28035。我先要需要通过uart通讯,将地址写入flash存储,然后在读出来。我利用controlsuite里面的Flash API的例程序(Example_Flash2803x_API),对28035的Flash进行擦除与写入.
我将例子中的代码放到我的APP里面一起整合,代码变化不大。然后进行调试。
一、开始时,我在程序里没有加中断,可以顺利的进行擦除与写入,但是当我加入一个定时器中断后,flash的Status = Flash_Erase(SECTORC,&FlashStatus)的命令就擦除不过去了,请问这是为什么,难道中断会影响flash区的擦除吗?
二、后来我就在擦除时把所有的中断关了,擦完在开中断。这样可以擦除flash区了。然后我就拿仿真器XDS100V3进行仿真操作,我通过uar发送t写入命令,执行命令时先执行擦除命令,在存入需要写的地址。这样可以更改地址了。但是当我不在线仿真了,直接上电后,我在发送写入命令,此时,就擦不了了,一直停在擦除命令过不去。(由于我是关了中断,定时器就停了,所以我知道他执行到擦除指令了)。然后我又插上仿真器运行,依然可以擦除和写入。但是我不用仿真器后就还是擦不了,就一直停着过不去。请问这是为什么啊?该怎么解决?
请帮我分析下可能的原因,谢谢!