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

 

 

 

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
FreeRTOS(Real-Time Operating System)是一个轻量级的嵌入式实时操作系统内核,专为小型微控制器和资源受限的设备设计。它主要用于物联网(IoT)、嵌入式系统、工业自动化等应用中,提供高效的并发处理能力和实时响应。 理解FreeRTOS可以从以下几个方面入手: 1. **实时性**:FreeRTOS强调任务调度的及时性和确定性,确保在预定义的时间内完成关键操作,这对于需要时间精确控制的应用至关重要。 2. **任务管理**:它支持创建和管理多个任务,每个任务都有自己的执行优先级,任务可以在这些优先级之间切换,确保关键任务优先执行。 3. **中断管理**:FreeRTOS能够有效地处理中断,即使在运行任务时也能中断处理外部事件,保持系统的实时响应能力。 4. **内存管理**:由于内存资源有限,FreeRTOS优化了内存分配,比如使用堆栈分配机制,保证内存的高效使用。 5. **互斥和同步**:提供了互斥锁(Mutex)和信号量(Semaphore)等同步机制,帮助任务间安全地共享资源,避免数据竞争。 6. **队列通信**:任务可以通过发送和接收消息(队列)进行通信,这使得系统更加模块化和灵活。 7. **移植性**:FreeRTOS设计得非常模块化,易于在各种硬件平台上移植,支持多种处理器架构。 如果你正在使用或考虑使用FreeRTOS,你可能会关心如何配置它,如何编写任务代码,以及如何处理异常情况和资源抢占等问题。如果你有特定的问题或者想要深入学习某个方面的内容,请告诉我,我可以为你提供更详细的解释或指导。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值