我想在ESP32开发板学习FreeRTOS编码。为此,我在笔记本上安装了Arduino IDE。我已经从FreeRTOS网站下载了用户手册API文档和PC示例代码。首先,我尝试在VisualStudio中运行示例代码,然后我从电脑搬到了ESP 32。
之后,我为ESP 32编写了一些代码,在这些代码中,我检查了任务优先级相同时发生了什么,任务优先级不同时发生了什么,任务处于块状态时发生了什么。
我不明白如何准备下一个学习FreeRTOS的策略。我应该先做哪些简单的工作,然后再转到更难学的任务呢?
如果您想学习FreeRTOS,那么您打算如何学习?。您想通过编写代码来检查结果的10个任务是什么?您会在代码中测试每个API还是为特定任务编写代码?
我会想出我想用这个工具 (FreeRTOS) 完成的事情,然后用它来制作一个项目。 在此过程中,我会学到很多关于 FreeRTOS 的知识。 并且会学习到不同项目中微控制器及其开发环境使用。
我的想法很简单,就是找到一个现实世界的问题并为此编写代码。 几年前,我第一次尝试使用 ESP32 上的 FreeRTOS 是从一个内核上的外部 CANBus适配器将数据读取到环形缓冲区中,将其与第二个内核上的进一步处理同步,并通过第二个环形缓冲区将结果传回内部第一个核心上的 CANBus 控制器,而第二个核心通过 tcp/ip 套接字监控和状态数据异步向主机报告......实际上是 4 个任务、2 个环形缓冲区、各种信号量、套接字/wifi 编程和至少 2 个 中断例程...花了几天时间才能可靠地启动和运行。
我想学习FreeRTOS,因为它现在在就业市场上有很高的需求。现在,我没有想到这样的项目,我需要在关键时刻编写代码。有许多项目可以在互联网上为FreeRTOS提供,但对于他们,我必须购买更多的硬件,如传感器等。我在网上寻找一些例子,这样我可以用我手中现有的东西来做。
这有点简单,中断编程并不是一个真正的FreeRTOS问题;我不知道你会从中得到多少“RTOS”的经验,但是可以试一试。
但是FreeRTOS不仅仅是实时的,它还涉及到处理多个并行、合作甚至竞争的任务和资源。
你不需要大量的硬件来进行实验。如果有的话,只要几个LED和按键就够了。我的学生使用的例子之一是6个LED和4个按键,并模拟十字路口的交通灯。我们首先将其作为一个状态机执行,然后作为4个独立任务运行自己的状态机,并使用总体主定时器中断。
另一个“没有硬件”的例子是实现传统的生产者-消费者模式。生产者任务以随机间隔的方式创建具有不同优先级的消息,放入一个或多个环形缓冲区。使用者任务移除它们并按优先级进行处理。为了让事情变得更“有趣”,高优先级的消息通过wifi发送回主机,而低优先级的消息则通过串行发送。实现这一点的方法有很多;关于消费者任务如何在单个环缓冲区上处理优先级的讨论和决策可能会非常激烈!
按下并释放按键的按钮打开和关闭的次数,数了很多次,在退欧期间,按键是否打开和关闭对我来说是关键的时间任务。
一周热门 更多>