Crates.io | esp-idf-alloc |
lib.rs | esp-idf-alloc |
version | 0.1.1 |
source | src |
created_at | 2019-06-28 20:29:16.869599 |
updated_at | 2019-06-28 20:34:26.832797 |
description | An allocator for the ESP32 based on the ESP-IDF. |
homepage | |
repository | https://github.com/ctron/esp-idf-alloc |
max_upload_size | |
id | 144406 |
size | 18,565 |
This is a memory allocator for Rust, backed by the ESP-IDF.
This is intended to be used on an ESP32, linked against the ESP-IDF. For more information see:
Add the following to your main, application project:
extern crate esp_idf_alloc;
#[global_allocator]
static A: esp_idf_alloc::EspIdfAllocator = esp_idf_alloc::EspIdfAllocator;
If you use a custom global allocator in your application, you will also need an error handler.
The following code will use the ESP-IDF abort()
method to handle the error:
#![feature(alloc_error_handler)]
use core::alloc::Layout;
extern "C" {
fn abort() -> !;
}
#[alloc_error_handler]
fn alloc_error(_layout: Layout) -> ! {
unsafe {
abort();
}
}
alloc
Also be sure to link in the alloc
create, as you might want this. Add the following to your Xargo.toml
:
[target.xtensa-esp32-none-elf.dependencies]
alloc={}