This is an old revision of the document!


Table of Contents

libmaple

libmaple is a firmware library for the Leaflabs Maple mini and clones with STM32 CPUs.

The firmware library is built with this compiler.

Download

Here we fetch the source to the maple libraries.

mkdir -p /embedded/arm-cortex/src
cd /embedded/arm-cortex/src
git clone https://github.com/leaflabs/libmaple.git
cd libmaple

Help

The help function of the make file gives us some clues about how to create our own projects with it.

make CROSS_COMPILE=/embedded/arm-cortex/gcc-arm-none-eabi-4_9-2014q4/bin/arm-none-eabi- help

Basic usage (BOARD defaults to maple):
    $ cp your-main.cpp main.cpp
    $ make BOARD=your_board
    $ make BOARD=your_board install

(Multiple source files? Link with libmaple.a (`$ make library')
or hack build-targets.mk appropriately.)

Important targets:
    sketch:   Compile for BOARD to MEMORY_TARGET (default).
    install:  Compile and upload over USB using Maple bootloader

You *must* set BOARD if not compiling for Maple (e.g.
use BOARD=maple_mini for mini, etc.), and MEMORY_TARGET
if not compiling to Flash. Run `$ make list-boards' for
a list of all boards.

Valid MEMORY_TARGETs (default=flash):
    ram:    Compile to RAM (doesn't touch Flash)
    flash:  Compile to Flash (for Maple bootloader)
    jtag:   Compile for JTAG/SWD upload (overwrites bootloader)

Other targets:
    clean: Remove all build and object files
    doxygen: Build Doxygen HTML and XML documentation
    help: Show this message
    mrproper: Remove all generated files

List boards

This function didn't list the boards correctly for me, so this is a sanitised listing.

make CROSS_COMPILE=/embedded/arm-cortex/gcc-arm-none-eabi-4_9-2014q4/bin/arm-none-eabi- list-boards
 cm900
 maple_mini
 maple
 maple_native
 maple_RET6
 nucleo
 olimex_stm32_h103
 opencm904
 st_stm3220g_eval
 VLDiscovery  

Demo

This is the standard LED demo for the maple mini. You may wish to edit the example to create a blink unlike the default empty firmware blink to confirm that this is working.

cp examples/blinky.cpp main.cpp
make CROSS_COMPILE=/embedded/arm-cortex/gcc-arm-none-eabi-4_9-2014q4/bin/arm-none-eabi- BOARD=maple_mini install
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information