Part Number:TMS320F280049
F280049在线调试,如果利用CCS进行reset复位后,点击run/resume程序将停留在0x3FB02A 而无法继续运行, 而需先点击restart,程序方可正常运行。
后来在网上找到ti 工程师 Aki Li, Ricky Zhang写的帖子(链接:https://bbs.elecfans.com/jishu_1740552_1_1.html)有解决措施。
按照帖子所述,如果要实现复位后点resume直接运行,解决方法就是要正确配置仿真状态下的引导模式。以boot to flash 为例, 有以下两种思路:
1) 在EMU_BOOTPIN_CONFIG地址写入0x5AFFFFFF,同时在EMU_BOOTDEF_LOW地址对应的低8位写入0x03(BOOTDEF.BOOTDEF0=0x03)
2) 如果芯片在单机时可正常运行,例如GPIO24和GPIO32电平都为高(默认进入boot to flash),则在EMU_BOOTPIN_CONFIG地址0xD00写入0xA5FFFFFF即可。
实际测试了两种方法,都没有效果,程序仍停留在0x3FB02A 而无法继续运行, 而需先点击restart,程序方可正常运行。请TI的工程师分析验证一下该帖子内容是否正确?谢谢!
Green Deng:
你好,给的链接无法打开?报错404
,
user4678620:
试一下这个链接:http://bbs.eeworld.com.cn/thread-1069536-1-1.html
这个链接里没有图片,最好看我保存后的文档基于F28004x的C2000芯片引导过程.docx
,
Green Deng:
你好,我看了一下原帖,说实话,这类修改OTP的操作我们这边都没有实际操作过,因为修改OTP是一次性操作,一旦修改之后就没办法再做修改了。因此,你的问题也只能通过阅读资料来解答一下,没有实际操作经验
回到你的问题,有两点需要确认一下:
1、你的程序是使用的ram.cmd还是flash.cmd?
2、你的OTP有修改过吗?如上所述,如果修改过的话再次修改就无效了,也就是没办法修改了。
,
user4678620:
1、程序是使用的28004x_generic_flash_lnk.cmd
2、如帖子所述,修改的是仿真调试用的EMU-BOOTPIN-CONFIG和EMU_BOOTDEF,这个是可以重复修改的,不是一次性的Z1-OTP-BOOTPIN-CONFIG和Z1-OTP-BOOTDEF
,
Green Deng:
有没有看过memary中对应地址的数值是否确实被改过来了?
,
user4678620:
看过了,memary中对应地址的数值是更改了的