目前在做一个基于CAN通讯的在线DSP升级程序,用到F28035芯片,在调用API函数进行数据擦除与写入的调试阶段遇到了问题,一直没有解决,还望TI大神以及做过相关技术工作的牛人们看到后予以解答。具体情况如下:
调用28035_API函数向FLASH扇区写入数据之前需要先进行对应扇区的擦除,在仿真器烧录后运行调试都正常,擦除和烧写实验成功,程序整体框架和函数都是参照TI官方API例程进行编写,调用API功能前运行DINT语句禁用了全局中断,可是程序脱离仿真环境复位重新加载以后,调用Flash_Erase()函数返回错误代码#21,对应STATUS_FAIL_PRECONDITION,Flash_DepRecover()函数调用也无法解决这个问题,计划擦除扇区为FLASHE(首地址为0x3EE000),可是Flash_Erase()函数中用于检测擦除状态的FLASH_ST变量FEraseStat返回的FirstFailAddr为0x3F0000,让人百思不得其解。请问这样的问题究竟如何解决?排除芯片本身的问题,可能的错误会出在哪里?