From 90a4c57a4232667802b90346bb6d0c823d79ad42 Mon Sep 17 00:00:00 2001 From: Michael Rogenmoser Date: Fri, 10 Feb 2023 11:16:38 +0100 Subject: [PATCH] Update critical section code for functionality --- include/hal/hmr/hmr_v1.h | 14 ++++++++++++++ kernel/cluster.c | 8 +++++++- kernel/crt0.S | 2 ++ kernel/hmr_synch.c | 11 +++-------- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/include/hal/hmr/hmr_v1.h b/include/hal/hmr/hmr_v1.h index 0bf2a7f..c184809 100644 --- a/include/hal/hmr/hmr_v1.h +++ b/include/hal/hmr/hmr_v1.h @@ -121,6 +121,16 @@ static inline void hmr_enable_tmr(unsigned int cid, unsigned int tmr_id) { pulp_write32(ARCHI_HMR_GLOBAL_ADDR(cid) + HMR_TMR_OFFSET + HMR_TMR_INCREMENT*tmr_id + HMR_TMR_REGS_TMR_ENABLE_REG_OFFSET, 1< this should lock the cores together eu_bar_trig_wait_clr(eu_bar_addr(TMR_BARRIER_ID(TMR_GROUP_ID(core_id())))); @@ -240,7 +236,7 @@ int hmr_tmr_critical_section(int (*function_handle)()) { int ret = 0; if (TMR_IS_MAIN_CORE(core_id())) { // enter critical section - hmr_enable_tmr(0, TMR_GROUP_ID(core_id())); + hmr_self_enable_tmr(); // do critical stuff ret += function_handle(); @@ -249,7 +245,6 @@ int hmr_tmr_critical_section(int (*function_handle)()) { hmr_disable_tmr(0, TMR_GROUP_ID(core_id())); } - synch_barrier(); return ret; }