在代码中执行F28M35 M3核的Flash全片擦除(一段一段执行)操作时,发现连仿真器擦除成功,不连仿真器时,对有代码的区域擦除失败,无代码的区域擦除成功,是有什么保护机制没关么?
Green Deng:
你好,请问你是如何判断五代码的区域擦除成功的呢?
你的代码有加密部分吗?
,
anvaya:
没有加密,每擦除一段做一个空白检查,不过你提醒了我,不一定是擦除成功了,因为无代码区域本来就能通过空白检查的
,
Green Deng:
是的,因为从芯片角度上讲,擦除有代码和无代码区域的工作是一样的。
,
anvaya:
那继续这个问题,有没有仿真器可以擦除,脱离仿真器后无法擦除的情况呢?
,
Green Deng:
有可能是flash API函数没有运行。你的API函数有复制到ram中运行吗?FLASH API必须复制到ram中运行才有效。
,
anvaya:
复制了的
,
Green Deng:
你好,目前项目有什么进展或者新发现吗?
,
anvaya:
还没有,我想知道jtag口有没有特殊权限
,
Minister:
如果你的程序是在flash跑的话擦除掉数据不就跑飞了么。对于“FLASH API必须复制到ram中运行才有效”,除了这一步,你的.text段(main函数)等,应该在运行main函数之前一同拷贝到ram中运行(采用TI提供的***copysection.asm)。
,
Green Deng:
JTAG本身没有什么特殊权限。
看一下这个FAE分析的内容,是否会有所帮助。
,
anvaya:
但是怎么解释连仿真器可以成功执行擦除操作呢?我在仿真的时候用的也是flash的CMD文件