This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
我在尝试 EMU RAM 引导时遇到问题。
1.编译工程,将程序加载到 RAM 中,按下 CCS 中的调试按钮,调试从 main()启动的应用程序,运行良好。
2.如果我选择 EMU 引导过程引导至 RAM (通过 CCS 中的"Scripts"更改 EMU_BMODE 和 EMU_KEY)、然后在 CCS 中按"reset"和"run"(使器件通过仿真引导流程)、则应用程序卡在 ITRAP0中断中。
3.分步重复过程#2以找出原因。 问题是、在"复位"和"运行"之后、在应用程序进入 code_start 分支之前、应该被"subACC 、#1"指令占用的地址0x122现在为 ITRAP0。 此指令是 TI 提供的 RAM 延迟函数的第一条指令("F2837xD_usDelay.asm")。 这意味着在器件完成仿真启动流程后、0x122中的指令被擦除。
4.修改 cmd 文件以使保留的引导栈从0x2 - 0x121 (其长度为0x120)变为0x2 - 0x122 (其长度为0x121)、问题得到解决。 现在、该指令位于0x123中、在引导流程中未被擦除。
这是否意味着当选择引导至 RAM 时、为引导保留的空间应该为0x2 - 0x122、而不是技术参考手册.pdf 中建议的0x2 - 0x121?
我知道、RAMM0的一部分被引导流程用作堆栈。 但根据手册、保留的空间为0x2 - 0x121 (其长度为0x120)。 被擦除的指令位于地址0x122处、该指令驻留时应该是安全的。 以下是"重置"和"运行"之前和之后的图片。 你们可以确认我是对的吗?
在"复位"和"运行"之前:
在 "reset"和"run"之后:
此致、
John
您好!
是的、表的结束地址和长度不正确。 感谢您的注意。
我已在 TRM 和链接器命令文件中提出修复的 TT。
此致
Baskaran
Baskaran、您好!
感谢你的帮助。
此致、
John