From 3a2d55f6b73373cb0238e4d5a307e017849d94a7 Mon Sep 17 00:00:00 2001 From: pln <Per Lindgren> Date: Mon, 13 Mar 2017 17:01:27 +0000 Subject: [PATCH] function instead of macro for trace event --- include/SRP_wcet.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/include/SRP_wcet.h b/include/SRP_wcet.h index 8894583..43e1087 100644 --- a/include/SRP_wcet.h +++ b/include/SRP_wcet.h @@ -33,7 +33,7 @@ typedef enum E } action; -typedef struct locks +typedef struct { /* The DWT counter value */ uint32_t time; @@ -42,25 +42,28 @@ typedef struct locks /* If locked or released */ action action; -} locks; +} event; int event_count = 0; /* Create array containing structs of type locks */ #define MAX_NUM_LOCKS 10 -locks eventlist[MAX_NUM_LOCKS]; - -#define TRACE_EVENT(event, el)({eventlist[event_count].time = DWT->CYCCNT; eventlist[event_count].action = event; eventlist[event_count].elem = el; event_count+=1;}) +event eventlist[MAX_NUM_LOCKS]; +void __attribute__ ((noinline)) trace_event(action a, event e) { + eventlist[event_count].time = DWT->CYCCNT; + eventlist[event_count].action = a; + eventlist[event_count].elem = e; + event_count+=1; +} +#define LOCK(X) trace_event(L, X); +#define UNLOCK(X) trace_event(R, X); #define IRQh(J) (J##_IRQh) #define JOB_REQUEST(J) { } -#define LOCK(X) TRACE_EVENT(L, X); -#define UNLOCK(X) TRACE_EVENT(R, X); - #define TASK(J) void IRQh(J) () #define BREAKPOINT -- GitLab