aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: f37999b804c07719ab6710726a8b2aeb375b5e40 (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
122
123
124
125
126
127

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



The latest version of this repository can be found here:

    http://github.com/leaflabs/libmaple

Instructions to Compile for ARM Targets
------------------------------------------------------------------------------

A HOWTO is available in the "Unix Toolchain Quickstart" guide at:

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

HTML documentation for this repository is automatically generated from
the source code and the files under the top-level /docs/ directory.
It is available online at:

    http://leaflabs.com/docs/

(For more information on how this documentation is generated, see
/docs/README).

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. The 45-maple.rules
    udev file can be placed in /etc/udev/rules.d/ on compatible Linux
    machines to allow non-root access to the Maple USB device for
    uploading.

/README/

    This file.

/support/

    Support files and scripts for various purposes.

    codeblocks/       [OBSOLETE] Config files for the Code::Blocks IDE.
    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.

TODO

    Various undone tasks.  Also see our bugtracker at

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

/wirish/

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