提问人:Stefan 提问时间:1/14/2023 最后编辑:jebStefan 更新时间:1/14/2023 访问量:71
Rust 中的有状态嵌入式库
Stateful embedded library in Rust
问:
我想在 Rust 中为微控制器开发一个库,其中包含一些状态信息。
此状态数据无法传输到库的调用方。我正在使用 .该库应适用于裸机应用程序和 RTOS,如 Zephyr OS 或 FreeRTOS。
到目前为止,我的方法是使用:#![no_std]
lazy_static
use heapless::Vec;
lazy_static! {
static ref nodes: Vec<u8, 100> = Vec::new();
}
fn foo(){
nodes.push(1);
}
此示例不编译。我收到以下错误:
cannot borrow data in dereference of `nodes` as mutable
trait `DerefMut` is required to modify through a dereference, but it is not implemented for `nodes`
谷歌搜索这个错误,我喜欢需要互斥锁,请参阅链接。我不知道如何在代码中实现这一点。#![no_std]
然而,更重要的是一个问题:当使用时,处理全局状态的惯用方式是什么?#![no_std]
答: 暂无答案
评论
Mutex
std
类似 cortex_m::interrupt::Mutex
的东西