Skip to content

bnewbold/libmaple

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intro
-----------
Until we write up better docs, there's a reasonable introduction to developing
for Cortex-M3 chips using the GNU toolchain on Ubuntu at:
http://fun-tech.se/stm32/index.php

                   _ _ _                           _      
                  | (_) |__  _ __ ___   __ _ _ __ | | ___ 
                  | | | '_ \| '_ ` _ \ / _` | '_ \| |/ _ \
                  | | | |_) | | | | | | (_| | |_) | |  __/
                  |_|_|_.__/|_| |_| |_|\__,_| .__/|_|\___|
                                            |_|               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!

Build Files
------------------
After a successful build, you should see:

maple.out
    Just the aeabi executable. Explore with:
    $ arm-none-eabi-readelf -a maple.out

maple.d
    Object dump of maple.out

main.bin
    This is the binary file that will actually get loaded to the micro

src
    A directory of partial object files

About

C Library for the Maple ARM Cortex-M3 development board

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 82.2%
  • C++ 17.7%
  • Other 0.1%