#include "util.h"
#include "string.h"
#include "apps.h"
+#include "BigBuf.h"
+int tracing = TRUE;
void print_result(char *name, uint8_t *buf, size_t len) {
}
void clear_trace() {
- memset(trace, 0x44, TRACE_SIZE);
+ uint8_t *trace = BigBuf_get_addr();
+ uint16_t max_traceLen = BigBuf_max_traceLen();
+ memset(trace, 0x44, max_traceLen);
traceLen = 0;
}
{
if (!tracing) return FALSE;
+ uint8_t *trace = BigBuf_get_addr();
+
uint16_t num_paritybytes = (iLen-1)/8 + 1; // number of valid paritybytes in *parity
uint16_t duration = timestamp_end - timestamp_start;
// Return when trace is full
- if (traceLen + sizeof(iLen) + sizeof(timestamp_start) + sizeof(duration) + num_paritybytes + iLen >= TRACE_SIZE) {
+ uint16_t max_traceLen = BigBuf_max_traceLen();
+
+ if (traceLen + sizeof(iLen) + sizeof(timestamp_start) + sizeof(duration) + num_paritybytes + iLen >= max_traceLen) {
tracing = FALSE; // don't trace any more
return FALSE;
}
-
// Traceformat:
// 32 bits timestamp (little endian)
// 16 bits duration (little endian)
}
traceLen += num_paritybytes;
+ if(traceLen +4 < max_traceLen)
+ { //If it hadn't been cleared, for whatever reason..
+ memset(trace+traceLen,0x44, 4);
+ }
+
return TRUE;
}