mbed-os/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453
ccli8 e7b737ddad [NUC472/M453] Fix serial error with sync/async calls interlaced
Serial implementation uses different vector handlers for sync/async calls respectively. The issue can be reproduced with the following flow:
1. Register sync mode callback with Serial.attach().
2. Sync call with Serial.putc()/getc().
3. Change to async call with Serial.write()/read().
4. Change back to sync call with Serial.putc()/getc().
Now, vector handller is still for async mode, not for sync mode.

To fix it:
1. Introduce internal function serial_enable_interrupt() for both sync/async vector handler enable/disable.
   Original HAL function serial_irq_set() is reduced to call it for sync mode vector handler enable/disable.
2. Introduce internal function serial_rollback_interrupt() to roll back sync mode vector handler at end of async transfer.
2017-05-02 09:31:09 +08:00
..
PeripheralNames.h [NUC472/M453] Refine pin/peripheral/pin map definitions 2017-03-10 16:18:14 +08:00
PeripheralPins.c [M453] Remove SPI MOSI1 and MISO1 pins from pinmap 2016-11-22 09:56:54 +08:00
PeripheralPins.h [M453] Support CAN 2016-10-20 15:12:36 +08:00
PinNames.h [NUC472/M453] Refine pin/peripheral/pin map definitions 2017-03-10 16:18:14 +08:00
PortNames.h Support NUMAKER_PFM_M453 2016-10-11 10:55:08 +08:00
device.h [NUC472/M453] Remove dead code in device.h 2016-11-07 10:59:42 +08:00
mbed_overrides.c [M453] Fix CI tests-api-analogin failed 2016-11-22 09:56:53 +08:00
objects.h [NUC472/M453] Fix serial error with sync/async calls interlaced 2017-05-02 09:31:09 +08:00