nRF51822 mbed SDK with working GPIO, RawSerial, and timer
Bogdan's startup fix added.
Port, Buffer, DigitalInOut, and Spi (master) works.
The python script provided in the original repo fails trying to access an empty string as a file, this version removes any empty strings in the files to build.
SPISlave works. pwm_out works but needs more work to properly implement 0 pulse and 100% pulse.
SPISlave works.
PwmOut working.
AnalogIn, Interrupts, and I2C are added.
16-bit timer with sw overflow is used instead of the 32-bit timer.
SoftDevice is now enabled by the startup code by calling EnableSoftDevice (defined in system_nRF51822).
timer interrupts implemented correctly. TimeOut and Ticker classes should work.
timer overflow sync issue fixed.
fixes and updates after the mbed unit tests have been carried out.
Interrupt priorities set to low application level (3) in order to ensure no conflict with the SD.
SPI and I2C will accept unsupported frequencies and match them with the closest available frequency instead of generating an error.
Sleep is now implemented (deepsleep will cause nrf to work in System OFF mode).
serial will choose the nearest lower baudrate if an unsupported value is chosen.
[nRF51822] Change image generation mechanism

- The final image is now generated at "binary" step, which is compatible with
  the on-line build system structure
- The SoftDevice image is appended to the application code, resulting in a
  single .hex image file
- Python is used for merging and generating .hex files using the 'intelhex'
  module, no more dependencies on external tools
Stack and heap initialization is removed from the startup file. This solves the mbed runtime problems with the SoftDevice enabled.
Concatenated binary generation

Generate a concatenated binary image that has both the SoftDevice code and the
user code in a single binary file. NOT TESTED.
Pwm timer interrupt priority set to 1.

When timer interrupt priority is at 3, the pwm functionality can be
disturbed by an active ble connection.