diff options
author | Keith Packard <keithp@keithp.com> | 2016-11-20 20:54:10 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2017-02-20 12:31:16 -0800 |
commit | 088ddbb177efc8be2fc467524dc1668553080d3b (patch) | |
tree | 277f486b5204bfe087b79af66dfcc646fba4ed68 /src/stm/ao_arch.h | |
parent | 992eee8e0b4c6c774f3355af107fb422019ff4e5 (diff) |
altos/stm: Interrupt priority is in the upper bits of the priority mask
Because the STM32L only offers 16 priority levels, the bottom four
bits of each priority mask are not used. All of the interrupt priority
settings in the system were using values < 16, making them all
effectively the same. Fix that by moving them into the upper 4 bits
and using symbolic constants everywhere.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/stm/ao_arch.h')
-rw-r--r-- | src/stm/ao_arch.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/stm/ao_arch.h b/src/stm/ao_arch.h index 0cc29376..3d09af3c 100644 --- a/src/stm/ao_arch.h +++ b/src/stm/ao_arch.h @@ -122,10 +122,12 @@ extern const uint32_t ao_radio_cal; #define AO_TIM91011_CLK (2 * AO_PCLK2) #endif -#define AO_STM_NVIC_HIGH_PRIORITY 4 -#define AO_STM_NVIC_CLOCK_PRIORITY 6 -#define AO_STM_NVIC_MED_PRIORITY 8 -#define AO_STM_NVIC_LOW_PRIORITY 10 +/* The stm32l implements only 4 bits of the priority fields */ + +#define AO_STM_NVIC_HIGH_PRIORITY 0x40 +#define AO_STM_NVIC_MED_PRIORITY 0x80 +#define AO_STM_NVIC_LOW_PRIORITY 0xC0 +#define AO_STM_NVIC_CLOCK_PRIORITY 0xf0 void ao_lcd_stm_init(void); |