1 个不稳定版本
0.1.0 | 2022年2月3日 |
---|
#29 在 #arduino
135KB
3K SLoC
Rustuino
问题
Rust是一种在过去几年中迅速崛起的语言。作为一种系统开发语言,嵌入式设备可以从Rust提供的更好的内存安全性中受益。问题是,没有很多优秀的crate提供许多设备的良好硬件抽象层。许多crate都是针对特定设备或设备系列的。
我的愿景
软件
我对这个项目的愿景是提供一个类似Arduino的框架,用于Rust嵌入式开发。我的crate将提供高级函数来控制GPIO引脚或通过UART进行通信,同时仍然为需要使用更高级功能的用户提供精确的寄存器级别控制(也会有高级功能的函数,不用担心 ;))。
硬件
由于存在许多类型的嵌入式设备,我想尽可能使这个项目具有可移植性。我将从支持stm32f芯片系列开始,因为它们是最新的也是最流行的,Cortex-M0芯片是新一代Arduino板的首选。我目前拥有许多Arduino SAMD板和stm32f446,所以我会先支持这些。
路线图
软件
- 使用GPIO引脚的基本功能
- 延迟和时间相关功能
- 通过串行总线进行简单通信的功能
- 硬件中断框架
- 更多功能将陆续推出!
硬件
- stm32f0
- stm32f1
- stm32f2
- stm32f3
- stm32f4
- stm32f7
- 将有更多!
其他
- 开始编写文档/参考
- 清理项目,使其对初学者更容易
贡献
我始终欢迎错误报告、建议等,这个项目将需要大量的时间和精力,如果有人想帮忙,我将非常欢迎。这是我第一个开源项目,我还在学习Rust,所以如果你有更好的代码想法,请提出问题。每个好的嵌入式框架都需要许多不同库的外设(Neopixel、温度传感器等)。这是你可以做出最大贡献的方式。
依赖
~53MB
~1.5M SLoC