LPCOpen for Embedded Artists' LPC4357 OEM Board and OEM Base Board
==================================================================

The port is based on the 2.12 version of LPCOpen for the Keil MCB4300 board.
The original can be downloaded from www.lpcware.com.

The goal has been to keep the code unmodified whenever possible to make it
possible to update the package when new versions of LPCOpen are released.


Notes:
	* This is stated in the LPCOpen documentation as well, but it is repeated
	  here as it is very easy to overlook. 
	  
	  THE KEIL/IAR EXAMPLES MUST BE EXTRACTED WITH AS SHORT A PATH AS 
	  POSSIBLE. WITH A TOO LONG PATH THE TESTS WILL FAIL WITH STRANGE ERRORS.

	* Some of the examples in the original code have been removed as they
	  were either incompatible or not possible to get running.

	* The SPIFI library had to be replaced/extended to support the QSPI
	  flash (S25FL012K) mounted on the OEM Board

	* A set of new examples were added:
		- ea_audio_i2s\
		- ea_display_expansion\
		- ea_memreg\
		- ea_nandflash\
		- ea_norflash\
		- ea_speaker_wav\
		- ea_touch_calibration\

	* The following examples compiles but due to lacking test hardware they
	  have not been verified yet:
		- lpcusblib_AudioOutputHost\
		- periph_ccan\

	* Unless the example's readme.txt file specifies otherwise, the OEM Base Board
	  should have it's jumpers set as described in the Default Jumpers Positions
	  section in the User's Manual.

	* Most examples writes progress information on the UART which can be read by
	  connecting a USB cable from the PC to port J25 on the OEM Base Board and
	  opening the COM port in a terminal program with 155K8N1.

	* The available LEDs on the OEM Base Board are of two types:
		- The first 8 (0-7) are controlled with a PC9532 port expander using I2C.
		- The remaining 16 (8-31) are memory mapped

	  None of the LEDs are direct GPIO controlled so special care has to be taken
	  to avoid racing conditions when using them. This is most apparent in the
	  RTOS examples but can appear as well when blinking in an interrupt handler.

	  In an RTOS environment like freertos all calls to Board_Set_LED() should be
	  surrounded with xSemaphoreTake(...) and xSemaphoreGive(...) to avoid racing
	  conditions.

	  In multicore examples it could be good to let one core use PCA9532 ones and
	  another core use the memory mapped one.

	* The IAR examples are still in the package but NONE of them have been tested.
	  Use them as a starting point, but when in doubt, look at the uVision or
	  LPCXpresso projects to see the correct settings.
	  
	* Note that to use the emWin examples you MUST download the emWin libraries 
	  and headers separately and install them according to the instructions.txt 
	  found in the emWin folders.

