// Called during each loop of the main bootloader sequence void Device_process() { // For keyboards with dual usb ports, doesn't do anything on keyboards without them // If a USB connection is not detected in 2 seconds, switch to the other port to see if it's plugged in there // USB not initialized, attempt to swap if ( usb.state != USBD_STATE_ADDRESS ) { // Only check for swapping after delay uint32_t wait_ms = systick_millis_count - last_ms; if ( wait_ms < USBPortSwapDelay_ms + attempt / 2 * USBPortSwapDelay_ms ) { return; } last_ms = systick_millis_count; print("USB not initializing, port swapping"); GPIO_Ctrl( usb_swap_pin, GPIO_Type_DriveToggle, GPIO_Config_None ); attempt++; } // Check for S1 being pressed if ( GPIO_Ctrl( sense_pin, GPIO_Type_Read, GPIO_Config_Pulldown ) ) { print( "Reset key pressed." NL ); SOFTWARE_RESET(); } }
// Called during each loop of the main bootloader sequence void Device_process() { // Check for S7 being pressed if ( GPIO_Ctrl( sense_pin, GPIO_Type_Read, GPIO_Config_Pulldown ) ) { print( "Reset key pressed." NL ); SOFTWARE_RESET(); } }
void isp_start_appli(void) { for ( int pos = 0; pos <= 8; pos++ ) GPBR->SYS_GPBR[ pos ] = 0x00000000; SOFTWARE_RESET(); }