RTOS中任务线程与进程间通信消息的创建顺序
问题:
在RT-Thread创建线程的时候用到了信号量,信号量创建函数到了任务线程创建函数的后面,在程序下到MCU后不能运行;
原因:
在任务线程创建的时间会去执行任务函数;而此时会在任务函数中访问信号量,但时信号量还没有创建,信号量句柄是NULL,所以在assert时会失败,导致程序无法运行;
解决:
在任务线程创建之间,在任务函数中用到的所有资源都创建好(信号量,消息队列等),然后再去创建任务线程;
问题:
在RT-Thread创建线程的时候用到了信号量,信号量创建函数到了任务线程创建函数的后面,在程序下到MCU后不能运行;
原因:
在任务线程创建的时间会去执行任务函数;而此时会在任务函数中访问信号量,但时信号量还没有创建,信号量句柄是NULL,所以在assert时会失败,导致程序无法运行;
解决:
在任务线程创建之间,在任务函数中用到的所有资源都创建好(信号量,消息队列等),然后再去创建任务线程;