mips-mcu-alloc 0.6.2

A heap allocator for MIPS based microcontrollers
Documentation

mips-mcu-alloc

Crates.io docs.rs

A heap allocator for PIC32 microcontrollers (based on the alloc-cortex-m crate)

The heap is placed at a location determined by the linker and automatically extended to fullfil allocation requests. Automatic heap extension fails if the heap would collide with the stack.

Memory allocation and heap extension can be traced via logging by activating the log feature.

Example:

#![feature(global_allocator)]
#![feature(alloc_error_handler)]

// Plug in the allocator crate
extern crate alloc;
use alloc::Vec;
use mips_mcu_alloc::MipsMcuHeap;

#[global_allocator]
static ALLOCATOR: MipsMcuHeap = MipsMcuHeap::empty();

#[entry]
fn main() -> ! {
    ALLOCATOR.init();
    let mut xs = Vec::new();
    xs.push(1);
    loop { /* .. */ }
}

#[alloc_error_handler]
fn alloc_error(layout: core::alloc::Layout) -> ! {
    panic!("Cannot allocate heap memory: {:?}", layout);
}

License

Licensed under either of

at your option.