Cortex-M 微控制器上的异步 Rust:高效并发编程的探索

2024-12-14

本文深入探讨了在 Cortex-M 微控制器上使用异步 Rust 进行高效并发编程的方法。文章详细解释了 Futures、协作式调度和异步 Rust 执行器的工作原理,并介绍了 Embassy 项目,这是一个用于在微控制器上解锁异步编程能力的创新框架。通过 Blinky 和 Button 例子,展示了异步 Rust 在嵌入式系统中的应用,并比较了异步 Rust 与传统 RTOS 的优缺点,最终得出异步 Rust 在资源利用率和并发性方面具有显著优势的结论。

阅读更多
开发 Cortex-M

构建嵌入式数据库时的注意事项

2024-08-02

文章探讨了在嵌入式系统中构建数据库时需要考虑的因素,包括数据持久性、闪存特性、数据库需求分析以及一些现有解决方案。文章首先指出了直接将数据写入闪存的缺陷,如可移植性问题、数据损坏风险和固件升级问题。接着,文章详细解释了整数大小、对齐方式和字节序等问题,以及闪存页大小、擦除特性和寿命等限制。随后,文章列举了在选择或构建嵌入式数据库时需要考虑的需求,如数据量、数据一致性、记录结构、写入频率、垃圾回收、备份和还原等。最后,文章简要介绍了一些现有解决方案,如Espressif NVS Flash、Zephyr NVS、SPIFFS和Bond的Beau嵌入式数据库,并强调了监控数据库性能指标的重要性。

阅读更多
未分类 闪存

使用LLVM/Clang构建更好的固件

2024-07-27

本文介绍了如何在嵌入式开发中使用LLVM/Clang编译器工具链来构建更好的固件。LLVM/Clang相比GCC的优势在于模块化架构、丰富的静态分析功能以及跨平台编译能力。文章详细介绍了如何将基于GCC的ARM Cortex-M项目迁移到LLVM/Clang, 并利用Clang的静态分析工具scan-build检测内存泄漏、死锁等问题。此外,文章还介绍了Clang线程安全分析器,用于检测多线程应用中的竞态条件。最后,文章总结了LLVM/Clang在嵌入式开发中的优势,并鼓励开发者尝试使用。

阅读更多
未分类 LLVM