2 releases
0.1.1 | Jun 28, 2019 |
---|---|
0.1.0 | Jun 28, 2019 |
#496 in Memory management
8KB
Rust allocator backed by ESP-IDF
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:
- 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
Usage
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;
Error handler
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();
}
}
Using with 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={}