diff options
author | Paul Selkirk <paul@psgd.org> | 2016-08-11 16:13:09 -0400 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2016-08-11 16:13:09 -0400 |
commit | 77f36214ca4ca3bd7e763d43ca4592624a980e57 (patch) | |
tree | 807b9f88fd0283027fcf32a0ca1a42a06204119c | |
parent | e3fe7d89b6094bfef42f42329e15631f684f0748 (diff) |
Multiple threads and multiple cores, to deal with multiple clients.
-rw-r--r-- | projects/hsm/Makefile | 4 | ||||
-rw-r--r-- | projects/hsm/hsm.c | 16 |
2 files changed, 16 insertions, 4 deletions
diff --git a/projects/hsm/Makefile b/projects/hsm/Makefile index 0ab4bff..87679ca 100644 --- a/projects/hsm/Makefile +++ b/projects/hsm/Makefile @@ -26,9 +26,7 @@ BOARD_OBJS = \ $(BOARD_DIR)/stm32f4xx_hal_msp.o \ $(BOARD_DIR)/stm32f4xx_it_rtos.o -ifndef CRYPTECH_ROOT - CRYPTECH_ROOT := $(abspath ../../../..) -endif +CFLAGS += -DNUM_RPC_TASK=6 CFLAGS += -I$(LIBHAL_SRC) CFLAGS += -I$(LIBCLI_SRC) diff --git a/projects/hsm/hsm.c b/projects/hsm/hsm.c index adce889..d6f778a 100644 --- a/projects/hsm/hsm.c +++ b/projects/hsm/hsm.c @@ -228,6 +228,20 @@ static uint8_t *sdram_malloc(size_t size) return p; } +#if NUM_RPC_TASK > 1 +/* Critical section start/end, currently used just for hal_core_alloc/_free. + */ +void hal_critical_section_start(void) +{ + __disable_irq(); +} + +void hal_critical_section_end(void) +{ + __enable_irq(); +} +#endif + /* The main thread. This does all the setup, and the worker threads handle * the rest. */ @@ -243,7 +257,7 @@ int main() #if NUM_RPC_TASK > 1 if ((uart_mutex = osMutexCreate(osMutex(uart_mutex))) == NULL || - (dispatch_mutex = osMutexCreate(osMutex(dispatch_mutex)) == NULL) + (dispatch_mutex = osMutexCreate(osMutex(dispatch_mutex))) == NULL) Error_Handler(); #endif if ((rpc_sem = osSemaphoreCreate(osSemaphore(rpc_sem), 0)) == NULL) |