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.

[参考译文] TMS570LS1224:使用免费 RTOS 和引导加载程序时、中断无法正常工作。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1391863/tms570ls1224-interrupt-is-not-working-when-working-with-free-rtos-and-bootloader

器件型号:TMS570LS1224

工具与软件:

大家好!

我们正在不带 RTOS 的应用程序和引导加载程序中使用适用于 Free RTOS 的 TMS570LS1224 Board。

我们能够使用引导加载程序跳转到应用程序并能够运行应用程序、但问题是在引导加载程序的 intvect.asm 文件中更改后、应用程序中不会发生中断调用。

找到以下相同的代码片段。

intvect.asm 文件来完成该函数  

本例中、我们的应用位于0x20000闪存位置、同时根据我们在 TI 论坛中引用的主题也是  

TMS570LS3137:引导加载程序 FreeRTOS 程序-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

因此、使用它能够跳转到应用、但使用它调用的中断不存在。

请检查是否遗漏了某些内容。

提前感谢

Shriram

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

    尊敬的 Shriram:

    您所做的更改是否准确、请分享修改前和修改后的文件。

    我想告诉大家一点、实际上我们不应该在 intvects.asm 文件中添加新的分支指令。

    原因如下:

    如此处所述、如果接收到 IRQ 中断、CPU 将执行0x18地址的指令、对于 FIQ 中断、CPU 将执行0x1C 指令。

    因此、它将从此处减去0x1B0至 PC 值、然后跳转至 IRQ 矢量寄存器和 FIQ 矢量寄存器。  

    这些寄存器包括要执行的 IRQ 处理程序的地址、因此 CPU 将根据中断从这些中断进入 IRQ 或 FIQ 处理程序。

    这意味着我们不应在 intvecs.asm 文件中添加新分支、因为这些分支会导致错误的偏移并导致指向错误的寄存器。 请小心您正在进行的修改、它应该不会影响偏移。

    ——
    谢谢、此致、
    Jagadish。

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

    你好 jagadish、

    感谢您的快速响应  

    在对 bootloader intvect.asm 文件进行更改之前、请找到以下代码片段

    如果我们刷写引导加载程序和基于 RTOS 的应用程序、请使用此文件  

    然后、它将停留在应用程序中的0x8地址、它在此处创建任务  

    但是、如果我们将该地址更改为我之前共享的较早代码段、那么它会很好、但不会生成中断

    请为基于 RTOS 的应用程序找到以下 intvect.asm 表。

    如果没有 Free RTOS、它可以正常工作而不会出现任何问题。

    谢谢

    Shriram

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

    尊敬的 Shriram:

    顺便说一下、哪个中断不起作用?

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

    尊敬的 Jagadish:

    在应用程序中、我们将中断用于计时器比较、并使用 CAN Rx 中断、

    任何中断都无法正常工作。

    此致、

    Shriram

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

    您好、Shriram

    我认为引导加载程序链接器 cmd 中的这些修改不会停止中断。

    因为、即使在这些药品之后、IRQ 和 FIQ 地址也处于相同的偏移量0x18和0x1C。

    那么、您是否有可能共享无法正常工作的引导加载程序或应用程序代码? 如果不可能、我们至少会安排一些会议来解决此问题。

    我的时间为上午10点至晚上8点 IST、您可以根据您的空房情况在周一安排一次会议。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    您今天有空吗? 我们可以对团队进行简短的讨论吗? 它将会很有帮助。

    谢谢、此致、

    Shriram

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

    尊敬的 Shriram:

    是的、我今天有空。

    让我们在今天晚上安排一个会议。

    ——

    谢谢、此致、
    Jagadish。