/* * Copyright (c) 2015, Freescale Semiconductor, Inc. * Copyright 2016-2017 NXP * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ /* FreeRTOS kernel includes. */ #include "FreeRTOS.h" #include "task.h" #include "queue.h" #include "timers.h" /* Freescale includes. */ #include "fsl_device_registers.h" #include "fsl_debug_console.h" #include "pin_mux.h" #include "clock_config.h" #include "board.h" #include "usb_device_composite.h" /******************************************************************************* * Definitions ******************************************************************************/ /* Task priorities. */ #define hello_task_PRIORITY (configMAX_PRIORITIES - 1) /******************************************************************************* * Prototypes ******************************************************************************/ static void hello_task(void *pvParameters); static void usb_task(void *parameters); /******************************************************************************* * Code ******************************************************************************/ /*! * @brief Application entry point. */ int main(void) { /* Init board hardware. */ BOARD_ConfigMPU(); BOARD_InitBootPins(); BOARD_InitBootClocks(); BOARD_InitDebugConsole(); USB_DeviceApplicationInit(); if (xTaskCreate(hello_task, "Hello_task", configMINIMAL_STACK_SIZE + 100, NULL, hello_task_PRIORITY, NULL) != pdPASS) { PRINTF("Task creation failed!.\r\n"); for(;;) { // } } if(xTaskCreate(usb_task, "USB_task", configMINIMAL_STACK_SIZE + 100, NULL, 4, NULL) != pdPASS) { PRINTF("USB task creation failed.\r\n"); for(;;) { } } vTaskStartScheduler(); for (;;) ; } /*! * @brief Task responsible for printing of "Hello world." message. */ static void hello_task(void *pvParameters) { for (;;) { PRINTF("Hello world.\r\n"); vTaskSuspend(NULL); } } static void usb_task(void *pvParameters) { for(;;) { USB_DeviceTasks(); vTaskDelay(pdMS_TO_TICKS(1)); } }