Rust 写的 Lua 编译器,让脚本直接跑在裸机 Arduino 上

TinyLua 是一款由 Rust 开发的工具,它将 Lua 源代码直接编译为 AVR 或 ARM 原生机器码,摒弃了传统虚拟机和解释器。在 Arduino 等单片机上,TinyLua 实现了零 GC、零运行时开销,脚本执行速度接近手写 C 代码。文章剖析了其编译器架构,展示如何通过静态类型推导绕过动态类型限制,并探讨裸机内存管理策略。相比 eLua 或 MicroPython,TinyLua 大幅降低 Flash 和 RAM 占用,启动更快。尽管仅支持 Lua 子集,但它证明动态脚本语言无需 VM 即可在嵌入式领域获得原生性能,为开发者提供兼顾效率与性能的新选择。

Cortex-M Quickstart:一个用于构建ARM Cortex-M微控制器应用的模板

Cortex-M Quickstart 是专为 ARM Cortex-M 微控制器设计的 Rust 开发模板。它解决了环境配置复杂、依赖管理困难等痛点。通过 cargo generate 命令,即可快速生成项目结构,内置支持多种目标芯片,简化编译和调试流程。文章介绍了安装 Rust 工具链、配置内存信息及构建应用步骤,并提供点亮 LED 的代码实例。虽灵活性略逊于手动配置,但开箱即用适合原型设计。社区文档完善,是初学者和进阶开发者的高效起点,能显著提升嵌入式编程效率。

Cortex-M Quickstart:一个用于构建ARM Cortex-M微控制器应用的模板

Cortex-M Quickstart 是专为 ARM Cortex-M 微控制器设计的 Rust 开发模板,旨在解决嵌入式开发者面临的环境配置繁琐、依赖管理复杂等痛点。通过简单的命令即可快速生成项目,内置多种目标支持,简化了调试配置流程。文章详细介绍了从安装 Rust 工具链、使用 cargo generate 创建项目,到配置编译目标和内存信息的具体步骤,并提供了点亮 LED 的代码实例。尽管在灵活性上略有局限,但其开箱即用的体验和完善的社区支持,使其成为快速原型设计和高效开发的理想起点,特别适合希望提升嵌入式开发效率的工程师尝试。

Tock:一款能在几十 KB 的内存里,安全地并发运行多个“互不信任”应用的嵌入式操作系统

Tock是一款专为嵌入式场景设计的操作系统,采用Rust编写内核与驱动,结合MPU硬件隔离技术,实现多应用在极小内存空间内的安全并发运行。其核心优势在于两层防护机制:Rust编译期内存安全保证,以及MPU硬件级应用隔离。即使单个应用崩溃,也不会影响系统整体运行。特别适合智能楼宇、工业网关等需要混合部署多厂商、多信任级别代码的场景。项目已演进至2.x版本,系统调用性能与隔离粒度均有显著提升。

Rust 赋能 STM32:STM32-RS 带你玩转嵌入式开发

STM32-RS 是一个社区驱动的开源项目,为所有 STM32 微控制器提供 Rust 设备支持库。其核心 PAC 通过特性门控机制,为每个 STM32 家族提供安全访问接口。开发者只需在 Cargo.toml 中添加依赖即可快速上手,支持选择具体设备或获取最新 nightly 版本。该项目利用 Rust 类型系统确保外设操作无类型错误,有效防止内存泄漏和缓冲区溢出,提升代码安全性与可靠性。此外,STM32-RS 提供了便捷的生成工具链,帮助开发者自定义设备库。凭借简洁 API 设计和强大编译器支持,STM32-RS 大幅提升嵌入式应用的开发效率与代码可读性,是 Rust 嵌入式开发的理想选择。

Rust 赋能 STM32:STM32-RS 带你玩转嵌入式开发

STM32-RS 是由社区驱动的开源项目,专为所有微控制器提供安全的 Rust 设备支持库。其核心组件为每个家族提供安全访问接口,支持通过特性门控灵活选择设备。该项目利用 Rust 的类型系统确保外设操作无类型错误,有效防止内存泄漏和缓冲区溢出,显著提升安全性与可靠性。开发者仅需简单配置构建文件即可集成,同时支持获取最新夜间版本或自行生成设备库。凭借简洁的 API 设计和强大的编译器生态,STM32-RS 大幅提高了开发效率与代码可维护性,助力开发者轻松构建高性能嵌入式应用,是 Rust 嵌入式领域的重要利器。目前项目已在 GitHub 上开源,欢迎开发者参与贡献。

Rust 赋能 STM32:STM32-RS 带你玩转嵌入式开发

STM32-RS 是社区驱动的开源项目,为 STM32 微控制器提供 Rust 设备支持库。核心是 Peripheral Access Crate (PAC),通过特性门控选择设备,确保类型与内存安全。开发者只需在 Cargo.toml 添加依赖即可快速上手,支持稳定版及 nightly 版本。项目提供生成设备库的工具链,包括 svd2rust。相比传统 C 语言,STM32-RS 凭借 Rust 强类型系统和编译器优势,防止缓冲区溢出等安全问题,提升代码可读性与效率。无论是初学者还是资深工程师,都能利用 STM32-RS 构建可靠嵌入式应用,是 Rust 嵌入式开发的理想利器。

ESP-IDF-HAL:解锁 ESP32 系列芯片的 Rust 编程新境界

ESP-IDF-HAL 是连接 Rust 语言与 ESP32 芯片的桥梁,为嵌入式开发提供安全高效的编程体验。该库全面兼容 embedded-hal 标准,支持 GPIO、SPI、I2C、PWM 等丰富硬件驱动,提供阻塞与异步双模式编程。开发者可借助 esp-idf-template 快速上手,轻松构建物联网、智能家居、工业自动化等应用场景。相比传统 C 开发,Rust 的内存安全特性大幅降低嵌入式系统漏洞风险,是 ESP32 开发的理想选择。

Embedded-HAL:一个针对嵌入式系统的硬件抽象层

embedded-hal是Rust嵌入式生态的核心硬件抽象层,通过定义标准化接口traits,实现驱动程序与硬件平台解耦。开发者只需实现通用I2C/SPI等接口,即可让同一驱动在Cortex-M、AVR等不同MCU上运行,大幅提升代码复用率。项目提供阻塞、非阻塞、异步三种版本,配合丰富的HAL实现库,彻底告别重复造轮子,让嵌入式开发像搭乐高一样简单高效。

硬核 Rust 嵌入式:为 ESP32-C3 实现网页配网与智能点灯

在嵌入式开发中,频繁更换 Wi-Fi 环境往往需要修改代码重新编译,令人头疼。本文基于 Rust 语言和 esp-idf-svc 框架,专为 ESP32-C3 Super Mini 打造了一套完整的自动化解决方案。核心功能包括:开机自动从 NVS 闪存读取 Wi-Fi 信息并重连;若失败则自动开启热点,手机扫码即可输入密码完成配网。联网后支持 STA 与 AP 双模共存,并通过 Web 控制台远程控制板载 LED 及一键清除配置。此外,文章还深入解析了跨线程状态共享、NVS 持久化存储以及限制发射功率提升供电稳定性的实战技巧。该方案兼具类型安全与强大生态,帮助开发者快速构建媲美工业级的智能配网系统,彻底摆脱硬编码烦恼。