我对freertos的理解

我先独立思考一下。

我觉得操作系统是个大的while(1),里面有很多个小的while(1),这个大的while(1)可以选择进入哪个小的while(1)也可以随时跳出来。可能是靠的类似中断的技术跳出来的。

 

本身实际的freertos工程也就是这样子的,一个mian函数嘛,里面很多个while(1)嘛,写在线程里面,

 

或者可以这样,每个while(1)里面实时检查某个标志位,比如检测到它为1,就用比如break跳出循环,这样怪不得他们用for(;;)来弄死循环。我这样就可以实现不同的while(1)之间的跳转了。那我们来进一步升级它的功能,这样就有意思了,可以自己一步步写出属于自己的操作系统,甚至可以弄线程间的通信。

我们进一步,如何设置能够确定跳到哪个while(1),我们在while(1)外面再加个标志位判断不就可以了,又解决了,太棒了!!!!

 

所以freertos里面行数最多的C文件是tasks.c

 

我可以让你自己先设计一个操作系统。你怎么设计怎么写,这样我觉得反而理解得更深刻。而不是死记硬背别人的。

 

我感觉串口通信可也自己独立思考一下先,而不是什么都先百度看别人也没有做出来有没有现成的代码。你自己独立思考就会回归其本质去进行推理。我们先不谈其他的,让你自己设计一个通信接口实现通信你怎么设计。

 

 

实际看了下freertos任务切换的实现,和我想的思路差不多,见下面两张照片。这种感觉很棒。我是弄了个标志位,然后跳出死循环,中断的方式我也想过。

我对freertos的理解

我对freertos的理解

 

 

 

我感觉leetcode也可以用独立思考的方式去做,而不是只在那看在那学,弄得心态爆炸。自己独立思考地做反而也更有动力。当作奥数题来做嘛。

这可能也是为什么看视频容易看得心态爆炸。