aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: 6e4c4007bf68cafd7c2b9976698f083ed9a761c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

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



The latest version of this repository can be found here:

    http://github.com/leaflabs/libmaple

General information
------------------------------------------------------------------------------

A HOWTO on setting up this library for use in a Unix environment is
available in our online HTML documentation:

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

The HTML docs for this repository are automatically generated from the
source code and the files under the top-level /docs/ directory.  For
more information, see /docs/README.

Our bugtracker is available at:

    http://code.google.com/p/leaflabs/issues/list

For changes that block official releases, see our wiki:

    http://wiki.leaflabs.com/index.php?title=Blocking_Changes

Instructions to Create a Library
------------------------------------------------------------------------------

TODO: fold this section into the Unix Toolchain Quickstart.

If you have a complicated project with its own Makefile and multiple
source files, or you're using an IDE that creates its own Makefile,
you'll probably want to load libmaple from an archive (a build-time
library, not a DLL).

To create an archive, use the "make library" target, and install
build/libmaple.a and the appropriate headers in your project's
directory. At a minimum, the header set will include libmaple.h,
util.h, and libmaple_types.h.

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

/build/

    Compiler output

/contrib/

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

/docs/

    Source code and build scripts for Doxygen and Sphinx
    documentation.  The libmaple HTML documentation is generated from
    these files.  It is available under http://leaflabs.com/docs/.

/examples/

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

/libmaple/

    Lowest level definitions, routines, macros, and functions. This is
    the meat of the library.  The Arduino-like compatibility layer 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.

/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 scripts used by the top-level Makefile.
    openocd/          OpenOCD scripts for JTAG debugging.
    scripts/          Miscellany.
    stm32loader.py    Script for uploading via the built-in USART bootloader.

/wirish/

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