亲爱的香榭丽舍大街
我是为我们的客户提出这个问题的。
用户发现 F28335会意外复位,这似乎是由闪存 API Flash_Erase ()软件复位引起的,因此用户需要澄清 并确认根本原因。
用户有两个项目(映像)、一个是引导加载程序、另一个是应用程序。
引导加载程序.cmd 定义扇区 ABCDEFGH、而应用程序只定义扇区 ABCDH。
在应用中、当它收到固件更新命令时、它会通过以下方式跳转到引导加载程序:
asm (" MOVL XAR7、#0x338000");
ASM (" LB *XAR7");
然后、在引导加载程序中、它会调用
Flash_Erase (sectorb|SECTORC|SECTORE|SECTORF|SECTORG|SECTORH,$FlashStatus);
然后、F28335因512个 OSCCLK 的 nXRS 被拉至低电平而意外复位、这表明这是由 WDCR[WDCHK]或类似器件引起的。
请注意、看门狗已在所有测试开始时被禁用。
如果 只 对定义扇区 ABCDEFGH 的.cmd 的引导加载程序映像进行编程并在没有应用程序映像的情况下运行、那么它在没有复位的情况下运行良好。
如果 .cmd 定义的引导加载程序映像与应用程序.cmd ABCDH 相同,并避免擦除 Flash_Erase ()中的 EFG 扇区,那么它也可以在没有复位的情况下正常运行。
Question:
1. 如果有错误,API Flash_Erase ()是否会使用 WDCR 触发软件复位?
2.为什么引导加载程序和应用程序中闪存扇区的不同.cmd 定义会导致此类复位?
3、您有什么意见可以解释上述问题吗?
