请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:RM46L852 主题中讨论的其他器件:HALCOGEN
您好!
我正在处理一个实时控制项目、在该项目中、我们将使用一个运行 RTI 计时器的简单任务调度程序。 定时器生成1ms 的节拍、其 ISR 递增计数器、用于使用系统软件中断触发10ms、100ms 和1s 任务。 该产品最终将用于安全关键型应用、因此我们将尝试简化操作并避免使用我们必须认证的 RTOS。
在我最近添加了在100ms 任务中运行的应用软件之前、该调度程序似乎正常工作。 这导致微控制器在从 SSI ISR 中调用的应用程序主函数返回后不久崩溃。 经过一些调查后、IRQ 堆栈似乎溢出并在其下方绑定其他堆栈。 我已经在 HALCoGen 中调整了堆栈长度、但它不会再次运行。 但是、我最终得到的 IRQ 堆栈必须与用户堆栈(0x800)一样大。
本论坛的专家认为、这是可接受的配置、还是有更好的方法来实施实时任务 ISR? 最后、我们希望速率更高的任务能够中断速率更低的任务。 这可能对我们当前的安排很困难吗?
提前感谢