Update/Use enums for ports definitions
[lpc82x] / README
1 This repository provides support and example code for LPC82x based boards.
3 It has support for the LPC82x micro-controller and the peripherals used on
4 the boards we made.
5 Support for various other cool stuff is added when we play with it.
7 Example applications are created in the apps/[module name] directories for
8 each module, with one sub-directory for each application. These are (and must
9 stay) independent.
10 Each module has it's own directory under apps/.
12 More usefull stuff is up to you. Creating an app is *very* simple. Copy
13 an example from apps/[module name]/ to the name you want and start coding.
14 ** Please, no spaces (or special characters) in the directory names ! **
17 ********************
18 BUID and FLASH
20 Build has been tested using gcc, and only gcc, in the version provided by
21 Debian GNU/Linux distribution, and a few other binary versions available for
22 download on the Internet, but any ARM gcc toolchain should do.
24 In order to get the debian ARM gcc cross-toolchain you should install the
25 following packaages : gcc-arm-none-eabi, binutils-arm-none-eabi
27 There's no need for the related libc package here, the libc does not fit
28 in our micro-controller memory. Instead have a look at the content of the
29 lib/ directory, and add stuff there.
31 Once done you should build using the provided makefile by running the
32 simple "make" command in the base directory, which will build all apps, or
33 run "make <module_name>/<app_name>" to build a specific application. You can
34 also run the simple "make" command in the specific app subdirectory to compile
35 this application alone.
37 To flash the binary (the one with .bin) to the LPC Flash you will need the
38 lpctool package, now packaged for Debian, starting with Jessie, or available
39 in our git repository : http://git.techno-innov.fr/lpctools (Clone using :
40 git clone http://gitclone.techno-innov.fr/lpctools and then build (make) and
41 use :)
42 Usual command lines :
43    lpcprog -d /dev/ttyUSB0 -c id
44    lpcprog -d /dev/ttyUSB0 -c flash app_name.bin
45 See lpctools readme and lpcprog or isp help (-h) or manpages for more
46 information.
49 ********************
50 SUPPORTED FEATURES and INTERFACES
52 - LPC82x micro-controller definitions
53    - Cortex-M0 specific definitions
54    - Cortex-M0 and LPC82x Registers
55    - Interrupts
56    - ROM based division routines
57    - Utility functions to replace ctz and clz instructions (not present in Cortex M0)
58    - IAP ROM based functions (Not tested on LPC82x)
60 - Bootstrap
61    - vector table
62    - reset handler
64 - System
65    - watchdog (Not tested yet)
66    - clock / PLL config (Tested using internal RC only)
67    - systick
68    - precise msleep and usleep functions (using systick)
69    - pio configuration
71 - Simple C Library
72    - memcpy and memset
73    - strcpy, strncpy, strcmp, strncmp, strchr, strrchr, strlen, strnlen
74    - snprintf, vsnprintf
75    - uprintf for easy debug over UART
77 - Integrated Interface drivers
78    - UART (as UART or RS485)
79    - I²C
80    - ADC
81    - GPIO
82    - GPIO interrupts
84 - External Device drivers
85    - TMP101 I²C temperature sensor
86    - WS2812 chainable leds
88 - Other
91 ********************
92 TODO :
94 - Sleep mode support
95 - Test all the GPIO in different modes
96 - Add SPI Support
97 - Comparator support
98 - Test Watchdog support
99 - CRC engine support
100 - DMA support
101 - More external drivers !