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