/*! \brief Main function. Execution starts here. * * \retval 42 Fatal error. */ int main(void) { // Configure system clocks. if (pcl_configure_clocks(&pcl_freq_param) != PASS) return 42; // Initialize USB clock (on PLL1) pcl_configure_usb_clock(); // Initialize usart comm init_dbg_rs232(pcl_freq_param.pba_f); // Initialize USB task usb_task_init(); #if USB_DEVICE_FEATURE == true // Initialize device generic USB task device_generic_hid_task_init(); #endif // No OS here. Need to call each task in round-robin mode. while (true) { usb_task(); #if USB_DEVICE_FEATURE == true device_generic_hid_task(); #endif } }
/*! \brief Main function. Execution starts here. * * \retval 42 Fatal error. */ int main(void) { #ifndef FREERTOS_USED Enable_global_exception(); INTC_init_interrupts(); #endif pcl_switch_to_osc(PCL_OSC0, FOSC0, OSC0_STARTUP); init_dbg_rs232(FOSC0); pcl_configure_usb_clock(); usb_task_init(); #if USB_DEVICE_FEATURE == true device_template_task_init(); #endif #if USB_HOST_FEATURE == true host_template_task_init(); #endif #ifdef FREERTOS_USED vTaskStartScheduler(); portDBG_TRACE("FreeRTOS returned."); return 42; #else while (true) { usb_task(); #if USB_DEVICE_FEATURE == true device_template_task(); #endif #if USB_HOST_FEATURE == true host_template_task(); #endif } #endif // FREERTOS_USED }
/*! \brief Main function. Execution starts here. * * \retval No return value. */ int main(void) { #ifdef __GNUC__ // Initialize the INTC sw driver. INTC_init_interrupts(); #endif // Configure system clocks. if (pcl_configure_clocks(&pcl_freq_param) != PASS) while (true); // Initialize USB clock (on PLL1) pcl_configure_usb_clock(); // Initialize USB task usb_task_init(); #if USB_DEVICE_FEATURE == true // Initialize device generic USB task device_generic_hid_task_init(); #endif // No OS here. Need to call each task in round-robin mode. while (true) { usb_task(); #if USB_DEVICE_FEATURE == true device_generic_hid_task(); #endif } }
/*! \brief Main function. Execution starts here. * * \retval 42 Fatal error. */ int main(void) { // Configure system clocks. if (pcl_configure_clocks(&pcl_freq_param) != PASS) return 42; // Initialize USB clock (on PLL1) pcl_configure_usb_clock(); // Initialize usart comm init_dbg_rs232(pcl_freq_param.pba_f); #if BOARD == EVK1105 Disable_global_interrupt(); /* Register interrupt handler to the interrupt controller * up, down buttons on PB22, PB23 -> GPIO_IRQ_6 */ INTC_register_interrupt(&touch_button_isr, AVR32_GPIO_IRQ_6, 0); /* all gpios between PB23 - PB31) */ INTC_register_interrupt(&touch_button_isr, AVR32_GPIO_IRQ_7, 0); Enable_global_interrupt(); #endif // Initialize USB task usb_task_init(); #if USB_DEVICE_FEATURE == true // Initialize device mouse USB task device_mouse_hid_task_init(); #endif #if USB_HOST_FEATURE == true //host_keyboard_hid_task_init(); // Initialize host mouse USB task host_mouse_hid_task_init(); #endif #ifdef FREERTOS_USED // Start OS scheduler vTaskStartScheduler(); portDBG_TRACE("FreeRTOS returned."); return 42; #else // No OS here. Need to call each task in round-robin mode. while (true) { usb_task(); #if USB_DEVICE_FEATURE == true device_mouse_hid_task(); #endif #if USB_HOST_FEATURE == true //host_keyboard_hid_task(); host_mouse_hid_task(); #endif } #endif // FREERTOS_USED }
/*! \brief Main function. Execution starts here. * * \retval 42 Fatal error. */ int main(void) { // Configure system clocks. if (pcl_configure_clocks(&pcl_freq_param) != PASS) return 42; // Initialize usart comm init_dbg_rs232(pcl_freq_param.pba_f); #ifndef FREERTOS_USED # if (defined __GNUC__) // Give the used CPU clock frequency to Newlib, so it can work properly. set_cpu_hz(pcl_freq_param.pba_f); # endif #endif // Initialize USB clock. pcl_configure_usb_clock(); // Initialize USB task usb_task_init(); // Display a welcome banner on USART printf(" ...... ...... \r\n"); printf(" IIIIII IIIII IIII IIIIIIIIIII IIIIIIIIIII. .IIIIIIIIII. \r\n"); printf(" IIIIIII IIIII IIIII IIIIIIIIIIIII IIIIIIIIIIII..IIIIIIIIIII. \r\n"); printf(" IIIIIIIII IIIII IIIII IIIII IIIII I. IIIII.:. IIIII \r\n"); printf(" IIII IIIII IIIII IIII IIIII IIIII .IIII. IIIII \r\n"); printf(" IIIII IIII IIII IIIII IIIIIIIIIIIIII IIIIIIII IIII. \r\n"); printf(" IIII IIIII IIIII IIIII IIIIIIIIIIIII IIIIIIII. .IIII: \r\n"); printf(" IIIII IIIII IIIIIIIII IIIIIIIIIII .IIIII IIIII. \r\n"); printf(" IIIIIIIIIIIIIII IIIIIIII IIIII IIIII .IIII .IIII: \r\n"); printf(" IIIIIIIIIIIIIIII IIIIIII IIIII IIII II:. .IIIII .IIIII. \r\n"); printf(" IIIII IIIII IIIIII IIIII IIIII IIIIIIIIIIIII.IIIIIIIIIIIIII\r\n"); printf(" IIIII IIIII IIIII IIIII IIIII :IIIIIIIIII. IIIIIIIIIIIIII\r\n"); printf(" III \r\n"); printf(" II \r\n"); #if USB_DEVICE_FEATURE == true // Initialize device CDC USB task device_cdc_task_init(); #endif #if USB_HOST_FEATURE == true // Initialize host CDC USB task host_cdc_task_init(); #endif #ifdef FREERTOS_USED // Start OS scheduler vTaskStartScheduler(); portDBG_TRACE("FreeRTOS returned."); return 42; #else // No OS here. Need to call each task in round-robin mode. while (true) { usb_task(); #if USB_DEVICE_FEATURE == true device_cdc_task(); #endif #if USB_HOST_FEATURE == true host_cdc_task(); #endif } #endif // FREERTOS_USED }
int main (void) { pcl_freq_param_t local_pcl_freq_param; /* USART_Int_Test (); return (0); */ // Configure system clocks. local_pcl_freq_param = pcl_freq_param; if (pcl_configure_clocks (&local_pcl_freq_param) != PASS) { return 42; } /* Load the Exception Vector Base Address in the corresponding system register. */ Set_system_register (AVR32_EVBA, (int) &_evba); /* Enable exceptions. */ ENABLE_ALL_EXCEPTIONS (); /* Initialize interrupt handling. */ INTC_init_interrupts (); #if ((defined SD_MMC_MCI_0_MEM) && (SD_MMC_MCI_0_MEM == ENABLE)) || ((defined SD_MMC_MCI_1_MEM) && (SD_MMC_MCI_1_MEM == ENABLE)) sd_mmc_mci_resources_init (); #endif #ifdef FREERTOS_USED if (!ctrl_access_init ()) { return 42; } #endif // FREERTOS_USED // Init Hmatrix bus init_hmatrix (); // Initialize USB clock. pcl_configure_usb_clock (); /* SmartCard_test (); return 42; Test_ALL_Pins (); Test_MCI_Pins (); Test_LEDs_Pins (); TestUart0 (); while (1); return (0); */ #ifdef TIME_MEASURING_ENABLE TIME_MEASURING_Init (); #endif // For debugging BUFFERED_SIO_Init (); #ifdef INTERPRETER_ENABLE IDF_task_init (); #endif // Internal work task - FAT Access IW_task_init (); // Initialize USB tasks. usb_task_init (); #if USB_DEVICE_FEATURE == ENABLED #ifdef USB_MSD device_mass_storage_task_init (); #endif // USB_MSD #endif // CCID_Test_task_init (); #ifdef USB_CCID USB_CCID_task_init (); #endif DFU_DisableFirmwareUpdate (); // Stick always starts in application mode /**/ // Protect bootloader #ifdef STICK_20_A_MUSTER_PROD // flashc_set_bootloader_protected_size (0x2000); // flashc_activate_security_bit (); // Debugging disabled, only chip erase works (bootloader is save) , AES storage keys and setup // are erased flashc_lock_external_privileged_fetch (TRUE); // Disable external instruction fetch #endif // DFU_FirmwareResetUserpage (); // Set BOD33 detection reset to 3.06 Volt pm_bod33_ResetDisable (); pm_bod33_set_level (AVR32_PM_BOD33_LEVEL_306_VOLT); pm_bod33_ResetEnable (); // ushell_task_init(pcl_freq_param.pba_f); // Create the semaphore vSemaphoreCreateBinary (AES_semphr); // Wait for the semaphore while (!xSemaphoreTake (AES_semphr, portMAX_DELAY)); // Release the semaphore in order to start a new device/host task portBASE_TYPE task_woken = pdFALSE; /* taskENTER_CRITICAL (); xSemaphoreGiveFromISR (AES_semphr, &task_woken); taskEXIT_CRITICAL (); */ taskENTER_CRITICAL (); xSemaphoreGive (AES_semphr); taskEXIT_CRITICAL (); // Start stick vTaskStartScheduler (); // It never gets to this point return 42; }