首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >中断内部的tx_semaphore

中断内部的tx_semaphore
EN

Stack Overflow用户
提问于 2022-05-11 11:43:03
回答 2查看 181关注 0票数 0

我想定期读出RS232数据。为此,我制造了一个中断。但是,我的RS232函数需要信号量。我发现不能在中断中执行TX(线程X)函数。要使我的TX功能在中断中工作,我必须做些什么?

EN

回答 2

Stack Overflow用户

发布于 2022-05-11 12:37:12

如果您的RTOS提供了一种方法来实现它,那么就使用它。如果没有,那么还有其他一些选择:

在变量访问过程中禁用来自后台程序的特定中断。如果在您的MCU上中断不可中断,则可以实现此处描述的“可怜人的互斥”:https://electronics.stackexchange.com/questions/409545/using-volatile-in-embedded-c-development/409570#409570

  • Use内联汇编程序,并确保在一条指令中完成读/写。

还有一个非常糟糕的主意/最后的办法,那就是切换全局中断掩码。

票数 0
EN

Stack Overflow用户

发布于 2022-05-11 16:00:37

首先,确保在ISR开始和结束时分别调用_tx_thread_context_save和_tx_thread_context_restore。有关更多信息,请参见这里:https://learn.microsoft.com/en-us/azure/rtos/threadx/chapter3#isr-template第二,您不能在中断中创建信号量,所以请确保在其他地方创建它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72200459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档