You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Michael Hope 828facd2b7 Use stdint.h to define the basic types. 9 years ago
contrib Add contrib/astylerc. 10 years ago
examples examples/blinky.cpp: Use toggleLED() instead of digitalWrite(). 10 years ago
libmaple Use stdint.h to define the basic types. 9 years ago
libraries Fixups for Wire library builds. 10 years ago
notes notes/interrupts.txt: Fix typos and other errors. 10 years ago
support Add CROSS_COMPILE env var support 9 years ago
wirish wirish/syscalls.c: Replace obsolete caddr_t with void * 9 years ago
.dir-locals.el added notes/coding_standard.txt, more cleanups 12 years ago
.gitignore Merge branch 'wip-family-support' 10 years ago
CREDITS CREDITS: sort names alphabetically. 10 years ago
HACKING HACKING: mention contrib/astylerc. 10 years ago
LICENSE LICENSE: include DCO notice. 11 years ago
Makefile Fixups for Wire library builds. 10 years ago
README Update the README. 10 years ago Tweak build system to allow out-of-tree projects. 10 years ago
main.cpp.example Move public headers to include directories; related cleanups. 11 years ago


_ _ _ _
| (_) |__ _ __ ___ __ _ _ __ | | ___
| | | '_ \| '_ ` _ \ / _` | '_ \| |/ _ \
| | | |_) | | | | | | (_| | |_) | | __/
|_|_|_.__/|_| |_| |_|\__,_| .__/|_|\___|
|_| by LeafLabs!

The latest version of this repository can be found here:

IMPORTANT: read HACKING _before_ submitting patches.

General information

libmaple is a library for programming ST's STM32 line of Cortex M3
microcontrollers. It has a pure C layer, libmaple proper, which does
most of the work, and a C++ layer, Wirish, which provides high-level
convenience functions and a Wiring/Arduino-compatible interface.

libmaple is designed for portability, and currently runs on a variety
of STM32F1 performance and value line MCUs, with experimental support
for STM32F2 MCUs.

Using libmaple

The easiest way to use libmaple is in concert with the Maple IDE.
Maple IDE, a sister project from LeafLabs, is an Arduino IDE fork
usable for programming Maple boards, which includes libmaple and a
compilation and upload toolchain:

Additionally, a HOWTO on setting up this library for use from the
command line in a Unix environment is available here:

Documentation, Etc.

HTML documentation for the latest release of libmaple/Maple IDE is
available here:

libmaple is well documented via Doxygen comments. The HTML
documentation referenced above (which also includes the Doxygen
output) is automatically generated from the source files in the
leaflabs-docs repository. In order to obtain the leaflabs-docs
repository, visit:

Repository Layout


Compiler output


Community-contributed resources. LeafLabs doesn't maintain the
contents of this directory, so it may get stale.


Example code and test programs. Copy these to /main.cpp to compile them.


This is the meat of the library. C only, no C++. The
Arduino-like compatibility layer (in C++) is in /wirish/.


Special-purpose libraries that don't merit inclusion in the
/libmaple/ and /wirish/ directories, which are intended for
general use. Arduino-compatible libraries go here.


Licensing and copyright information.


main.cpp is required for a successful build but is non-existent by
default; use this file as a template for building your program. By
default, just blinks an LED.


libmaple build instructions for GNU Make. (This is supplemented by, the files throughout the tree, and the
files in support/make/).


Unstructured text notes that may be useful.


This file ;).


Support files and scripts for various purposes.

gdb/ GDB scripts.
ld/ Linker scripts.
make/ Additional files used by the top-level Makefile.
scripts/ Miscellany.
doxygen/ Doxygen configuration. Upload script for the STM32's built-in USART bootloader.


Extra wrappers and functionality around the lower level code in
/libmaple/. These files implement an Arduino "Wiring"-like