STM32在什么情况下有必要用系统?一般应用感觉裸奔够用

2019-08-14 04:18发布

本帖最后由 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
     }

}
可能仅仅是无法区分优先级的劣势了。

到底根据什么需求,选择系统才有优势啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
回首恨年少
1楼-- · 2019-08-16 03:49
ZTO13 发表于 2017-8-30 13:46
看了两个星期UC/OS 2,还没搞懂任务间是怎么切换的,知道是优先级,但优先级不应该设置后固定吗?任务调度 ...

1、任务切换:主要就是给PC指针和堆栈指针重新赋值,当然在这之前要先将它们原来的指向给保存起来。这两个指针决定的是运行哪块代码(任务)和哪里的数据(任务堆栈)。具体的还是多看下任哲的UCOSII吧,通俗易懂。
2、优先级不固定的其中两个原因是:(1)可以根据实际需要实时更改任务优先级。(2)可以通过更改优先级来防止“优先级反转”的问题。
以上均为个人理解。具体的还是那句,认真看看任哲的UCOSII吧。
northerntree
2楼-- · 2019-08-16 08:40
 精彩回答 2  元偷偷看……
八度空间
3楼-- · 2019-08-16 14:17
小二郎123 发表于 2017-8-30 17:00
大虾,现在的实时操作系统那个比较稳,最适合在32上跑,想在研究一下,谢谢指教

楼下都回答了,呵呵
一只风筝
4楼-- · 2019-08-16 15:27
ZTO13 发表于 2017-8-30 13:46
看了两个星期UC/OS 2,还没搞懂任务间是怎么切换的,知道是优先级,但优先级不应该设置后固定吗?任务调度 ...

也许你可以看看这个:http://blog.csdn.net/guet_kite/article/details/76020069
ZTO13
5楼-- · 2019-08-16 18:52
谢谢,我再仔细看看理解。
zey
6楼-- · 2019-08-16 21:28
好处大大的

一周热门 更多>