Skip to content

Commit 20f5e22

Browse files
keith-packardjhedberg
authored andcommitted
wiseconnect: Support older cmsis names for NVIC and SCB registers
Previous versions of cmsis use slightly different spellings for a couple of registers, in the SCB, SHPR was SHP while in the NVIC, IPR was called IP. Check the CMSIS major version and select the older names when necessary. Upstream-status: Pending Signed-off-by: Keith Packard <[email protected]> Signed-off-by: Jérôme Pouiller <[email protected]>
1 parent 7331a4f commit 20f5e22

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

wiseconnect/components/device/silabs/si91x/mcu/core/chip/src/rsi_deepsleep_soc.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,11 +403,19 @@ rsi_error_t RSI_PS_EnterDeepSleep(SLEEP_TYPE_T sleepType, uint8_t lf_clk_mode)
403403
}
404404
/* Save the Interrupt Priority Register */
405405
for (var = 0; var < MAX_IPS; ++var) {
406+
#if __CM_CMSIS_VERSION_MAIN == 5
407+
nvic_ip_reg[var] = NVIC->IP[var];
408+
#else
406409
nvic_ip_reg[var] = NVIC->IPR[var];
410+
#endif
407411
}
408412
/* Save the System Handlers Priority Registers */
409413
for (var = 0; var < MAX_SHP; ++var) {
414+
#if __CM_CMSIS_VERSION_MAIN == 5
415+
scs_shp_reg[var] = SCB->SHP[var];
416+
#else
410417
scs_shp_reg[var] = SCB->SHPR[var];
418+
#endif
411419
}
412420
/*store the NPSS interrupt mask clear status*/
413421
npssIntrState = NPSS_INTR_MASK_CLR_REG;
@@ -713,11 +721,19 @@ rsi_error_t RSI_PS_EnterDeepSleep(SLEEP_TYPE_T sleepType, uint8_t lf_clk_mode)
713721

714722
/* Restore the Interrupt Priority Register */
715723
for (var = 0; var < MAX_IPS; ++var) {
724+
#if __CM_CMSIS_VERSION_MAIN == 5
725+
NVIC->IP[var] = nvic_ip_reg[var];
726+
#else
716727
NVIC->IPR[var] = nvic_ip_reg[var];
728+
#endif
717729
}
718730
/* Restore the System Handlers Priority Registers */
719731
for (var = 0; var < MAX_SHP; ++var) {
732+
#if __CM_CMSIS_VERSION_MAIN == 5
733+
SCB->SHP[var] = scs_shp_reg[var];
734+
#else
720735
SCB->SHPR[var] = scs_shp_reg[var];
736+
#endif
721737
}
722738
/* Restore the NVIC registers */
723739
for (var = 0; var < MAX_NVIC_REGS; ++var) {

0 commit comments

Comments
 (0)