请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C123GH6PM 工具/软件:TI-RTOS
您好!
我正在使用 SysCallback 实现方案、在我的实现方案中使用 System_printf。 此外、我使用的调试实现具有 fprintf 功能、该功能将输出引导至映射到 UART 接口的 stderr:
freopen ("UART:0"、"w"、stderr);
setvbuf (stderr、NULL、_IOLBF、128);
如果我在单个线程中使用调试机制、它将按预期工作。 但是、在另一个 UART 回调中使用会导致断言:
$ ti.sysbios.gates.gateMutex:第99行:断言失败:a_badContext:调用上下文错误。 有关详细信息、请参阅 GateMutex API 文档。 xdc.runtime.Error.raise:终止执行
文档将讨论以下内容:
原因:当 xdc.runtime.SysStd 是您的 System.SupportProxy 时,从 Swi 或 Hwi 调用 System_printf()或 printf()。
据我所知、UART 回调既不是 HWI 也不是 SWI。 此外、使用 SysMin 也是不可替代的。 我出了什么问题?

