add exporter
Separated the c data initialization and c++ to call mbed_sdk_init before c++ data. So that the c variables are updated before the c++ objects are initialized. Had to rename the cmain override in RTX_CM_lib.h to __iar_program_start because there can not be two __cmain overrides in the project. The ewps had to be updated to add the linker command --skip_dynamic_initialization which stalls the c++ data init until __iar_dynamic_initialization which is called right after mbed_sdk_init.
Merge remote-tracking branch 'upstream/master' into iar_mbed
Add the timer value wraparound processing to common wait processing

Timer value wraparound operation had not been considered in common wait process.
By defining the EXPIRE_US non-zero value, wraparound operation is enabled.
The EXPIRE_US will be define the value of each vender-specific.
If EXPIRE_US is 0, the common wait process is same as before.
Added skip dynamic initialization to mts mdot f411re ewp
Revert "Add the timer value wraparound processing to common wait processing"

This reverts commit cd8f65c94b4b6943116a72b4fb34cdacff3f948c.
Add the timer value wraparound processing to us_ticker

Timer value wraparound operation had not been considered in us_ticker.
So, User could not set upper than 128s to argument of wait().
Update upstream pushed files
updated latest changes from nucleo
changed device name from nRF51822_xxAA -> nRF51xxx on all Nordic boards. This change is necessary due to a conflict with KeilV4 naming
Add some terminal setting of Serial and modify attach sequence.

Fix some bugs of Serial as below.
- TX/RX terminal of XBee(P7_4, P7_5) setting is reverse.
- P5_6 and P5_7 terminals can not be used.
- Tx interrupt will not occur at the right timing.
- There are no settings of WIFI Module terminals(P11_10,P11_11).
- There are no settings of Xbee Module terminals(P6_6,P6_7).
Remove needless processing regarding Interrupt.

EOIR writing will be done in IRQ handler.
EOIR writing is needless in each interrupt processing.
Add terminal defines of PWM and fix a bug that period can not be changed.

Fix a bug as below.
- Period can not be changed.
   Restructions: 1. The upper limits is 491us
                             2. Change all period of the same channel when changing period.
Fix a bug that coding mistakes of L2 cache

Coding mistakes as below.

   while(PL310->INV_WAY && ((1 << assoc) - 1)); ->
   while(PL310->INV_WAY & ((1 << assoc) - 1));

   PL310->INTERRUPT_CLEAR = 0; ->
   PL310->INTERRUPT_CLEAR = 0x000001FFuL;
[DISCO_F4xx][NUCLEO_F4xx][MDOT_F4] solving RTOS problem

- Changing original STM Cube Driver to call _start instead of main to
initialise the rtos when using it. Without using rtos the behavior is
the same as before.
- Adding DISCO_F429 to rtos
- Adding targets to RTOS_xx tests.
- All tests are OK. Tested with Nucleo and Disco boards. Not tested with
MDOT_F4 but that uses the same hal like nucleo_f411.
[DISCO_F429ZI] changed clock settings

Original STM32Cube F4 driver sets SYSCLK for STM32F429 to 16MHz. This
adds a 168MHz and 180MHz configuration to system_stm32f4xx.c generated
by STM32CubeMX code generator. The rtos clock configuration is changed
too. In singletest.py run everything is OK.
Merge pull request #768 from mazgch/master

add CooCox exporter for C027
Merge pull request #780 from GustavWi/iar_mbed

IAR: skip dynamic initialization, new common IAR startup file
Merge pull request #784 from masaohamanaka/master

Targets: RZ_A1H - Add the timer value wraparound processing to us_ticker
Merge pull request #790 from BlackstoneEngineering/NordicKeilFix

Tools: changed device name from nRF51822_xxAA -> nRF51xxx on all Nordic boards