From ebbb645f4b9816aca73e683e847b8bb73971316b Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 29 Feb 2016 17:57:51 +0100 Subject: [PATCH] req_ctx: Fix allocation (allocate 1 block, not all) and call _init() --- firmware/src_simtrace/main.c | 4 ++++ firmware/src_simtrace/req_ctx.c | 1 + firmware/src_simtrace/req_ctx.h | 1 + 3 files changed, 6 insertions(+) diff --git a/firmware/src_simtrace/main.c b/firmware/src_simtrace/main.c index 95adb7e7..faba1472 100644 --- a/firmware/src_simtrace/main.c +++ b/firmware/src_simtrace/main.c @@ -4,6 +4,8 @@ *------------------------------------------------------------------------------*/ #include "board.h" +#include "utils.h" +#include "req_ctx.h" /*------------------------------------------------------------------------------ * Internal variables @@ -95,6 +97,8 @@ extern int main( void ) /* Disable watchdog*/ WDT_Disable( WDT ) ; + req_ctx_init(); + PIO_InitializeInterrupts(0); SIMtrace_USB_Initialize(); diff --git a/firmware/src_simtrace/req_ctx.c b/firmware/src_simtrace/req_ctx.c index 40774fe8..7e9cffd5 100644 --- a/firmware/src_simtrace/req_ctx.c +++ b/firmware/src_simtrace/req_ctx.c @@ -52,6 +52,7 @@ req_ctx_find_get(int large, uint32_t old_state, uint32_t new_state) if (req_ctx[i].state == old_state) { toReturn = &req_ctx[i]; toReturn->state = new_state; + break; } } local_irq_restore(flags); diff --git a/firmware/src_simtrace/req_ctx.h b/firmware/src_simtrace/req_ctx.h index be964ca7..67090a1b 100644 --- a/firmware/src_simtrace/req_ctx.h +++ b/firmware/src_simtrace/req_ctx.h @@ -52,6 +52,7 @@ struct req_ctx { uint8_t *data; }; +extern void req_ctx_init(void); extern struct req_ctx __ramfunc *req_ctx_find_get(int large, uint32_t old_state, uint32_t new_state); extern struct req_ctx *req_ctx_find_busy(void); extern void req_ctx_set_state(struct req_ctx *ctx, uint32_t new_state);