aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: 5e88e112f48b36dd2715a41468616920d6920f5d (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

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



The latest version of this repository can be found at:
http://github.com/leaflabs/libmaple

libmaple Repo Layout
------------------------------------------------------------------------------
/LICENSE
    Licensing and copyright information

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

/build/
    Binary output

/libmaple/
    Lowest level definitions, routines, macros, and functions. This is the meat
    of the library.

/wirish/
    Extra wrappers and functionality around the lower level code which is 
    useful for programming in the IDE. Files in here implement the "Wirish"
    language, an Arduino "Wiring"-like language.

/examples/
    What it sounds like. Copy these to /main.cpp to compile them.
    
/support/ld/
    Linker scripts

/support/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.

Instructions to Compile for ARM Targets
------------------------------------------------------------------------------
The best HOWTO for developing with this code is the "libmaple Unix Toolchain
Quickstart" guide at http://leaflabs.com/docs/libmaple/unix-toolchain/.

The Codesourcery g++ compiler for arm platforms is required. It is based on gcc
(they push changes into gcc a couple times a year), get the latest EABI version
from:

    http://www.codesourcery.com/sgpp/lite/arm

Note: grab the linux binaries for targeting the EABI platform (not to be 
confused with the linux binaries /tageting/ the linux platform).

I unzip the archive ("TAR") version into a directory such as 
~/bin/arm-gcc-codesourcery and then add the bin/ directory within that to my
$PATH in ~/.profile, resource that, then check that arm-none-eabi-gcc and
others are in my path.

You will also need to have dfu-util installed and on your path (on Linux) or
compiled and placed in a folder "dfu-util/" at the same level as the
maple-library folder (macosx and windows).

Write your program using /main.cpp as the entry point. Then just 'make help'
and follow the directions!