本帖最后由 newbuff 于 2017-8-26 11:55 编辑
知道如何在STM32 中使用比如RT Thread的系统,最近做个东西,用到3个串口,独立接收不同设备的数据。想着高大上一回,直接用了系统,建了3个任务处理三个串口接收的数据,当然数据是中断里接收的。运行着也没啥问题,但是突然又一想,完全裸奔都可以啊,如下
void main
{
while(1)
if(uart1_ok)
{
//do work1
}
if(uart2_ok)
{
//do work2
}
if(uart3_ok)
{
//do work3
}
}
可能仅仅是无法区分优先级的劣势了。
到底根据什么需求,选择系统才有优势啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1、任务切换:主要就是给PC指针和堆栈指针重新赋值,当然在这之前要先将它们原来的指向给保存起来。这两个指针决定的是运行哪块代码(任务)和哪里的数据(任务堆栈)。具体的还是多看下任哲的UCOSII吧,通俗易懂。
2、优先级不固定的其中两个原因是:(1)可以根据实际需要实时更改任务优先级。(2)可以通过更改优先级来防止“优先级反转”的问题。
以上均为个人理解。具体的还是那句,认真看看任哲的UCOSII吧。
一周热门 更多>