老大给我个东西的成熟的裸机代码,让我修改优化,好吧,那就加个RTOS吧,uC/OS收费…RT-Thread正火,那就选择RT-Thread吧。昨天搞着搞着出现了问题,


Thread_IPC_Init()函数用来创建信号量的,发现一创建信号量那些程序就卡死了不断重启(开了看门狗),因为是成熟的东西,只有研发样机,无调试接口,没法用仿真器debug。那只能一点一点试这样调试了。
最后发现原因竟然是RT_TICK_PER_SECOND的问题,默认是1000的,改成100后程序就没有崩溃了。这究竟是啥原因?难道是切换太快?

6月14好,今天继续瞎几把搞,将RT_TICK_PER_SECOND改回默认的1000,
发现给Thread_IPC_Init()函数加入临界区保护就程序就不会卡死不断重启了。原因可能是设置为1ms的时钟节拍太快了打算了信号量的创建导致程序卡死?
RT-Thread使用过程问题记录
最新推荐文章于 2026-07-12 10:30:00 发布
在尝试将RTOS引入到一个成熟的裸机代码中,遇到了使用RT-Thread时Thread_IPC_Init()函数创建信号量导致程序卡死并重启的问题。通过调整RT_TICK_PER_SECOND参数及加入临界区保护,成功解决了程序崩溃的问题。

892

被折叠的 条评论
为什么被折叠?



