我在Silicon Labs的EFM tiny-gecko硬件上工作,使用4.22 arm工具链运行RTX。我有以下RTX配置:- NVIC grouping 7.1 -系统Tick & Pend系统服务中断优先级224。-两个中断都是启用的,并且永远不会被我的代码流禁用。- PRIMASK和BASEPRI寄存器均为0。
我的项目中的RTX代码已经有几年的历史了,我不确定它是哪个版本。
我观察到以下问题:当使用isr_evt_set从实时时钟中断触发任务时,任务执行被延迟。我发现当RTC中断结束时,"Pend System service“中断没有被调用。
当从实时时钟中断调用时,isr_evt_set将“挂起系统服务”置于挂起状态。RTC中断结束后,"Pend system service“中断不会激活。相反,处理器恢复线程模式并执行低优先级(电源管理)任务。
我在RTC中断中将SCB寄存器SLEEPONEXIT位设置为0。在大约4-10个RTC周期之后,“挂起系统服务”中断最终被执行。
我希望"Pend system service“中断在RTC中断之后运行。你能解释一下为什么在RTC中断后皮质会回到线程模式吗?
发布于 2018-04-30 14:57:37
https://stackoverflow.com/questions/50057302
复制相似问题