X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Ffox1ihu%2Fflash-loader%2Fao_pins.h;h=19f29b0881822151e2dc4612807e5ed6958c7c1c;hb=0dfaecc25a12da57248541a66dd5118161616cce;hp=bcc3cc9c18c0c324672db5e3bb4760333f215530;hpb=36cf713ead58a52539c87de764b022ba0dcde27d;p=fw%2Faltos diff --git a/src/fox1ihu/flash-loader/ao_pins.h b/src/fox1ihu/flash-loader/ao_pins.h index bcc3cc9c..19f29b08 100644 --- a/src/fox1ihu/flash-loader/ao_pins.h +++ b/src/fox1ihu/flash-loader/ao_pins.h @@ -21,14 +21,39 @@ /* External crystal at 8MHz */ #define AO_HSE 8000000 +#define AO_WATCHDOG_PORT (&stm_gpiod) +#define AO_WATCHDOG_PORT_BIT (1 << STM_RCC_AHBENR_GPIODEN) +#define AO_WATCHDOG_BIT 3 +#define AO_WATCHDOG_VALUE 0 + +#define AO_RADIO_CONTROL_PORT (&stm_gpioe) +#define AO_RADIO_CONTROL_PORT_BIT (1 << STM_RCC_AHBENR_GPIOEEN) +#define AO_RADIO_CONTROL_BIT 12 +#define AO_RADIO_CONTROL_VALUE 1 + +#define AO_FLASH_LOADER_INIT do { \ + stm_rcc.ahbenr |= AO_WATCHDOG_PORT_BIT | AO_RADIO_CONTROL_PORT_BIT; \ + \ + stm_gpio_set(AO_WATCHDOG_PORT, AO_WATCHDOG_BIT, AO_WATCHDOG_VALUE); \ + stm_moder_set(AO_WATCHDOG_PORT, AO_WATCHDOG_BIT, STM_MODER_OUTPUT); \ + \ + stm_gpio_set(AO_RADIO_CONTROL_PORT, AO_RADIO_CONTROL_BIT, AO_RADIO_CONTROL_VALUE); \ + stm_moder_set(AO_RADIO_CONTROL_PORT, AO_RADIO_CONTROL_BIT, STM_MODER_OUTPUT); \ + } while (0) + +#define AO_TIMER_HOOK do { \ + AO_WATCHDOG_PORT->odr ^= (1 << AO_WATCHDOG_BIT); \ + } while (0) + +#define HAS_TICK 1 #include -/* Detatched signal, PD6 */ +/* Attached signal, PB8 */ #define AO_BOOT_PIN 1 -#define AO_BOOT_APPLICATION_GPIO stm_gpiod -#define AO_BOOT_APPLICATION_PIN 6 -#define AO_BOOT_APPLICATION_VALUE 1 +#define AO_BOOT_APPLICATION_GPIO stm_gpiob +#define AO_BOOT_APPLICATION_PIN 8 +#define AO_BOOT_APPLICATION_VALUE 0 #define AO_BOOT_APPLICATION_MODE 0 #endif /* _AO_PINS_H_ */