X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fstm32f4%2Fao_arch_funcs.h;fp=src%2Fstm32f4%2Fao_arch_funcs.h;h=6fa654973842877a59325e94cd3a991e6d1750d0;hp=8ff31b4a917620865d3c368b1756cb934edaf1b5;hb=65be5d1e07ff4ae619233f3b541b9599c44490ab;hpb=efc2c093819b3ec2e5743126efb76d3a9c0ad231 diff --git a/src/stm32f4/ao_arch_funcs.h b/src/stm32f4/ao_arch_funcs.h index 8ff31b4a..6fa65497 100644 --- a/src/stm32f4/ao_arch_funcs.h +++ b/src/stm32f4/ao_arch_funcs.h @@ -61,7 +61,7 @@ ao_arch_irqrestore(uint32_t basepri) { } static inline void -ao_arch_memory_barrier() { +ao_arch_memory_barrier(void) { asm volatile("" ::: "memory"); } @@ -251,28 +251,28 @@ ao_arch_wait_interrupt(void) { static inline void ao_enable_port(struct stm_gpio *port) { if ((port) == &stm_gpioa) { - stm_rcc.ahb1enr |= (1 << STM_RCC_AHB1ENR_IOPAEN); + stm_rcc_ahb1_clk_enable(1 << STM_RCC_AHB1ENR_IOPAEN); ao_power_register(&ao_power_gpioa); } else if ((port) == &stm_gpiob) { - stm_rcc.ahb1enr |= (1 << STM_RCC_AHB1ENR_IOPBEN); + stm_rcc_ahb1_clk_enable(1 << STM_RCC_AHB1ENR_IOPBEN); ao_power_register(&ao_power_gpiob); } else if ((port) == &stm_gpioc) { - stm_rcc.ahb1enr |= (1 << STM_RCC_AHB1ENR_IOPCEN); + stm_rcc_ahb1_clk_enable(1 << STM_RCC_AHB1ENR_IOPCEN); ao_power_register(&ao_power_gpioc); } else if ((port) == &stm_gpiod) { - stm_rcc.ahb1enr |= (1 << STM_RCC_AHB1ENR_IOPDEN); + stm_rcc_ahb1_clk_enable(1 << STM_RCC_AHB1ENR_IOPDEN); ao_power_register(&ao_power_gpiod); } else if ((port) == &stm_gpioe) { - stm_rcc.ahb1enr |= (1 << STM_RCC_AHB1ENR_IOPEEN); + stm_rcc_ahb1_clk_enable(1 << STM_RCC_AHB1ENR_IOPEEN); ao_power_register(&ao_power_gpioe); } else if ((port) == &stm_gpiof) { - stm_rcc.ahb1enr |= (1 << STM_RCC_AHB1ENR_IOPFEN); + stm_rcc_ahb1_clk_enable(1 << STM_RCC_AHB1ENR_IOPFEN); ao_power_register(&ao_power_gpiof); } else if ((port) == &stm_gpiog) { - stm_rcc.ahb1enr |= (1 << STM_RCC_AHB1ENR_IOPGEN); + stm_rcc_ahb1_clk_enable(1 << STM_RCC_AHB1ENR_IOPGEN); ao_power_register(&ao_power_gpiog); } else if ((port) == &stm_gpioh) { - stm_rcc.ahb1enr |= (1 << STM_RCC_AHB1ENR_IOPHEN); + stm_rcc_ahb1_clk_enable(1 << STM_RCC_AHB1ENR_IOPHEN); ao_power_register(&ao_power_gpioh); } } @@ -280,28 +280,28 @@ static inline void ao_enable_port(struct stm_gpio *port) static inline void ao_disable_port(struct stm_gpio *port) { if ((port) == &stm_gpioa) { - stm_rcc.ahb1enr &= ~(1 << STM_RCC_AHB1ENR_IOPAEN); + stm_rcc_ahb1_clk_disable(1 << STM_RCC_AHB1ENR_IOPAEN); ao_power_unregister(&ao_power_gpioa); } else if ((port) == &stm_gpiob) { - stm_rcc.ahb1enr &= ~(1 << STM_RCC_AHB1ENR_IOPBEN); + stm_rcc_ahb1_clk_disable(1 << STM_RCC_AHB1ENR_IOPBEN); ao_power_unregister(&ao_power_gpiob); } else if ((port) == &stm_gpioc) { - stm_rcc.ahb1enr &= ~(1 << STM_RCC_AHB1ENR_IOPCEN); + stm_rcc_ahb1_clk_disable(1 << STM_RCC_AHB1ENR_IOPCEN); ao_power_unregister(&ao_power_gpioc); } else if ((port) == &stm_gpiod) { - stm_rcc.ahb1enr &= ~(1 << STM_RCC_AHB1ENR_IOPDEN); + stm_rcc_ahb1_clk_disable(1 << STM_RCC_AHB1ENR_IOPDEN); ao_power_unregister(&ao_power_gpiod); } else if ((port) == &stm_gpioe) { - stm_rcc.ahb1enr &= ~(1 << STM_RCC_AHB1ENR_IOPEEN); + stm_rcc_ahb1_clk_disable(1 << STM_RCC_AHB1ENR_IOPEEN); ao_power_unregister(&ao_power_gpioe); } else if ((port) == &stm_gpiof) { - stm_rcc.ahb1enr &= ~(1 << STM_RCC_AHB1ENR_IOPFEN); + stm_rcc_ahb1_clk_disable(1 << STM_RCC_AHB1ENR_IOPFEN); ao_power_unregister(&ao_power_gpiof); } else if ((port) == &stm_gpiog) { - stm_rcc.ahb1enr &= ~(1 << STM_RCC_AHB1ENR_IOPGEN); + stm_rcc_ahb1_clk_disable(1 << STM_RCC_AHB1ENR_IOPGEN); ao_power_unregister(&ao_power_gpiog); } else if ((port) == &stm_gpioh) { - stm_rcc.ahb1enr &= ~(1 << STM_RCC_AHB1ENR_IOPHEN); + stm_rcc_ahb1_clk_disable(1 << STM_RCC_AHB1ENR_IOPHEN); ao_power_unregister(&ao_power_gpioh); } } @@ -336,5 +336,25 @@ static inline void ao_disable_port(struct stm_gpio *port) void ao_usart_init(void); +void +start(void); + +char +ao_serial6_getchar(void); + +void +ao_serial6_putchar(char c); + +int +_ao_serial6_pollchar(void); + +uint8_t +_ao_serial6_sleep_for(uint16_t timeout); + +void +ao_serial6_set_speed(uint32_t speed); + +void +ao_serial6_drain(void); #endif /* _AO_ARCH_FUNCS_H_ */