2 个版本
0.1.1 | 2019 年 6 月 28 日 |
---|---|
0.1.0 | 2019 年 6 月 28 日 |
477 在 内存管理 中排名
每月 32 次下载
8KB
ESP-IDF 支持的 Rust 分配器
这是一个基于 ESP-IDF 的 Rust 内存分配器。
此分配器旨在用于 ESP32,并与 ESP-IDF 链接。更多信息请参阅
- https://github.com/ctron/rust-esp-container/
- https://github.com/ctron/rust-esp-template
- https://github.com/MabezDev/rust-xtensa.git
- https://quickhack.net/nom/blog/2019-05-14-build-rust-environment-for-esp32.html
用法
将以下内容添加到您的 main 应用项目
extern crate esp_idf_alloc;
#[global_allocator]
static A: esp_idf_alloc::EspIdfAllocator = esp_idf_alloc::EspIdfAllocator;
错误处理器
如果您在应用程序中使用自定义全局分配器,您还需要一个错误处理器。
以下代码将使用 ESP-IDF 的 abort()
方法来处理错误
#![feature(alloc_error_handler)]
use core::alloc::Layout;
extern "C" {
fn abort() -> !;
}
#[alloc_error_handler]
fn alloc_error(_layout: Layout) -> ! {
unsafe {
abort();
}
}
与 alloc
一起使用
还请确保链接到 alloc
创建,因为您可能需要它。将以下内容添加到您的 Xargo.toml
[target.xtensa-esp32-none-elf.dependencies]
alloc={}