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.

[参考译文] TMS570LC4357:无法在引导代码中执行中断

Guru**** 2455360 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1202534/tms570lc4357-unable-to-execute-interrupts-in-boot-code

器件型号:TMS570LC4357

我一直在尝试使用为 Hercules 微控制器提供的引导加载程序 git.ti.com/.../Bootloaders 来实现引导加载程序。我使用的是 TMS570LC4357微控制器。 我可以使用给定的引导加载程序成功引导加载并运行应用程序代码、现在、当我尝试在引导代码中实现延迟后再跳转到应用程序代码时、RTI 计时器中断无法正常工作。 我已经观察到、当我调用"_enable_IRQ_interrupt_()"函数时、计数器本身不工作。 如果我不调用它、计数器启动并运行、但它不会触发中断。 我还观察到、当我 按照控制器技术参考手册修改"_ENABLE_IRQ_INTERRUPT_()"函数时、如所示

"IRQENABLE .equ 0x80

FIQENABLE .equ 0x40

ENABLE_IRQ

R1夫人、CPSR

BIC R1、R1、#IRQENABLE

MSR CPSR、R1

MOV PC、LR"

导致计数器运行的特定语句为"BIC r1、r1、 #IRQENABLE "

当我在#IRQENABLE 地址输入另一个值而不是#80时、计数器正常运行、当我将地址放在#40以外的地址时、FIQ 也发生了类似的情况。 请帮助我正确处理中断。 我将尝试生成一个 SCI 中断、并向您更新结果。 如果我的操作有任何错误、请帮助我。

我还观察到、当我进行您在 Hercules 微控制器的 CAN 引导加载程序应用报告中的异常矢量表中提到的更改时、我观察到计数器正常运行、但没有触发中断。 我想我无法弄清楚如何使用启动代码和应用程序代码的中断矢量表。  

谢谢你

此致、

T. Sharath Chandra