mirror of https://github.com/ARMmbed/mbed-os.git
[M487] Fix emitting uvisor core debug message through USB VCOM
parent
e49ceb173e
commit
d709deffc6
|
@ -10,6 +10,7 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#include "M480.h"
|
#include "M480.h"
|
||||||
|
#include "PeripheralNames.h"
|
||||||
|
|
||||||
/* Suppress warning messages */
|
/* Suppress warning messages */
|
||||||
#if defined(__CC_ARM)
|
#if defined(__CC_ARM)
|
||||||
|
@ -425,6 +426,14 @@ void Reset_Handler_2(void)
|
||||||
*/
|
*/
|
||||||
#if defined(FEATURE_UVISOR)
|
#if defined(FEATURE_UVISOR)
|
||||||
uvisor_init();
|
uvisor_init();
|
||||||
|
|
||||||
|
#if defined(TARGET_UVISOR_SUPPORTED) && defined(TARGET_DEBUG)
|
||||||
|
/* Flush debug message emitted by uvisor core */
|
||||||
|
while (! UART_IS_TX_EMPTY((UART_T *) NU_MODBASE(STDIO_UART)));
|
||||||
|
|
||||||
|
/* In the following, STDIO_UART will be re-initialized by mbed but it would be compatible with uvisor core.
|
||||||
|
* So uvisor core still can emit debug message with the new setting. */
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__CC_ARM)
|
#if defined(__CC_ARM)
|
||||||
|
|
|
@ -198,13 +198,6 @@ void serial_init(serial_t *obj, PinName tx, PinName rx)
|
||||||
|
|
||||||
if (! var->ref_cnt) {
|
if (! var->ref_cnt) {
|
||||||
do {
|
do {
|
||||||
#if defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED) && defined(TARGET_DEBUG)
|
|
||||||
// Support uvisor debug message through stdio uart
|
|
||||||
if (obj->serial.uart == STDIO_UART) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Reset this module
|
// Reset this module
|
||||||
SYS_ResetModule(modinit->rsetidx);
|
SYS_ResetModule(modinit->rsetidx);
|
||||||
|
|
||||||
|
@ -273,13 +266,6 @@ void serial_free(serial_t *obj)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
do {
|
do {
|
||||||
#if defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED) && defined(TARGET_DEBUG)
|
|
||||||
// Support uvisor debug message through stdio uart
|
|
||||||
if (obj->serial.uart == STDIO_UART) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
UART_Close((UART_T *) NU_MODBASE(obj->serial.uart));
|
UART_Close((UART_T *) NU_MODBASE(obj->serial.uart));
|
||||||
|
|
||||||
UART_DISABLE_INT(((UART_T *) NU_MODBASE(obj->serial.uart)), (UART_INTEN_RDAIEN_Msk | UART_INTEN_THREIEN_Msk | UART_INTEN_RXTOIEN_Msk));
|
UART_DISABLE_INT(((UART_T *) NU_MODBASE(obj->serial.uart)), (UART_INTEN_RDAIEN_Msk | UART_INTEN_THREIEN_Msk | UART_INTEN_RXTOIEN_Msk));
|
||||||
|
@ -306,13 +292,6 @@ void serial_free(serial_t *obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_baud(serial_t *obj, int baudrate) {
|
void serial_baud(serial_t *obj, int baudrate) {
|
||||||
#if defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED) && defined(TARGET_DEBUG)
|
|
||||||
// Support uvisor debug message through stdio uart
|
|
||||||
if (obj->serial.uart == STDIO_UART) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Flush Tx FIFO. Otherwise, output data may get lost on this change.
|
// Flush Tx FIFO. Otherwise, output data may get lost on this change.
|
||||||
while (! UART_IS_TX_EMPTY((UART_T *) NU_MODBASE(obj->serial.uart)));
|
while (! UART_IS_TX_EMPTY((UART_T *) NU_MODBASE(obj->serial.uart)));
|
||||||
|
|
||||||
|
@ -321,13 +300,6 @@ void serial_baud(serial_t *obj, int baudrate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||||
#if defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED) && defined(TARGET_DEBUG)
|
|
||||||
// Support uvisor debug message through stdio uart
|
|
||||||
if (obj->serial.uart == STDIO_UART) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Flush Tx FIFO. Otherwise, output data may get lost on this change.
|
// Flush Tx FIFO. Otherwise, output data may get lost on this change.
|
||||||
while (! UART_IS_TX_EMPTY((UART_T *) NU_MODBASE(obj->serial.uart)));
|
while (! UART_IS_TX_EMPTY((UART_T *) NU_MODBASE(obj->serial.uart)));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue