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.

[参考译文] RTOS/TM4C1294NCPDT:在复杂应用程序中注册 RTOS 层下方的 ISR (本机库 ISR)

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/656500/rtos-tm4c1294ncpdt-registering-an-isr-native-lib-isr-below-the-rtos-layers-in-a-complex-application

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

我正在尝试通过本机 TI 驱动程序调用注册看门狗 ISR。 我希望它在 RTOS 下运行。 但我似乎与 ISR 有冲突、因为 TI RTOS 也有自己的 ISR 管理方法。 因此,如果我碰巧在 TI RTOS 应用程序中注册了用于看门狗的 ISR,它基本上会在 BIOS 启动后的某个时间注册一个故障。  

请建议一种解决方法。

#ifdef __cplusplus
extern "C"{
#endif
volatile bool g_BFeedWatchdog = true;
静态空 WatchdogIntHandler ()

//
//如果被告知停止馈送看门狗,请立即返回
//而不清除中断。 这将导致系统复位
//下次触发看门狗中断。


if (!g_bFeedWatchdog)

返回;

//
//清除看门狗中断。
//
WatchdogIntClear (WATCHDOG0_BASE);
}//用于 CPP 项目中 C 链接的闭合花括号
#ifdef __cplusplus

#endif

使用命名空间应用程序;

//

C++4中的其余应用

在.cmd 文件中、我添加了.vtable 段

但它已经定义了.intvecs!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TI 通过误导性术语"零延迟中断"将其非托管中断称为"零延迟中断"。 请尝试查看相关文档。

    Robert
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据 Robert 的建议、查看此主题 e2e.ti.com/.../2347913上的最后一篇文章

    其中讨论了在 TI-RTOS 应用程序中调用 IntRegister 的问题。 相反、您需要使用 Hwi 创建中断、但如果您不希望内核对其进行管理、则将优先级设置为零。 其他 driverlib 调用(例如 WatchdogIntClear)可以使用。

    供参考。。TI-RTOS 中还有一个看门狗驱动程序、也可以为您完成所有这些操作。

    Todd