Go to file
Michael Hope 828facd2b7 Use stdint.h to define the basic types.
Solves a problem when building in strict C++ mode, as GCC defines
uint32_t as unsigned long on systems where sizeof(long) == 4.  This
causes GCC to complain that uint32 != uint32_t as unsigned int !=
unsigned long.

Signed-off-by: Michael Hope <michaelh@juju.net.nz>
2013-06-30 21:07:59 +02:00
contrib Add contrib/astylerc. 2012-06-28 15:48:39 -04:00
examples examples/blinky.cpp: Use toggleLED() instead of digitalWrite(). 2013-01-01 20:11:14 -05:00
libmaple Use stdint.h to define the basic types. 2013-06-30 21:07:59 +02:00
libraries Fixups for Wire library builds. 2012-08-31 16:12:14 -04:00
notes notes/interrupts.txt: Fix typos and other errors. 2012-08-23 01:46:50 -04:00
support build-rules.mk: Add CROSS_COMPILE env var support 2013-06-04 14:17:43 +02:00
wirish wirish/syscalls.c: Replace obsolete caddr_t with void * 2013-06-04 14:17:38 +02:00
.dir-locals.el added notes/coding_standard.txt, more cleanups 2010-09-27 03:47:47 -04:00
.gitignore Merge branch 'wip-family-support' 2012-06-26 18:32:57 -04:00
CREDITS CREDITS: sort names alphabetically. 2012-06-29 12:42:30 -04:00
HACKING HACKING: mention contrib/astylerc. 2012-06-28 15:50:09 -04:00
LICENSE LICENSE: include DCO notice. 2011-07-05 17:23:41 -04:00
Makefile Fixups for Wire library builds. 2012-08-31 16:12:14 -04:00
README Update the README. 2012-06-29 13:13:17 -04:00
build-targets.mk Tweak build system to allow out-of-tree projects. 2012-06-14 23:43:48 -04:00
main.cpp.example Move public headers to include directories; related cleanups. 2012-04-11 16:56:50 -04:00

README

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


The latest version of this repository can be found here:

    https://github.com/leaflabs/libmaple

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:

    http://leaflabs.com/docs/maple-ide-install.html

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

    http://leaflabs.com/docs/unix-toolchain.html

Documentation, Etc.
------------------------------------------------------------------------------

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

    http://leaflabs.com/docs/

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:

    http://github.com/leaflabs/leaflabs-docs/

Repository Layout
------------------------------------------------------------------------------

/build/

    Compiler output

/contrib/

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

/examples/

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

/libmaple/

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

/libraries/

    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.

/LICENSE

    Licensing and copyright information.

/main.cpp.example

    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.

/Makefile

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

/notes/

    Unstructured text notes that may be useful.

/README

    This file ;).

/support/

    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.
    stm32loader.py    Upload script for the STM32's built-in USART bootloader.

/wirish/

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