Skip to content

Commit 2b49188

Browse files
committed
kernel/os/arch: Fix Cortex-M irq priority setting
For Cortex-M0: os_arch_os_init() initialized interrupt priority level for all interrupts using incorrect array limit taken from sizeof instead of ARRAY_SIZE. For Cortex-M0 field IP is array of uint32_t unlike all other version where this array consist of uint8_t. Now array is iterated using ARRAY_SIZE(NVIC->IP) to limit instead of sizeof(NVIC->IP) and for Cortex-M33 ARRAY_SIZE(NVIC->IPR). Signed-off-by: Jerzy Kasenberg <[email protected]>
1 parent 3bb49f7 commit 2b49188

File tree

6 files changed

+6
-6
lines changed

6 files changed

+6
-6
lines changed

hw/mcu/dialog/cmac/src/arch/cortex_m0_cmac/os_arch_arm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ os_arch_os_init(void)
128128
}
129129

130130
/* Drop priority for all interrupts */
131-
for (i = 0; i < sizeof(NVIC->IP) / 4; i++) {
131+
for (i = 0; i < ARRAY_SIZE(NVIC->IP); i++) {
132132
NVIC->IP[i] = -1;
133133
}
134134

kernel/os/src/arch/cortex_m0/os_arch_arm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ os_arch_os_init(void)
209209
err = OS_OK;
210210

211211
/* Drop priority for all interrupts */
212-
for (i = 0; i < sizeof(NVIC->IP); i++) {
212+
for (i = 0; i < ARRAY_SIZE(NVIC->IP); i++) {
213213
NVIC->IP[i] = -1;
214214
}
215215

kernel/os/src/arch/cortex_m3/os_arch_arm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ os_arch_os_init(void)
233233
err = OS_OK;
234234

235235
/* Drop priority for all interrupts */
236-
for (i = 0; i < sizeof(NVIC->IP); i++) {
236+
for (i = 0; i < ARRAY_SIZE(NVIC->IP); i++) {
237237
NVIC->IP[i] = -1;
238238
}
239239

kernel/os/src/arch/cortex_m33/os_arch_arm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ os_arch_os_init(void)
237237
err = OS_OK;
238238

239239
/* Drop priority for all interrupts */
240-
for (i = 0; i < sizeof(NVIC->IPR); i++) {
240+
for (i = 0; i < ARRAY_SIZE(NVIC->IPR); i++) {
241241
NVIC->IPR[i] = -1;
242242
}
243243

kernel/os/src/arch/cortex_m4/os_arch_arm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ os_arch_os_init(void)
237237
err = OS_OK;
238238

239239
/* Drop priority for all interrupts */
240-
for (i = 0; i < sizeof(NVIC->IP); i++) {
240+
for (i = 0; i < ARRAY_SIZE(NVIC->IP); i++) {
241241
NVIC->IP[i] = -1;
242242
}
243243

kernel/os/src/arch/cortex_m7/os_arch_arm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ os_arch_os_init(void)
237237
err = OS_OK;
238238

239239
/* Drop priority for all interrupts */
240-
for (i = 0; i < sizeof(NVIC->IP); i++) {
240+
for (i = 0; i < ARRAY_SIZE(NVIC->IP); i++) {
241241
NVIC->IP[i] = -1;
242242
}
243243

0 commit comments

Comments
 (0)