28335在线更新程序的问题

2019-07-29 15:15发布

Erase operation failed because the pre-
compaction portion failed. The pre-compaction is
applied to all sectors on the device. The
FLASH_ST structure will return a fail address
corresponding to the first sector fails this step.


奇怪的是我用jtag仿真器将flash_api  code下载到dsp中单步调试,用串口调试工具发送握手报文和擦除指令时,flash_api  code正确调用了擦除函数,且返回值也是正确的0,一旦全速运行,用sdflash软件启动烧录过程,则返回值就成了24,报erase fail

请问这个错误是什么原因?应该如何解决?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
u880
1楼-- · 2019-07-29 15:18
我的烧录方法是:
将ti官方提供的flash_api code工程依据自己的需求做合适的修改,编译并转换成16进制的机器码。
然后再应用程序cmd文件中定义相关的flash段,将16进制的机器码以一个数组的形式存放到分配的段里。
上位机是sdflash,sdflash向dsp发送烧录命令时,应用程序将16进制的机器码从flash段复制到ram中,然后跳转到flash_api code工程的c _init00地址处开始运行。
flash_api code会与上位机握手并传输数据,同时根据上位机的命令执行擦除、编程、校验操作。

目前我的问题是:烧录开始以后  dsp跳转到flash_api code中运行,   但执行擦除操作时,返回值是24(0x18),根据手册 返回值24表示
STATUS_FAIL_PRECOMPACT
lijiabaobei
2楼-- · 2019-07-29 19:13
帮楼主顶啦

一周热门 更多>