【ESP32+freeRTOS学习笔记-开篇前言】

前言的前言

单片机的开发,也有两年多了,之前一直是做一些简单应用,因此以裸机开发的方式为主。虽然裸机开发简单,直白,一些都在一个大循环中不断重复,因此对一些简单的,任务单一的开发工作,效率一直都很高,逻辑也是相当清晰的。随着开发的项目难度的加大,特别针对同时要进行复杂,耗时,并需要相互协作的多个任务的处理时,裸机开发中一个循环搞定一切的作法就完全无法施展开来了。因此,这种复杂,耗时,并需要多任务协作的项目,就迫切需要一种能在MCU上工作的 实时多任务操作系统。这种过渡是一种自然而然的过程。是开发者在项目开发与设计过程中必然产生的工作需求。

RTOS的选择

在当前市面上面向单片机及嵌入式领域操作系统也不少linux,黑莓QNX,FreeRTOS,uCOS,RT-Thread,腾讯TencentOS tiny、阿里AliOS Things,华为的鸿蒙LiteOS等。虽说linux是可裁减的,内核可大可小,但因为linux大而全,主流还是应用在MPU上的。所以在MCU领域一般用不了这么复杂的RTOS。
以上这么多,选择是个头痛的问题。各个RTOS都有各自的应用领域与,适应于各个不同的应用平台。因此每一个的优劣势在网上搜索都有非常详细的解释,因此这里不进行重复,也不是本篇的目的。从学习的角度,用哪一个RTOS都能达到目的。但在实际选择中上于我用的是乐鑫ESP32的开发平台,开发环境用的是ESP-IDF+VScode,因为ESP32已完整的集成了freeRTOS,变成ESP32原生开发包的一部分了,因此我的学习自然选择了freeRTOS。虽然在实际使用上,ESP32平台上的freeRTOS的一些使用与标准的freeRTOS文档有一点小差别,但这些不影响对操作系统的学习。这些特殊性在ESP32官方文档里也有清楚的说明。在接下来的笔记里也会有明确的描述。

开发与实践环境

MCU:采用的是乐鑫的ESP32开发板,市面上常见的nodeMODE开发板,带串行烧录口。其实只要是ESP32带串行烧录口的基本都可以,没有太多特殊性。
开发环境:VScode + ESP-IDF插件。
其它外设:在学习过程中不断添加的外设。

参考资料

esp32的官方资料:https://docs.espressif.com/projects/esp-idf/zh_CN/v5.0/esp32/api-reference/index.html

freeRTOS官方资料:https://freertos.org/index.html

freeRTOS官方教程下载地址:https://freertos.org/Documentation/RTOS_book.html

其它相关联的教程:
lvgl官方资料:https://docs.lvgl.io/master/intro/index.html#

笔记的形式

由于freeRTOS是国化的,资料都是英文。因此在学习的过程实际也是一个翻译理解的过程。所以笔记的形式会以原文翻译,摘录,原码分析,总结(思维导图),实验代码的形式进行。完全是按自已学习理解的一个过程来写这个笔记。方便今后自已的重新翻阅。

其实,网上关于freeRTOS的相关教材是相当多的,B站上也有很多很好的教学视频,但别人教得再好,自已没总结,分析,实践终归是学在表面。因此通过这种形式,更能深刻理解freeRTOS的机制,自由应用。(2022年12月7日 )

专题文章的链接(持续更新中…)

【ESP32+freeRTOS学习笔记-(一)freeRTOS介绍】
【ESP32+freeRTOS学习笔记-(二)FreeRTOS运行机制】
【ESP32+freeRTOS学习笔记-(三)任务】
【ESP32+freeRTOS学习笔记-(四)任务调度机制】
【ESP32+freeRTOS学习笔记-(五)队列Queue】
【ESP32+freeRTOS学习笔记-(六)软件定时器】
【ESP32+freeRTOS学习笔记-(七)中断管理】
【ESP32+freeRTOS学习笔记-(八)资源管理】
【ESP32+freeRTOS学习笔记-(九)事件组】
【ESP32+freeRTOS学习笔记-(十)任务通知机制】

【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(新的开篇)”】

【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(1-启动分析)”】

【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(2-多核环境中的任务)”】

【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(3-多核环境下的调度)”】

【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(4-多核下的临界区)”】

  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ESP32FreeRTOS使用上与传统的FreeRTOS有一些区别。在ESP32中,基本不需要单独配置FreeRTOSConfig.h文件,因为ESP-IDF中的menuconfig功能可以对所有涉及到的内容进行配置,使用起来更加直观和便利。主要的数据类型说明中,有一个重要的数据类型是TickType_t。 在ESP32的魔改版FreeRTOS中,很少使用正经的事件集,而是使用ESP-IDF提供的更方便的事件循环。这使得在ESP32中使用事件循环更加方便。 另外,ESP32的分区表是采用二进制格式而不是CSV文件。ESP-IDF提供了gen_esp32part.py工具来配置和构建分区表。默认情况下,使用的是默认分区表。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【ESP32+freeRTOS学习笔记-(一)freeRTOS介绍】](https://blog.csdn.net/weixin_45499326/article/details/128226443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ESPIDF开发ESP32学习笔记ESP32上的FreeRTOS】](https://blog.csdn.net/qq_40500005/article/details/114794039)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑牛唱剧本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值