![]() |
LPCOpen Platform
v1.03
LPCOpen Platform for NXP LPC Microcontrollers
|
Chip layer code
The Chip layer provides the drivers for a family of devices. These include peripheral and interface drivers for everything from the ADC to the UART, but also driver support for non-interface blocks such as the clock tree, pin muxing, or general purpose I/O.
Common chip layer code
The "<LPCOPEN_PATH>\software\lpc_core\lpc_chip\chip_common" directory contains shared code, such as ring buffer implementations or memory tests, that are used on multiple devices and are considered chip neutral.
There is a set of Chip drivers for each supported Cortex family:
LPC8xx chip specific drivers
LPC11xx chip specific drivers
LPC13xx chip specific drivers
LPC17xx/40xx chip specific drivers
LPC18xx/43xx chip specific drivers
What about the IP layer code!?!?
The IP layer provides a pool of common driver functions that are shared across multiple devices and use in the Chip drivers. The IP layer functions are used by Chip layer functions when needed. The IP drivers can change (or disappear) while not impacting the Chip drivers.
As the LPCOpen code matures, IP layer functions may be replaced with better optimized functions directly in the Chip drivers.
The chip.h file
The chip.h file is a single include file that includes all the necessary Chip and IP layer drivers for the system. When using Chip layer drivers in other applications or layer, only the chip.h file needs to be included.
Including chip.h requires that the necessary Chip include path for the device family and the IP include path are in the tool's inclusion list.
Example:
To include chip.h for the LPC1788 device, the compiler must have at least the following include paths in it's inclusion list.
"<LPCOPEN_PATH>\software\lpc_core\lpc_ip"
"<LPCOPEN_PATH>\software\lpc_core\lpc_chip\chip_common"
"<LPCOPEN_PATH>\software\lpc_core\lpc_chip\chip_17xx_40xx"