14 个版本
0.5.0 |
|
---|---|
0.4.6 | 2022 年 1 月 2 日 |
0.4.5 | 2021 年 4 月 27 日 |
0.4.2 | 2020 年 9 月 19 日 |
0.0.2 | 2019 年 7 月 30 日 |
#2114 in 嵌入式开发
94 每月下载量
在 ruspiro-sdk 中使用
28KB
312 行
RusPiRo - 自定义分配器
该 crate 提供了一个自定义的堆内存分配器。如果任何 baremetal crate 使用了来自 alloc
crate 的函数和结构,则需要提供一个分配器。然而,这个 crate 没有导出任何公共 API 用于使用。它仅封装了需要链接到二进制文件中的内存分配器。
先决条件
由于它使用了尚不稳定的功能 alloc_error_handler
,因此此 crate 需要 nightly
构建。当此 crate 与 Raspberry Pi 一起使用时,还需要配置并启用 MMU,因为它使用原子操作来提供无锁内存分配。
用法
要使用此 crate,只需将以下依赖项添加到您的 Cargo.toml
文件中
[dependencies]
ruspiro-allocator = "0.4.6"
完成后,将自定义分配器的访问权限添加到您的项目,并将使用添加到您的 crates main rust 文件中
extern crate ruspiro_allocator;
在您定义 ruspiro-allocator
crate 的使用的地方,可以像这样使用需要从 alloc
crate 进行堆内存分配的动态结构
#[macro_use]
extern crate alloc;
use alloc::vec::*;
use alloc::boxed::*;
fn demo() {
let mut v: Vec<u32> = vec![10, 20];
let b: Box<u16> = Box::new(10);
v.push(12);
}
许可证
Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0) 或 MIT (LICENSE-MIT 或 http://opensource.org/licenses/MIT) 下使用,任选其一。