add synchronous UART transmission and use it in exceptions

The default ISR (particularly the HardFault handler) print information,
but this information was not displayed on the console because the UART
IRQ is lower than some default blocking IRQ.
Allowing to set synchronous transfer corrects this.

The underlying Atmel exception library had to be modified to use the
synchronous output.

Making UART_PutChar always synchronous when called from an ISR is not
desired because we use TRACE_ macros is some ISR. The synchronous
output must be set explicitly.

Change-Id: I1b4ace5185cf2dc32684934ed12bf6a8682e9bad
This commit is contained in:
Kévin Redon
2018-08-02 15:02:05 +02:00
parent dd36d9b010
commit 1836ac0761
6 changed files with 108 additions and 9 deletions

View File

@@ -2,6 +2,7 @@
* ATMEL Microcontroller Software Support
* ----------------------------------------------------------------------------
* Copyright (c) 2009, Atmel Corporation
* Copyright (c) 2018, sysmocom -s.f.m.c. GmbH, Author: Kevin Redon <kredon@sysmocom.de>
*
* All rights reserved.
*
@@ -41,6 +42,7 @@
* Headers
*----------------------------------------------------------------------------*/
#define printf printf_sync
#include "chip.h"
/*----------------------------------------------------------------------------