mips-mcu-alloc 0.6.0

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.

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.