Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tools:libmaple [2015/03/17 17:12]
darron
tools:libmaple [2015/03/22 21:55] (current)
Line 1: Line 1:
 ==== libmaple ==== ==== libmaple ====
  
-libmaple is a firmware library for the Leaflabs maple and maple mini and clones with ARM CPUs.+libmaple is a firmware library for the Leaflabs [[:boards:maple|Maple mini]] and clones with STM32 CPUs.
  
-The firmware library was built with [[:tools:gccarm|this]] compiler.+The firmware library is built with [[:tools:gccarm|this]] compiler. [[:tools:dfu-util|dfu-util]] is required to program the chip.
  
-=== Build ===+=== Download === 
 +Here we fetch the source to the maple libraries.
 <code> <code>
 mkdir -p /embedded/arm-cortex/src mkdir -p /embedded/arm-cortex/src
Line 11: Line 12:
 git clone https://github.com/leaflabs/libmaple.git git clone https://github.com/leaflabs/libmaple.git
 cd libmaple cd libmaple
-cp main.cpp.example main.cpp 
-make CROSS_COMPILE=/embedded/arm-cortex/gcc-arm-none-eabi-4_9-2014q4/bin/arm-none-eabi- 
 </code> </code>
 +
 +=== Help ===
 +The help function of the make file gives us some clues about how to create our own projects with it.
 +<code>
 +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
 +</code>
 +
 +=== List boards ===
 +
 +This function didn't list the boards correctly for me, so this is a sanitised listing.
 +<code>
 +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  
 +</code>
 +
 +=== 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.
 +<code>
 +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
 +</code>
 +
 +