#alloc #esp32 #esp

无需 std esp-idf-alloc

基于 ESP-IDF 的 ESP32 内存分配器

2 个版本

0.1.1 2019 年 6 月 28 日
0.1.0 2019 年 6 月 28 日

477内存管理 中排名

每月 32 次下载

EPL-2.0 许可证

8KB

ESP-IDF 支持的 Rust 分配器

这是一个基于 ESP-IDF 的 Rust 内存分配器。

此分配器旨在用于 ESP32,并与 ESP-IDF 链接。更多信息请参阅

用法

将以下内容添加到您的 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={}

无运行时依赖项