/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * *

© Copyright (c) 2021 STMicroelectronics. * All rights reserved.

* * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "cmsis_os.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "tusb.h" #include "ide_async.h" #include "cdc.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ RTC_HandleTypeDef hrtc; UART_HandleTypeDef huart2; PCD_HandleTypeDef hpcd_USB_OTG_HS; /* Definitions for tinyusb */ osThreadId_t tinyusbHandle; const osThreadAttr_t tinyusb_attributes = { .name = "tinyusb", .stack_size = 1024 * 4, .priority = (osPriority_t) osPriorityNormal, }; /* Definitions for ide */ osThreadId_t ideHandle; const osThreadAttr_t ide_attributes = { .name = "ide", .stack_size = 1024 * 4, .priority = (osPriority_t) osPriorityNormal, }; /* Definitions for ide */ osThreadId_t cdcHandle; const osThreadAttr_t cdc_attributes = { .name = "cdc", .stack_size = 1024 * 4, .priority = (osPriority_t) osPriorityNormal, }; /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_RTC_Init(void); static void MX_USART2_UART_Init(void); static void MX_USB_OTG_HS_PCD_Init(void); void tinyusb_task(void *argument); void ide_task(void *argument); void cdc_task(void *argument); void cdctask(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ #ifdef DEBUG int _write (int fhdl, const void *buf, size_t count) { uint8_t const* buf8 = (uint8_t const*) buf; for(size_t i=0; i