aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/src/simtrace/main_simtrace.c
diff options
context:
space:
mode:
authorMin Xu <min.xu@min-info.net>2014-10-25 20:55:01 +0200
committerHarald Welte <laforge@gnumonks.org>2014-11-11 22:30:54 +0100
commitab325fc295a23d04f27cc7300b12d2564e4d83e6 (patch)
tree7ded03272565766e166b04c20fa18ff94ef3ac9c /firmware/src/simtrace/main_simtrace.c
parent9bd1b003a63d61e91db3827c2b66290abc1adf13 (diff)
Ensure to transmit current req_ctx on RESET/VCC events
When any of the following events occur: * VCC_PHONE off * nRST * RST we tranmsit the current req_ctx, if there is data pending. This ensures that for any successive data, the ATR flag in the next req_ctx containing the data, not in the previous req_ctx. It also ensures that the ATR is aligned at 0 offset in the new req_ctx, which is an assumption the host software makes but the previous code didn't ensure. Furthermore, we introduce a periodic flushing of any pending but incomplete req_ctx.
Diffstat (limited to 'firmware/src/simtrace/main_simtrace.c')
-rw-r--r--firmware/src/simtrace/main_simtrace.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/firmware/src/simtrace/main_simtrace.c b/firmware/src/simtrace/main_simtrace.c
index ca4e646..6bad290 100644
--- a/firmware/src/simtrace/main_simtrace.c
+++ b/firmware/src/simtrace/main_simtrace.c
@@ -231,6 +231,9 @@ void _main_func(void)
if ((loopLow & 0xFFFF) == 0) {
DEBUGPCR("Heart beat %08X", loopHigh++);
}
+ if ((loopLow & 0x3FF) == 0) {
+ iso_uart_idleflush();
+ }
loopLow++;
iso_uart_report_overrun();