1、背景
ESP32 是一块拥有双核微控制器,因此如何充分利用这个双核资源值得探讨一下,之前已经对这方面有一定的接触。
参考资料
ESP-IDF FreeRTOS SMP Changes https://docs.espressif.com/projects/esp-idf/zh_CN/latest/api-guides/freertos-smp.html
ESP-IDF源码
双核实时系统的架构方法 https://www.eefocus.com/embedded/340538
对于单核架构的处理器,提高系统系能的方法有:1>提高处理器主频;2>使用抢占式实时操作系统,并引入多线程,改进系统任务调度策略。
2、如何实现双核平衡,充分利用ESP32资源
对于ESP32这样拥有双核的微控制器,如果仅仅使用单核来运行程序,这是对ESP32性能的极大浪费,因此有必要研究以下如何有效利用ESP32的双核资源。ESP32包括Protocol CPU(协议CPU/PRO_CPU/CPU 0) 和 Application CPU(应用CPU/APP_CPU/CPU 1)。
2.0 优化目标
目标:提高对任务实时性要求。
困难:控制过程中常常同时存在多种不同实时性要求的任务,不同任务对处理器时间的占用比例也有较大差异;
2.1ESP32 这双核的特点
1、PRO_CPU和APP_CPU实际上是一样的,即同构双核处理器。
2、PEO_CPU和APP_CPU可访问相同的memory,这就允许双核交替运行任务。
3、ESP-IDF的FreeRTOS提供了对称多处理能力。
2.2 关于ESP32的系统初始化启动过程