From 090db8da5e087171766cf53fef71e4f8eb9d5482 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 5 Jun 2018 22:21:35 +1000 Subject: [PATCH] sysparam: always create the semaphore on init. Otherwise when initialization was not successful it may fail with an assertion in FreeRTOS rather than returning SYSPARAM_ERR_NOINIT. --- core/sysparam.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/sysparam.c b/core/sysparam.c index 27471a0..19e5ada 100644 --- a/core/sysparam.c +++ b/core/sysparam.c @@ -505,6 +505,8 @@ sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr) { struct sysparam_context ctx; uint16_t num_sectors; + _sysparam_info.sem = xSemaphoreCreateMutex(); + // Make sure we're starting at the beginning of the sector base_addr -= (base_addr % sdk_flashchip.sector_size); @@ -584,8 +586,6 @@ sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr) { _sysparam_info.end_addr = ctx.addr; } - _sysparam_info.sem = xSemaphoreCreateMutex(); - return SYSPARAM_OK; }