Skip Navigation LinksProjects > LPC1114 Reference Design > LPC1114 Code Base

LPC1114 Code Base

An open source GCC-based software library for the Cortex-M3 based LPC1100 family

The LPC1114 Code Base is a complete open-source (BSD license) software library for NXP's Cortex-M0 based LPC1100 family, with support for all the main internal peripherals, and drivers for common hardware like SPI-based EEPROM, and an I2C temperature sensor (LM75B). The code base includes complete C startup code and an easy to understand make file and linker script for building from the command-prompt on any OS (Yagarto 4.5.0 was used for builds), as well as project files for the open-source CodeLite C/C++ IDE and the commercial GCC-based Crossworks for ARM (useful for HW debugging).

Latest Release

A final release has not yet been made yet for the LPC1114 Code Base, and we hope to publish an initial release in the next month or two.  Nonetheless, a current beta version of the LPC1114 Code Base can be downloaded here.  For the most up to date code, see 'Current Development Code' below.

Current Beta Download
Version Number Release Date Release Notes
Download 0.8.0 14 April, 2011 See Changelog.txt

Current Development Code

The LPC1114 Code Base is a work in progress.  The latest version of the code can always be found at https://github.com/microbuilder/LPC1114CodeBase

Please be advised that the current development code is experimental, and may or may not function as expected. The code is cleaned up before any final releases, but development code is often filled with debugging routines, and other code which doesn't belong in production builds.  Please keep this in mind when using current development code in your projects.

If you don't already have a GCC toolchain installed, we've put together a tutorial showing how to install them and use the LPC1114 Code Base in a Windows development environment here: Setting up a GCC Development Environment for the Cortex M0/M3.  This tutorial is relevant for both the M0 LPC1114 and the M3 LPC1343.

Documentation

A preliminary version of the documentation for the LPC1114 Code Base has been published, providing a list of all the main methods available, along with a number of basic examples. This documentation will continue to be expanded as software development continues.

License

Unless otherwise noted, the LPC1114 Code Base is provided under the BSD license. Exact license terms, conditions and copyright notices are visible in each individual source file.

Included Drivers

Drivers for the following external hardware are included in the latest release of the LPC1114 Code Base:

  • EEPROM/MCP24AA (I2C EEPROM)
  • SENSORS/LM75B (I2C Temp Sensor)
  • CHIBI - A simple, open source wireless stack from Freaklabs for sensor nodes. Configured to work with the AT86RF212 transceiver at 868MHz.
  • FATFS - A port of Chan's FATFS which includes support for FAT32, and a simple MMC driver capable of reading SDHC cards
  • SSD1306 - Driver for 128x64 pixel OLED displays (bit-banging SPI mode)
  • ST7565 - Driver for 128x64 pixel displays based on the ST7565
Other Software

The following additional software and command-line utilities are also included

  • CMD - An easy to extend command-line interface that can be used to communicate with the board via UART.
Supported Peripherals

The following system peripherals are supported in the latest release of the LPC1114 Code Base:

  • CPU (Core clock speed, etc.)
  • ADC (Analog to Digital Convertor)
  • GPIO (General-Purpose Input/Output)
  • I2C (Interrupt driven generic I2C code)
  • PMU (Power-management)
  • SSP (Generic SSP/SPI code)
  • Systick (24-bit Systick timer)
  • Timer16 (16-bit timers)
  • Timer32 (32-bit timers)
  • UART (Interrupt driven UART code)
  • WDT (Watchdog Timer)