From c285c2a3c7088e9923d0f639de8cf35bc161c28c Mon Sep 17 00:00:00 2001 From: Per Lindgren <per.lindgren@ltu.se> Date: Wed, 15 Mar 2017 21:54:24 +0100 Subject: [PATCH] TRACE related macros fixed --- include/SRP_wcet.h | 13 +++++++------ src/main.c | 26 +++++++++++++------------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/include/SRP_wcet.h b/include/SRP_wcet.h index 43e1087..f78ba58 100644 --- a/include/SRP_wcet.h +++ b/include/SRP_wcet.h @@ -50,21 +50,22 @@ int event_count = 0; /* Create array containing structs of type locks */ #define MAX_NUM_LOCKS 10 event eventlist[MAX_NUM_LOCKS]; -void __attribute__ ((noinline)) trace_event(action a, event e) { +void __attribute__ ((noinline)) trace_event(action a, elem 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 TRACE_EVENT(A,E) trace_event(A, E); +#define LOCK(X) trace_event(L, X); +#define UNLOCK(X) trace_event(R, X); -#define IRQh(J) (J##_IRQh) +#define IRQh(J) (J##_IRQh) -#define JOB_REQUEST(J) { } +#define JOB_REQUEST(J) { } -#define TASK(J) void IRQh(J) () +#define TASK(J) void IRQh(J) () #define BREAKPOINT diff --git a/src/main.c b/src/main.c index e71bd2c..203e27c 100644 --- a/src/main.c +++ b/src/main.c @@ -3,11 +3,11 @@ #ifdef KLEE #include "SRP_klee.h" -#define TRACE(X) {} +#define ITM_TRACE(X) {} #elif defined KLEE_WCET #include "SRP_wcet.h" -#define TRACE(X) {} +#define ITM_TRACE(X) {} #else // Production code @@ -21,7 +21,7 @@ #include <stm32f401xe.h> #include "SRP.h" -#define TRACE(X) trace_printf(X) +#define ITM_TRACE(X) trace_printf(X) #endif // job bindings @@ -56,7 +56,7 @@ void work(int i) TASK(j1) { - TRACE("j1_enter\n"); + ITM_TRACE("j1_enter\n"); LOCK(r2); if (state > 0) { work(10); @@ -64,18 +64,18 @@ TASK(j1) work(5); } LOCK(r1); - TRACE("j1_r1_locked\n"); + ITM_TRACE("j1_r1_locked\n"); work(1); - TRACE("j1_r1_locked\n"); + ITM_TRACE("j1_r1_locked\n"); UNLOCK(r1); UNLOCK(r2); } TASK(j2) { - TRACE("j2_enter\n"); + ITM_TRACE("j2_enter\n"); LOCK(r1); - TRACE("j2_r1_locked\n"); + ITM_TRACE("j2_r1_locked\n"); work(5); UNLOCK(r1); @@ -84,17 +84,17 @@ TASK(j2) } else { work(1); } - TRACE("j2_exit\n"); + ITM_TRACE("j2_exit\n"); } TASK(j3) { - TRACE("j3_enter\n"); + ITM_TRACE("j3_enter\n"); LOCK(r2); - TRACE("j3_r2_locked\n"); + ITM_TRACE("j3_r2_locked\n"); work(1); UNLOCK(r2); - TRACE("j3_exit\n"); + ITM_TRACE("j3_exit\n"); // int b = 2 * state; // if (b < 10) @@ -170,7 +170,7 @@ int main() // this will be run in the production code int main() { - TRACE("\nInit\n"); + ITM_TRACE("\nInit\n"); SETPRIO(j1); // Set HW priorities SETPRIO(j2); SETPRIO(j3); -- GitLab