#include "project.h" extern uint32_t dfu_flag; int main (void) { // rcc_clock_setup_in_hsi_out_48mhz (); //nvic_set_priority_grouping(NVIC_PriorityGroup_4); /*set up pll */ rcc_clock_setup_in_hse_8mhz_out_72mhz (); /*turn on clocks to periferals */ rcc_periph_clock_enable (RCC_GPIOA); rcc_periph_clock_enable (RCC_GPIOB); rcc_periph_clock_enable (RCC_GPIOC); rcc_periph_clock_enable (RCC_USART1); rcc_periph_clock_enable (RCC_USART2); rcc_periph_clock_enable (RCC_USART3); rcc_periph_clock_enable (RCC_AFIO); ticker_init (); led_init (); usart_init (); usb_init (); /*Start periodic timer */ /*Adjust interrupt priorities so that uarts trump timer */ nvic_set_priority (NVIC_USART1_IRQ, 0x40); nvic_set_priority (NVIC_USART2_IRQ, 0x40); nvic_set_priority (NVIC_USART3_IRQ, 0x40); nvic_set_priority (NVIC_SYSTICK_IRQ, 0xff); #if 0 /*GPIO C11 was used to determine if we should enter dfu */ /*now we use a ramdom address in ram */ gpio_set (GPIOC, GPIO11); gpio_set_mode (GPIOC, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO11); { int i; for (i = 0; i < 0x80000; i++) __asm__ ("nop"); } gpio_clear (GPIOC, GPIO11); #endif printf ("stm32_usb_kvm:\r\n"); printf ("dfu_flag=%08lx\r\n", dfu_flag); usb_run (); return 0; }