4 个版本
0.6.2 | 2024年2月4日 |
---|---|
0.6.1 | 2023年6月29日 |
0.6.0 | 2023年6月9日 |
0.5.0 | 2022年9月26日 |
#1575 in 嵌入式开发
98KB
1.5K SLoC
mips-mcu-alloc
PIC32 微控制器的堆内存分配器(基于 alloc-cortex-m
crate)
堆内存放置在由连接器确定的地址,并自动扩展以满足分配请求。如果堆内存与堆栈冲突,则自动扩展堆内存失败。
可以通过激活 log
功能来通过日志跟踪内存分配和堆内存扩展。
示例
#![feature(global_allocator)]
#![feature(alloc_error_handler)]
// Plug in the allocator crate
extern crate alloc;
use alloc::Vec;
use mips_mcu_alloc::MipsMcuHeap;
#[global_allocator]
static ALLOCATOR: MipsMcuHeap = MipsMcuHeap::empty();
#[entry]
fn main() -> ! {
ALLOCATOR.init();
let mut xs = Vec::new();
xs.push(1);
loop { /* .. */ }
}
#[alloc_error_handler]
fn alloc_error(layout: core::alloc::Layout) -> ! {
panic!("Cannot allocate heap memory: {:?}", layout);
}
许可证
许可协议为以下之一
- Apache License,版本 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
依赖关系
~0.4–0.9MB
~19K SLoC