Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rust-for-rtthread/rtt_rust
使用rust开发rt-thread app
https://github.com/rust-for-rtthread/rtt_rust
embedded rt-thread rust
Last synced: 16 days ago
JSON representation
使用rust开发rt-thread app
- Host: GitHub
- URL: https://github.com/rust-for-rtthread/rtt_rust
- Owner: rust-for-rtthread
- Created: 2022-05-25T03:17:29.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-04-09T08:12:13.000Z (almost 2 years ago)
- Last Synced: 2023-05-04T14:03:50.947Z (over 1 year ago)
- Topics: embedded, rt-thread, rust
- Language: Rust
- Homepage:
- Size: 41 KB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-rt-thread - rtt_rust - Rust support for rt-thread. (Packages / Language)
- awesome-rt-thread - rtt_rust - Rust support for rt-thread. (Packages / Language)
README
# RUST support for rt-thread
## 1. 介绍
这是一个在`rt-thread`上制作的`rust`支持层### 1.1 目录结构
| 名称 | 说明 |
|---|---|
| docs | 文档目录 |
| rtt_rs2 | 支持层的核心代码 |
| rtt_main | APP启动宏 |
| rtt_rust_example_app | 一个简单的示例程序 |### 1.2 许可证
### 1.3 依赖
* RT-Thread 3.0+
* RUST toolchains +nightly
* rust-src
- toml (可以使用 pip 安装)## 2. 如何使用
请在`applications`目录下面添加你的程序
你可以使用如下命令生成:`cargo new --lib xxx`
然后增加基本的库的依赖如下
```toml
# file Cargo.toml
# 请注意修改版本号
[dependencies]
rtt_main = {path = "../../packages/rtt_rust-v1.0.0/rtt_main/"}
rtt_rs2 = {path = "../../packages/rtt_rust-v1.0.0/rtt_rs2/"}
```
然后添加一个最小程序
```rust
// file src/lib.rs
#![no_std]extern crate alloc;
use alloc::string::String;
use rtt_main::rtt_main;
use rtt_rs2::param::Param;
use rtt_rs2::println;// appname: 应用的名字,在命令中将被使用
// run: 是否使用rt-thread操作系统的自动执行功能
// cmd: 是否添加app到命令行
// desc: 命令行程序的描述
// 最简版本:#[rtt_main(appname="demo")]
// 请自行调用函数 __demo_main_func
#[rtt_main(appname="demo", run=true, cmd=true, desc="demo app.")]
fn main(param: Param) {
for i in param {
println!("{}", String::from_utf8_lossy(&*i))
}
}
```
`APPS`作为一个标准的rust库,你可是使用任何支持的IDE来辅助你的开发。但是`rtt_rs2`在`build.rs`里面应用了一个环境变量 `RTT_PATH`,请你正确设置这个变量到你的`scons --dist`之后的主路径(因为这将使用rt-thread中的头文件来进行bindgen)。## 3. 支持情况
- [x] APP自启动
- [x] APP添加到MSH
- [x] 线程基本操作
- [x] 系统延时函数
- [x] 系统信号量
- [x] 系统互斥量
- [x] 系统消息队列## 4. 联系方式
* 维护:陈泓霖
* 邮箱:[email protected]