nuttx/arch/arm/src/lpc214x
Xiang Xiao 6a3c2aded6 Fix wait loop and void cast (#24)
* Simplify EINTR/ECANCEL error handling

1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx

* Unify the void cast usage

1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
..
chip.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
Kconfig Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
lpc214x_apb.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
lpc214x_decodeirq.c Remove lowsyslog(). The new syslog() includes all of the functionality of lowsyslog(). No longer any need for two interfaces. 2016-06-20 08:57:08 -06:00
lpc214x_head.S Fix use of undefined pp-token #errror, other typos. 2019-09-19 18:19:18 -06:00
lpc214x_i2c.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
lpc214x_irq.c ARM: Fix missing header file. Update comments in all *_irq.c files. 2016-03-09 15:08:58 -06:00
lpc214x_lowputc.S Standard some naming if code sectino comments 2016-02-21 18:06:09 -06:00
lpc214x_pinsel.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
lpc214x_pll.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
lpc214x_power.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
lpc214x_serial.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
lpc214x_spi.h Fix some typos 2019-09-17 10:46:23 -06:00
lpc214x_timer.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
lpc214x_timerisr.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
lpc214x_uart.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
lpc214x_usbdev.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
lpc214x_usbdev.h Standardize the width of all comment boxes in C header files 2015-10-03 07:28:30 -06:00
lpc214x_vic.h Fix names of pre-processor variables used in header file idempotence 2016-08-06 18:48:45 -06:00
Make.defs Squashed commit of the following: 2019-04-29 14:52:05 -06:00
README.txt More trailing whilespace removal 2014-04-13 16:22:22 -06:00

General Description
^^^^^^^^^^^^^^^^^^^

http://www.nxp.com/pip/LPC2141FBD64.html:

The LPC2141/42/44/46/48 microcontrollers are based on a 16-bit/32-bit ARM7TDMI-S
CPU with real-time emulation and embedded trace support, that combine
microcontroller with embedded high-speed flash memory ranging from 32 kB to
512 kB. A 128-bit wide memory interface and a unique accelerator architecture
enable 32-bit code execution at the maximum clock rate. For critical code size
applications, the alternative 16-bit Thumb mode reduces code by more than 30 pct
with minimal performance penalty.

Due to their tiny size and low power consumption, LPC2141/42/44/46/48 are ideal
for applications where miniaturization is a key requirement, such as access
control and point-of-sale. Serial communications interfaces ranging from a USB 2.0
Full-speed device, multiple UARTs, SPI, SSP to I2C-bus and on-chip SRAM of 8 kB
up to 40 kB, make these devices very well suited for communication gateways and
protocol converters, soft modems, voice recognition and low end imaging, providing
both large buffer size and high processing power. Various 32-bit timers, single
or dual 10-bit ADC(s), 10-bit DAC, PWM channels and 45 fast GPIO lines with up
to nine edge or level sensitive external interrupt pins make these microcontrollers
suitable for industrial control and medical systems.


Features
^^^^^^^^

o 16-bit/32-bit ARM7TDMI-S microcontroller in a tiny LQFP64 package.
o 8 kB to 40 kB of on-chip static RAM and 32 kB to 512 kB of on-chip flash memory.
  128-bit wide interface/accelerator enables high-speed 60 MHz operation.
o In-System Programming/In-Application Programming (ISP/IAP) via on-chip boot
  loader software. Single flash sector or full chip erase in 400 ms and programming
  of 256 B in 1 ms.
o EmbeddedICE RT and Embedded Trace interfaces offer real-time debugging with the
  on-chip RealMonitor software and high-speed tracing of instruction execution.
o USB 2.0 Full-speed compliant device controller with 2 kB of endpoint RAM. In addition,
  the LPC2146/48 provides 8 kB of on-chip RAM accessible to USB by DMA.
o One or two (LPC2141/42 vs. LPC2144/46/48) 10-bit ADCs provide a total of 6/14 analog
  inputs, with conversion times as low as 2.44 us per channel.
o Single 10-bit DAC provides variable analog output (LPC2142/44/46/48 only).
o Two 32-bit timers/external event counters (with four capture and four compare
  channels each), PWM unit (six outputs) and watchdog.
o Low power Real-Time Clock (RTC) with independent power and 32 kHz clock input.
o Multiple serial interfaces including two UARTs (16C550), two Fast I2C-bus (400
  kbit/s), SPI and SSP with buffering and variable data length capabilities.
o Vectored Interrupt Controller (VIC) with configurable priorities and vector addresses.
o Up to 45 of 5 V tolerant fast general purpose I/O pins in a tiny LQFP64 package.
o Up to 21 external interrupt pins available.
o 60 MHz maximum CPU clock available from programmable on-chip PLL with settling
  time of 100 us.
o On-chip integrated oscillator operates with an external crystal from 1 MHz to 25 MHz.
o Power saving modes include Idle and Power-down.
o Individual enable/disable of peripheral functions as well as peripheral clock scaling
  for additional power optimization.
o Processor wake-up from Power-down mode via external interrupt or BOD.
o Single power supply chip with POR and BOD circuits:
o CPU operating voltage range of 3.0 V to 3.6 V (3.3 V +- 10 pct) with 5 V tolerant
  I/O pads.