|
发表于 2015-9-29 16:31:22
|
显示全部楼层
本帖最后由 security 于 2015-9-29 16:37 编辑
1、过于频繁的线程切换,同样会加大系统的负担,不推荐。
2、LWIP的移植,默认的tick精度等级只到毫秒,你可以去看看- u32_t sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout)
- {
- rt_err_t ret;
- s32_t t;
- u32_t tick;
- RT_DEBUG_NOT_IN_INTERRUPT;
- /* get the begin tick */
- tick = rt_tick_get();
- if(timeout == 0)
- t = RT_WAITING_FOREVER;
- else
- {
- /* convirt msecond to os tick */
- if (timeout < (1000/RT_TICK_PER_SECOND))
- t = 1;
- else
- t = timeout / (1000/RT_TICK_PER_SECOND);
- }
复制代码
这边,你应该可以看出,如果你把RT_TICK_PER_SECOND加大,大于1000HZ的话,这边就会产生除0的异常
或许,这是你的问题症结所在,期待你的解答
3、当然,这是RT-Thread的bug,要想准确的话,可以直接调用rt_tick_from_millisecond来计算
但从工程实践来讲,RT_TICK_PER_SECOND的底线,一般也就到1000HZ。 |
|