diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/stm/ao_arch.h | 10 | ||||
| -rw-r--r-- | src/stm/ao_dma_stm.c | 3 | ||||
| -rw-r--r-- | src/stm/ao_exti_stm.c | 2 | ||||
| -rw-r--r-- | src/stm/ao_serial_stm.c | 6 | ||||
| -rw-r--r-- | src/stm/ao_timer.c | 1 | ||||
| -rw-r--r-- | src/stm/ao_usb_stm.c | 2 | 
6 files changed, 14 insertions, 10 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); diff --git a/src/stm/ao_dma_stm.c b/src/stm/ao_dma_stm.c index 6d779660..63d6688a 100644 --- a/src/stm/ao_dma_stm.c +++ b/src/stm/ao_dma_stm.c @@ -155,7 +155,8 @@ ao_dma_init(void)  	for (index = 0; index < STM_NUM_DMA; index++) {  		stm_nvic_set_enable(STM_ISR_DMA1_CHANNEL1_POS + index); -		stm_nvic_set_priority(STM_ISR_DMA1_CHANNEL1_POS + index, 4); +		stm_nvic_set_priority(STM_ISR_DMA1_CHANNEL1_POS + index, +				      AO_STM_NVIC_MED_PRIORITY);  		ao_dma_allocated[index] = 0;  		ao_dma_mutex[index] = 0;  	} diff --git a/src/stm/ao_exti_stm.c b/src/stm/ao_exti_stm.c index 3e0b3e5c..2491b609 100644 --- a/src/stm/ao_exti_stm.c +++ b/src/stm/ao_exti_stm.c @@ -123,7 +123,7 @@ ao_exti_set_mode(struct stm_gpio *gpio, uint8_t pin, uint8_t mode) {  	(void) gpio;  	uint32_t	mask = 1 << pin; -	 +  	if (mode & AO_EXTI_MODE_RISING)  		stm_exti.rtsr |= mask;  	else diff --git a/src/stm/ao_serial_stm.c b/src/stm/ao_serial_stm.c index db0be992..c625471e 100644 --- a/src/stm/ao_serial_stm.c +++ b/src/stm/ao_serial_stm.c @@ -444,7 +444,7 @@ ao_serial_init(void)  	ao_usart_init(&ao_stm_usart1);  	stm_nvic_set_enable(STM_ISR_USART1_POS); -	stm_nvic_set_priority(STM_ISR_USART1_POS, 4); +	stm_nvic_set_priority(STM_ISR_USART1_POS, AO_STM_NVIC_MED_PRIORITY);  #if USE_SERIAL_1_STDIN && !DELAY_SERIAL_1_STDIN  	ao_add_stdio(_ao_serial1_pollchar,  		     ao_serial1_putchar, @@ -500,7 +500,7 @@ ao_serial_init(void)  #endif  	stm_nvic_set_enable(STM_ISR_USART2_POS); -	stm_nvic_set_priority(STM_ISR_USART2_POS, 4); +	stm_nvic_set_priority(STM_ISR_USART2_POS, AO_STM_NVIC_MED_PRIORITY);  #if USE_SERIAL_2_STDIN && !DELAY_SERIAL_2_STDIN  	ao_add_stdio(_ao_serial2_pollchar,  		     ao_serial2_putchar, @@ -544,7 +544,7 @@ ao_serial_init(void)  	ao_usart_init(&ao_stm_usart3);  	stm_nvic_set_enable(STM_ISR_USART3_POS); -	stm_nvic_set_priority(STM_ISR_USART3_POS, 4); +	stm_nvic_set_priority(STM_ISR_USART3_POS, AO_STM_NVIC_MED_PRIORITY);  #if USE_SERIAL_3_STDIN && !DELAY_SERIAL_3_STDIN  	ao_add_stdio(_ao_serial3_pollchar,  		     ao_serial3_putchar, diff --git a/src/stm/ao_timer.c b/src/stm/ao_timer.c index f86a5116..1576a6c9 100644 --- a/src/stm/ao_timer.c +++ b/src/stm/ao_timer.c @@ -90,6 +90,7 @@ ao_timer_init(void)  	stm_systick.csr = ((1 << STM_SYSTICK_CSR_ENABLE) |  			   (1 << STM_SYSTICK_CSR_TICKINT) |  			   (STM_SYSTICK_CSR_CLKSOURCE_HCLK_8 << STM_SYSTICK_CSR_CLKSOURCE)); +	stm_nvic.shpr15_12 |= AO_STM_NVIC_CLOCK_PRIORITY << 24;  }  #endif diff --git a/src/stm/ao_usb_stm.c b/src/stm/ao_usb_stm.c index 9d72844e..2abaf10f 100644 --- a/src/stm/ao_usb_stm.c +++ b/src/stm/ao_usb_stm.c @@ -1015,7 +1015,7 @@ ao_usb_enable(void)  	ao_arch_block_interrupts();  	/* Route interrupts */ -	stm_nvic_set_priority(STM_ISR_USB_LP_POS, 3); +	stm_nvic_set_priority(STM_ISR_USB_LP_POS, AO_STM_NVIC_LOW_PRIORITY);  	stm_nvic_set_enable(STM_ISR_USB_LP_POS);  	ao_usb_configuration = 0; | 
