stm32f4-uart-bootloader

Simple UART bootloader for STM32F4 MCU's
git clone git://git.mdnr.space/stm32f4-uart-bootloader
Log | Files | Refs | Submodules | README | LICENSE

drv-gpio.c (3060B)


      1 #include "drv-gpio.h"
      2 
      3 void res_gpio_setup(void) {
      4     rcc_periph_clock_enable(RCC_GPIOA);
      5     rcc_periph_clock_enable(RCC_GPIOB);
      6     rcc_periph_clock_enable(RCC_GPIOC);
      7     rcc_periph_clock_enable(RCC_GPIOD);
      8     rcc_periph_clock_enable(RCC_GPIOE);
      9     rcc_periph_clock_enable(RCC_GPIOF);
     10     rcc_periph_clock_enable(RCC_GPIOG);
     11 
     12     gpio_mode_setup(ST_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ST_LED0_PIN);
     13     gpio_mode_setup(ST_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ST_LED1_PIN);
     14     gpio_mode_setup(ST_LED2_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ST_LED2_PIN);
     15     gpio_mode_setup(ST_LED3_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ST_LED3_PIN);
     16 
     17     gpio_mode_setup(CH0_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH0_LED0_PIN);
     18     gpio_mode_setup(CH0_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH0_LED1_PIN);
     19     gpio_mode_setup(CH1_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH1_LED0_PIN);
     20     gpio_mode_setup(CH1_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH1_LED1_PIN);
     21     gpio_mode_setup(CH2_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH2_LED0_PIN);
     22     gpio_mode_setup(CH2_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH2_LED1_PIN);
     23     gpio_mode_setup(CH3_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH3_LED0_PIN);
     24     gpio_mode_setup(CH3_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH3_LED1_PIN);
     25     gpio_mode_setup(CH4_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH4_LED0_PIN);
     26     gpio_mode_setup(CH4_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH4_LED1_PIN);
     27     gpio_mode_setup(CH5_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH5_LED0_PIN);
     28     gpio_mode_setup(CH5_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH5_LED1_PIN);
     29     gpio_mode_setup(CH6_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH6_LED0_PIN);
     30     gpio_mode_setup(CH6_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH6_LED1_PIN);
     31     gpio_mode_setup(CH7_LED0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH7_LED0_PIN);
     32     gpio_mode_setup(CH7_LED1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, CH7_LED1_PIN);
     33 
     34     gpio_mode_setup(DBG0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, DBG0_PIN);
     35     gpio_mode_setup(ACTIVE_CH0_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ACTIVE_CH0_PIN);
     36     gpio_mode_setup(ACTIVE_CH1_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ACTIVE_CH1_PIN);
     37     gpio_mode_setup(ACTIVE_CH2_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ACTIVE_CH2_PIN);
     38     gpio_mode_setup(ACTIVE_CH3_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ACTIVE_CH3_PIN);
     39     gpio_mode_setup(ACTIVE_CH4_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ACTIVE_CH4_PIN);
     40     gpio_mode_setup(ACTIVE_CH5_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ACTIVE_CH5_PIN);
     41     gpio_mode_setup(ACTIVE_CH6_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ACTIVE_CH6_PIN);
     42     gpio_mode_setup(ACTIVE_CH7_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ACTIVE_CH7_PIN);
     43 
     44     gpio_mode_setup(MUX_IN_A_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,
     45                     MUX_IN_A_PIN | MUX_IN_B_PIN | MUX_IN_C_PIN);
     46 }
     47 
     48 void res_gpio_write_pin(uint32_t port, uint16_t pin, bool value) {
     49     (value == true) ? gpio_set(port, pin) : gpio_clear(port, pin);
     50 }