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.

[参考译文] CCS/TMS320F28375D:软复位时禁用中断

Guru**** 2419530 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/955709/ccs-tms320f28375d-interrupts-disabled-on-soft-reset

器件型号:TMS320F28375D

工具/软件:Code Composer Studio

我正在从事一个表现出一些奇怪行为的项目。  代码非常简单,基本上只需调用 Device_init(),启用一些计时器中断,调用 InitFlash(),然后在 while 循环中永久旋转。  当我通过 CCS 调试器加载该程序时、计时器 ISR 中的观察计数器会在我第一次运行该程序时进行计数。  但是、当我通过 Run> Reset>CPU_Reset 重置 CCS 调试器中的 CPU、然后通过 Run> Restart 重置时、中断 ISR 将不再被调用(计数器保持为零)。  有什么想法会导致这种行为?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    代码从何处运行? RAM 还是闪存?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它从闪存运行。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您确定代码正在运行吗? 当您停止代码时、程序计数器在哪里? 您是否检查了是否为闪存配置了引导模式?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、代码正在运行。  即使在软复位之后、前台 while 循环中也有一个按预期递增的计数器。  引导模式配置为 Get Mode、如果我对电路板进行下电上电、则中断将按预期工作(基于其中一个计时器 ISR 中存在的 LED 切换)。  

    我们已将存储器连接器命令文件与默认 TI 文件进行了相当多的更改。  这是我怀疑的一件事。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请逐步对链接器命令文件进行更改、以查看其分解位置。 恐怕我不会再帮忙了。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您提供的帮助。  我们发现了这个问题、是某些用户代码未正确初始化全局变量。