Skip to content
Snippets Groups Projects
Commit 3a2d55f6 authored by pln's avatar pln
Browse files

function instead of macro for trace event

parent 19479a8b
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment