diff options
| author | Keith Packard <keithp@keithp.com> | 2016-04-13 06:11:44 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2016-04-19 23:21:30 -0400 | 
| commit | 3abc0fc5e4484d862709501133d35563aa0c25fa (patch) | |
| tree | 4e7c66ccc064c9fbafe1f4543e92f8dfbd38ce0c | |
| parent | 14fecd672807982ce6232fa3b4bdce0aebe132e8 (diff) | |
altos/stmf0: Fix external interrupts
Missing a reserved address in the registers broke everything nicely,
but the priority values were also wrong - stm32f0 exposes 8 bits per
priority, like the stm32l, but it uses only the top two bits.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | src/stmf0/ao_arch.h | 8 | ||||
| -rw-r--r-- | src/stmf0/ao_exti.h | 2 | ||||
| -rw-r--r-- | src/stmf0/ao_exti_stm.c | 2 | ||||
| -rw-r--r-- | src/stmf0/stm32f0.h | 3 | 
4 files changed, 9 insertions, 6 deletions
diff --git a/src/stmf0/ao_arch.h b/src/stmf0/ao_arch.h index 26a34c85..2597cadc 100644 --- a/src/stmf0/ao_arch.h +++ b/src/stmf0/ao_arch.h @@ -131,10 +131,10 @@ 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 +#define AO_STM_NVIC_HIGH_PRIORITY	(0 << 6) +#define AO_STM_NVIC_CLOCK_PRIORITY	(1 << 6) +#define AO_STM_NVIC_MED_PRIORITY	(2 << 6) +#define AO_STM_NVIC_LOW_PRIORITY	(3 << 6)  void ao_lcd_stm_init(void); diff --git a/src/stmf0/ao_exti.h b/src/stmf0/ao_exti.h index ebea224d..192611bd 100644 --- a/src/stmf0/ao_exti.h +++ b/src/stmf0/ao_exti.h @@ -28,7 +28,7 @@  #define AO_EXTI_PIN_NOCONFIGURE	64  void -ao_exti_setup(struct stm_gpio *gpio, uint8_t pin, uint8_t mode, void (*callback)()); +ao_exti_setup(struct stm_gpio *gpio, uint8_t pin, uint8_t mode, void (*callback)(void));  void  ao_exti_set_mode(struct stm_gpio *gpio, uint8_t pin, uint8_t mode); diff --git a/src/stmf0/ao_exti_stm.c b/src/stmf0/ao_exti_stm.c index 906392e6..910afcf7 100644 --- a/src/stmf0/ao_exti_stm.c +++ b/src/stmf0/ao_exti_stm.c @@ -110,7 +110,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/stmf0/stm32f0.h b/src/stmf0/stm32f0.h index 30b45b15..33eb9c88 100644 --- a/src/stmf0/stm32f0.h +++ b/src/stmf0/stm32f0.h @@ -837,8 +837,11 @@ isr(tim7)  struct stm_syscfg {  	vuint32_t	cfgr1; +	uint32_t	reserved_04;  	vuint32_t	exticr[4];  	vuint32_t	cfgr2; +	uint8_t		reserved_1c[0x80-0x1c]; +	vuint32_t	itline[31];  };  extern struct stm_syscfg stm_syscfg;  | 
