我是在main中有创建信号量的函数
led_event = OSQCreate(&led_q[0] , MSGSIZE);
这个因为配置中信号量上限较小
而在sys_arch.c中有一个创建消息邮箱的函数
err_t sys_mbox_new
其中调用了:
(*mbox)->pQ=OSQCreate(&((*mbox)->pvQEntries[0]),size); //使用ucos创建一个消息队列
从上面可知lwip会隐含的创建了一些消息队列,如果上限不足会导致出错误。
增加os_cfg.h中如下宏定义:
define OS_MAX_EVENTS 20u //事件的上限
define OS_MAX_QS 20u //信号量的上限
define OS_MAX_TASKS 20u //任务上限