乐鑫科技 (Espressif) 的 ESP32 系列 ARM SoC 也许是当今世界上最热门的物联网 (IoT capable) MCU - 它无人不知无人不晓,以低廉的价格及稳定强大的功能成为了无数物联网工程师选型的绝对首选,至今出货了至少10亿颗。许多与物联网搭边的商业产品、智能家居,以及几乎每一个涉及WiFi/蓝牙的嵌入式场合里都会有它(或者它的小弟 ESP8266)的身影。但你是否知道,ESP32 也有一个庞大的 RISC-V 版本家族呢?“RISC-V MCU 漫游” 专栏接下来的这个系列连载,就让我们一探那些风格独具的”黄紫色” RISC-V ESP32 们。
本期我们先来看看当中也许是最知名,也是支持矩阵支持相对最全的 ESP32-C3。
ESP32-C3 用到的是一个 160MHz RV32IMC 单核,有着 400KB RAM 和 384KB ROM - 明显要比之前介绍的 BL60x 还大一截。嫌 Flash 不够用?它有四种 SPI/QPI 接口让你自己外接一个 Flash。各种外设也一应俱全,甚至还有个板载温度传感器,再也不用像初学 Arduino 一样外接一个 DHT11 了!至于通信就是 2.4Ghz 802.11bgn WiFi 和 BLE5.0, 这点跟它的 ARM/Xtensa 亲戚们没差。
ESP32 系列的 SDK 及开发资源多的不能再多,C3 也不例外:有专门的 baremetal C ( https://github.com/cpq/mdk ), 有 Rust HAL 支持 ( https://github.com/esp-rs/esp-idf-hal ),有 Lua ( GitHub - Nicholas3388/LuaNode: Lua sdk for Esp32/Esp32c2/Esp32c3/Esp32c6/Esp8266/STM32L4 ),还有数不胜数的各种示例和项目……
RTOS 也不能少。支持矩阵里测试的 ESP32-C3 开发板有两款:LUATOS ESP32-C3 和 LilyGo TTGO T-OI-Plus(值得一提的是后者有个 18650 电池座子)。前者有个乐鑫官方的 FreeRTOS 移植 (https://github.com/espressif/esp-idf/tree/v5.4/examples/system/freertos/real_time_stats),而两款都有 Zephyr 的支持。Zephyr 是 Linux Foundation 旗下的一款老牌 RTOS,它也是目前我们测试的 CH32V003 支持的唯一一款 RTOS - 在第一期里我们提到过,能在只有 2KB RAM 和 16KB Flash 的它上面运行足以见得 Zephyr 的实力。其中 TTGO T-OI-Plus 的移植是我们做的一点微小的工作(只是改了个 devicetree 写了点文档而已),现已合入 Zephyr 主线:github.com/zephyrproject-rtos/zephyr/pull/86486 。
感兴趣的朋友不妨看看我们的测试报告:https://matrix.ruyisdk.org/zh-CN/reports/ESP32C3-FreeRTOS-README/ ,https://matrix.ruyisdk.org/reports/ESP32C3-Zephyr-README/ 。
欢迎各位复现/吐槽丁丑小队的所有测试结果。
如果有对我们的测试方法/结果有任何建议/问题,欢迎直接在 GitHub 开 issue,或者在论坛 @ 我、回帖询问