==== libmaple ====
libmaple is a firmware library for the Leaflabs [[:boards:maple|Maple mini]] and clones with STM32 CPUs.
The firmware library is built with [[:tools:gccarm|this]] compiler. [[:tools:dfu-util|dfu-util]] is required to program the chip.
=== 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-2015q1/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-2015q1/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 [[:boards:maple|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-2015q1/bin/arm-none-eabi- BOARD=maple_mini install