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; }