diff --git a/include/libopencm3/stm32/f1/scb.h b/include/libopencm3/stm32/f1/scb.h index 5c965be8..36b05fda 100644 --- a/include/libopencm3/stm32/f1/scb.h +++ b/include/libopencm3/stm32/f1/scb.h @@ -295,6 +295,7 @@ /* --- SCB functions ------------------------------------------------------- */ void scb_reset_core(void); void scb_reset_system(void); +void scb_set_priority_grouping(u32 prigroup); /* TODO: */ diff --git a/include/libopencm3/stm32/f2/scb.h b/include/libopencm3/stm32/f2/scb.h index 5c965be8..36b05fda 100644 --- a/include/libopencm3/stm32/f2/scb.h +++ b/include/libopencm3/stm32/f2/scb.h @@ -295,6 +295,7 @@ /* --- SCB functions ------------------------------------------------------- */ void scb_reset_core(void); void scb_reset_system(void); +void scb_set_priority_grouping(u32 prigroup); /* TODO: */ diff --git a/include/libopencm3/stm32/f4/scb.h b/include/libopencm3/stm32/f4/scb.h index 5c965be8..36b05fda 100644 --- a/include/libopencm3/stm32/f4/scb.h +++ b/include/libopencm3/stm32/f4/scb.h @@ -295,6 +295,7 @@ /* --- SCB functions ------------------------------------------------------- */ void scb_reset_core(void); void scb_reset_system(void); +void scb_set_priority_grouping(u32 prigroup); /* TODO: */ diff --git a/lib/stm32/f1/scb.c b/lib/stm32/f1/scb.c index 54c57764..8c3238c3 100644 --- a/lib/stm32/f1/scb.c +++ b/lib/stm32/f1/scb.c @@ -28,3 +28,8 @@ void scb_reset_system(void) { SCB_AIRCR = SCB_AIRCR_VECTKEY | SCB_AIRCR_SYSRESETREQ; } + +void scb_set_priority_grouping(u32 prigroup) +{ + SCB_AIRCR = SCB_AIRCR_VECTKEY | prigroup; +} diff --git a/lib/stm32/f2/scb.c b/lib/stm32/f2/scb.c index 338542e4..33088f3f 100644 --- a/lib/stm32/f2/scb.c +++ b/lib/stm32/f2/scb.c @@ -28,3 +28,8 @@ void scb_reset_system(void) { SCB_AIRCR = SCB_AIRCR_VECTKEY | SCB_AIRCR_SYSRESETREQ; } + +void scb_set_priority_grouping(u32 prigroup) +{ + SCB_AIRCR = SCB_AIRCR_VECTKEY | prigroup; +} diff --git a/lib/stm32/f4/scb.c b/lib/stm32/f4/scb.c index 18c1337b..30510f85 100644 --- a/lib/stm32/f4/scb.c +++ b/lib/stm32/f4/scb.c @@ -28,3 +28,8 @@ void scb_reset_system(void) { SCB_AIRCR = SCB_AIRCR_VECTKEY | SCB_AIRCR_SYSRESETREQ; } + +void scb_set_priority_grouping(u32 prigroup) +{ + SCB_AIRCR = SCB_AIRCR_VECTKEY | prigroup; +}