Adding new Kinetis flash driver with target for K64FN1M0.

- New flash driver sources added. Will probably be moved to a location
  where it can be shared with bootloader.
- CMSIS plus extension register definition headers for Kinetis, required
  by flash driver.
- The modified flash algo implementation is in FlashPrg_new.c.
- MKXX.uvproj updated with new target for K64FN1M0 flash algo.
- Updated flash blob for K64.
- Added .gitignore in MKXXX directory.
Added some patterns to gitignore files.

- JLink ini and log files.
- Output directories created by MDK.
- Tags files.
Merge branch 'dev_k64f_interface' into dev_new_kinetis_flash_driver

* dev_k64f_interface:
  New script to automate building of all projects.
  Fixed interface projects.
  Serialize access to the uart driver calls
  Fix non posix compliant include paths
  Support for TWR-KL25Z48M board.
  Add newline at end of gitignore
  Properly set tx_in_progress flag
  Enabled .s19 and .bin generation for all Kinetis interface targets.
  Fixed .s19 output filenames for KL02 and KL26 interface targets.
  Corrected KL26 flash blob.
  KL02 and KL26 Freedom board support.
  Initial commit for fixing K20 UART
  Use project local usb.h
  Update top level gitignore with cscope and ctags files

Conflicts:
	.gitignore
New flash driver for all Freedom boards.

- Completely replaced old C90TFS flash driver with new driver and
  project that builds the flash algos for specific part numbers.
- Updated register headers.
- Renamed FlashPrg.c to flash_algo.c.
- Removed FlashDev.c and corresponding section in Target.lin.
- Few minor changes to flash driver to support FTFL variant of the
  flash controller used on the K20.
- Changed flash_command_sequence() to disable interrupts itself during
  the flash command operation.
- Updated flash_features.h with missing part numbers.
- Changed flash blobs for all debug targets to use new flash driver.
- Added readme in DBG_Freescale folder with list of CPU part numbers
  used on the different Freedom boards.
Commonized Kinetis target flash routines.

- Moved declarations for target flash API to target_flash_common.h.
- Moved implementation for target flash API to target_flash_common.c.
- target_flash.h files now only have the sector size and auto-increment
  page size constants.
- There are new target_flash.inc files for each debug target that have
  the flash blob and TARGET_FLASH struct. These .inc files are included
  by target_flash_common.c, rather than have them as .c files, mostly to
  simplify the project file.
- Updated interface project file with new sources, and added the
  DBG_Freescale/common directory as an include path.

Signed-off-by: Chris Reed <flit@me.com>
Updated common CMSIS headers to latest versions.

Signed-off-by: Chris Reed <flit@me.com>
Minor updates to DAP source to match official release.
Moved Kinetis flash driver to shared directory.

- Moved flash driver to shared/flash_algo/TARGET_Freescale.
- Moved register headers to shared/cmsis/TARGET_Freescale.
- Removed duplicate CMSIS core headers.
- Updated MKXX.uvproj with new include paths.
- Fixed misspelled MK64FN1M0 target name in build.py.
- Added a bash script to generate all of the Kinetis flash blobs in
  a single run.
- Added *.txt to MKXXX directory .gitignore, to ignore the flash blob
  output text files.
- Updated debug target flash blobs with latest build. Still needs testing.

Signed-off-by: Chris Reed <flit@me.com>
Commented gen_flash_algos.sh script.
Updated Kinetis flash driver to latest version.

Signed-off-by: Chris Reed <flit@me.com>
Changed K20 bootloader to use new flash driver.

- Renamed flash.h/c in bootloader to flash_hal.h/c, and renamed flash
  HAL routines to have a flash_hal_ prefix, to prevent symbol name
  clashes between the bootloader's flash HAL and the Kinetis flash
  driver.
- Fixed a couple warnings about set but unused variables in usbd_user_msc.c.
- Removed old C90TFS flash driver from bootloader HAL.
- Reimplemented bootloader flash HAL to use new flash driver.
- k20dx128 project file updates.
- Set --c99 option on usbd_user_msc.c in lpc11u35 project to get it to
  build, but there are now link errors.

