esp-idf-alloc

Crates.ioesp-idf-alloc
lib.rsesp-idf-alloc
version0.1.1
sourcesrc
created_at2019-06-28 20:29:16.869599
updated_at2019-06-28 20:34:26.832797
descriptionAn allocator for the ESP32 based on the ESP-IDF.
homepage
repositoryhttps://github.com/ctron/esp-idf-alloc
max_upload_size
id144406
size18,565
Jens Reimann (ctron)

documentation

README

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:

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={}
Commit count: 10

cargo fmt