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.

[参考译文] TM4C1294NCPDT:如何在 TM4C 上的 TI-RTOS 中调用 SVCall 故障?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/891449/tm4c1294ncpdt-how-to-call-the-svcall-fault-in-ti-rtos-on-tm4c

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件:SYSBIOS

如何使用 TM4C129*上的 TI-RTOS 调用故障处理程序,特别是 SVCall?

我不认为使用 Hwi_post 是可能的、因为传递的参数必须是数据表表表表2-9中的一个中断编号。

在 Tivaware 库的引导加载程序示例中执行以下操作:  

(*(void (*)(void))(*(uint32_t *) 0x2C))();

看起来不起作用、(TI-RTOS 在启动时将矢量表复制到其他位置?)

应该更直、但对我来说仍然不明显。

感谢你的任何帮助。

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

    你好、sjf、

    这里出现了一个类似的主题、您能否查看一下它以了解您是否获得有关此主题的更多信息?  e2e.ti.com/.../3293774

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

    您好 Ralph、该帖子讨论了如何处理我已经设置的 SVCall 故障。 我正在尝试触发 TI-RTOS 内的 SVCall 故障/中断、如果不触发硬故障、我似乎无法做到这一点。

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

    您好!

    TI-RTOS 将 SVCall 向量与异常处理程序一同插入。 注意:这适用于 MSP432E4、它与 TM4C 器件基本相同。

    您为什么要插入它? 注意:TI-RTOS 根本不使用它。

    Todd

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

    我发现可以使用内联汇编来调用 SVCall 故障处理程序。 我最初以为会有一个 TI-RTOS 函数允许这样做。

    使用 IAR EWARM、可以执行以下操作:

    _asm ("Svc #0");

     执行上述行时调用的自定义 SVCallException 函数可以指定为下面的 Code Composer 屏幕截图所示。 也可以使用以下行在 TI-RTOS cfg 文件中进行设置:

    VAR ArmHwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');

    ArmHwi.svCallFunc ="&MySVCallException;
    ArmHwi.hardFaultFunc ="&MyHardFaultException";
    ArmHwi.memFaultFunc ="&MyMemFaultException;
    ArmHwi.busFaultFunc ="&MyBusFaultException;
    ArmHwi.usageFaultFunc =“MyUsageFaultException”;

    最后、我的目标是制作一个奇特的引导加载程序、现在、我将尝试在引导加载程序和应用程序之间来回切换的机制。