Signed-off-by: Chris Reed <flit@me.com>
Added doc directories with Doxygen config files.

- Doxy config files are set up to generate and use tags files, but
  there seem to be bugs in Doxygen that prevent links between the
  html output from working.
Cleaned up target_flash.inc files.

- Also changed flash driver calls to pass 1 for erase size instead
  of the sector size, to ensure a single sector is erased.
- Some minor project updates.

Signed-off-by: Chris Reed <flit@me.com>
Merge commit 'e838affeded81fffb47a29dbdf28cdc8723e188d' into dev_new_kinetis_flash_driver

* commit 'e838affeded81fffb47a29dbdf28cdc8723e188d': (46 commits)
  Fixed build failures for Kinetis interface targets.
  Remove opendrain option for Bambino 210/210E
  Updated USB fixes so that new drivers are not required.
  Keil fixed for USB.
  Add SYSRESETREQ option, fix JTAG I/O, LPC4330 flash_algo
  Remove semihosting as being enabled by default. Update to mass erase for Kinetis devices. Single startup file for all K20DX128 builds. Project file changes to output dir and may break concatenate.py
  Reverting commit f7633ba as it has broken CMSIS-DAP debugging.
  Proposed changes to flash_algo_gen.py
  Removed the flash_algo_gen.py change
  Proposed change to flash_algo_gen.py
  Fixed erase chip bug for LPC1549 and added 0.5s delay to usb eject/insert
  no need to enable timer (now that we switched from IRC to XTAL)
  - allow to enter the NXP ISP by pressing the push button - need to be in privileged mode when entering ISP (use SVC_2)
  Added support for the LPC11U68 LPCXpresso Board and the LPC1549 LPCXpresso Board
  LPC11u35 interface: Updating USB PLL Clock Source to use System Oscillator.
  Add support for JTAG option
  HDK: Add support for LPC SPIFI flash, LPC43xx targets, Micromint Bambino
  Fixing lpc11u35 HDK firmware to use external 12Mhz XTAL.
  Bootloader changes: reduce USB buffer, add compiler flag and limit flash to 0x5000 on linker script
  Fixed compile error when BOARD_UBLOX_C027 not set
  ...

Signed-off-by: Chris Reed <flit@me.com>

Conflicts:
	bootloader/Common/src/usbd_user_msc.c
	bootloader/hal/TARGET_Freescale/TARGET_MK20DX/C90TFS/drvsrc/include/ConfigureKeil.h
	bootloader/hal/TARGET_Freescale/TARGET_MK20DX/flash.c
	interface/Common/src/JTAG_DP.c
	interface/mdk/k20dx128/k20dx128_interface.uvproj
	tools/flash_algo_gen.py
Added K22F512 debug target build.

Signed-off-by: Chris Reed <flit@me.com>
Got K22F flash and interface targets building again.

- Moved K22F51212 register headers to shared cmsis.
- Updated fsl_flash_features.h to latest.
- Fixed K22F targets of flash_algo and interface projects.
- Regenerated flash blob for K22F.
- Minor change to flash_algo_gen.py to use a default base address if
  the DevDscr file is not present.

Signed-off-by: Chris Reed <flit@me.com>
Updated flash blobs for Kinetis targets.

Signed-off-by: Chris Reed <flit@me.com>
Fixed Kinetis L-series flash algos, regenerated flash blobs.

- Fixed L-series flash algos by setting target device to CM0+.
- Removed flash_get_property.c from flash algo builds.
- Updated flash blobs for all Kinetis targets.

Signed-off-by: Chris Reed <flit@me.com>
Merge branch 'master' into dev_new_kinetis_flash_driver

* master:
  Remove unnecessary file CMSIS-DAP - Shortcut.lnk
  Fixed bootloader builds.
  Update revision to 0202
  Added pre-commit script to tag all builds with git SHA. Fixed the freedom board builds.

Conflicts:
	bootloader/mdk/k20dx128/k20dx128_bootloader.uvproj
	bootloader/mdk/lpc11u35/lpc11u35_bootloader.uvproj
	interface/mdk/k20dx128/k20dx128_interface.uvproj
Serialize access to the uart driver calls

All calls to UART functions now only happen inside of the serial task