Compare commits
No commits in common. "0d9aa2d8d27dec1588d4dc54c2e1a05ba447b02c" and "ff554a472c6c9f28a976cd4dcbd327799913a3c8" have entirely different histories.
0d9aa2d8d2
...
ff554a472c
80
.mxproject
80
.mxproject
File diff suppressed because one or more lines are too long
|
|
@ -148,7 +148,7 @@
|
||||||
* @brief This is the HAL system configuration section
|
* @brief This is the HAL system configuration section
|
||||||
*/
|
*/
|
||||||
#define VDD_VALUE 3300U /*!< Value of VDD in mv */
|
#define VDD_VALUE 3300U /*!< Value of VDD in mv */
|
||||||
#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority */
|
#define TICK_INT_PRIORITY 4U /*!< tick interrupt priority */
|
||||||
#define USE_RTOS 0U
|
#define USE_RTOS 0U
|
||||||
#define PREFETCH_ENABLE 1U
|
#define PREFETCH_ENABLE 1U
|
||||||
#define INSTRUCTION_CACHE_ENABLE 1U
|
#define INSTRUCTION_CACHE_ENABLE 1U
|
||||||
|
|
|
||||||
|
|
@ -51,10 +51,7 @@ void HardFault_Handler(void);
|
||||||
void MemManage_Handler(void);
|
void MemManage_Handler(void);
|
||||||
void BusFault_Handler(void);
|
void BusFault_Handler(void);
|
||||||
void UsageFault_Handler(void);
|
void UsageFault_Handler(void);
|
||||||
void SVC_Handler(void);
|
|
||||||
void DebugMon_Handler(void);
|
void DebugMon_Handler(void);
|
||||||
void PendSV_Handler(void);
|
|
||||||
void SysTick_Handler(void);
|
|
||||||
void USART1_IRQHandler(void);
|
void USART1_IRQHandler(void);
|
||||||
void TIM6_DAC_IRQHandler(void);
|
void TIM6_DAC_IRQHandler(void);
|
||||||
void DMA2_Stream2_IRQHandler(void);
|
void DMA2_Stream2_IRQHandler(void);
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ void MX_DMA_Init(void)
|
||||||
|
|
||||||
/* DMA interrupt init */
|
/* DMA interrupt init */
|
||||||
/* DMA2_Stream2_IRQn interrupt configuration */
|
/* DMA2_Stream2_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
|
HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
|
||||||
/* DMA2_Stream3_IRQn interrupt configuration */
|
/* DMA2_Stream3_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA2_Stream3_IRQn, 15, 0);
|
HAL_NVIC_SetPriority(DMA2_Stream3_IRQn, 15, 0);
|
||||||
|
|
@ -53,7 +53,7 @@ void MX_DMA_Init(void)
|
||||||
HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 15, 0);
|
HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 15, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);
|
HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);
|
||||||
/* DMA2_Stream7_IRQn interrupt configuration */
|
/* DMA2_Stream7_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
|
HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ osThreadId defaultTaskHandle;
|
||||||
|
|
||||||
void StartDefaultTask(void const * argument);
|
void StartDefaultTask(void const * argument);
|
||||||
|
|
||||||
|
extern void MX_USB_DEVICE_Init(void);
|
||||||
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
||||||
|
|
||||||
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
||||||
|
|
@ -120,6 +121,8 @@ void MX_FREERTOS_Init(void) {
|
||||||
/* USER CODE END Header_StartDefaultTask */
|
/* USER CODE END Header_StartDefaultTask */
|
||||||
void StartDefaultTask(void const * argument)
|
void StartDefaultTask(void const * argument)
|
||||||
{
|
{
|
||||||
|
/* init code for USB_DEVICE */
|
||||||
|
MX_USB_DEVICE_Init();
|
||||||
/* USER CODE BEGIN StartDefaultTask */
|
/* USER CODE BEGIN StartDefaultTask */
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
for(;;)
|
for(;;)
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
/* Includes ------------------------------------------------------------------*/
|
/* Includes ------------------------------------------------------------------*/
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "cmsis_os.h"
|
||||||
#include "dma.h"
|
#include "dma.h"
|
||||||
#include "fatfs.h"
|
#include "fatfs.h"
|
||||||
#include "rtc.h"
|
#include "rtc.h"
|
||||||
|
|
@ -58,6 +59,7 @@
|
||||||
|
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
void SystemClock_Config(void);
|
void SystemClock_Config(void);
|
||||||
|
void MX_FREERTOS_Init(void);
|
||||||
/* USER CODE BEGIN PFP */
|
/* USER CODE BEGIN PFP */
|
||||||
|
|
||||||
/* USER CODE END PFP */
|
/* USER CODE END PFP */
|
||||||
|
|
@ -101,7 +103,6 @@ int main(void)
|
||||||
MX_FATFS_Init();
|
MX_FATFS_Init();
|
||||||
MX_USART1_UART_Init();
|
MX_USART1_UART_Init();
|
||||||
MX_SPI3_Init();
|
MX_SPI3_Init();
|
||||||
MX_USB_DEVICE_Init();
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
my_mem_init(SRAMIN); // Initialize internal memory pool 1
|
my_mem_init(SRAMIN); // Initialize internal memory pool 1
|
||||||
my_mem_init(SRAMEX); // Initialize external memory pool 2
|
my_mem_init(SRAMEX); // Initialize external memory pool 2
|
||||||
|
|
@ -109,6 +110,13 @@ int main(void)
|
||||||
app_init();
|
app_init();
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
|
/* Call init function for freertos objects (in freertos.c) */
|
||||||
|
MX_FREERTOS_Init();
|
||||||
|
|
||||||
|
/* Start scheduler */
|
||||||
|
osKernelStart();
|
||||||
|
|
||||||
|
/* We should never get here as control is now taken by the scheduler */
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
/* USER CODE BEGIN WHILE */
|
/* USER CODE BEGIN WHILE */
|
||||||
while (1)
|
while (1)
|
||||||
|
|
@ -116,7 +124,6 @@ int main(void)
|
||||||
/* USER CODE END WHILE */
|
/* USER CODE END WHILE */
|
||||||
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
app_run();
|
|
||||||
}
|
}
|
||||||
/* USER CODE END 3 */
|
/* USER CODE END 3 */
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,8 @@ void HAL_MspInit(void)
|
||||||
__HAL_RCC_PWR_CLK_ENABLE();
|
__HAL_RCC_PWR_CLK_ENABLE();
|
||||||
|
|
||||||
/* System interrupt init*/
|
/* System interrupt init*/
|
||||||
|
/* PendSV_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
|
||||||
|
|
||||||
/* USER CODE BEGIN MspInit 1 */
|
/* USER CODE BEGIN MspInit 1 */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@
|
||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
#include "sgl.h"
|
#include "sgl.h"
|
||||||
#include "flow_core.h"
|
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* Private typedef -----------------------------------------------------------*/
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
|
@ -147,20 +146,6 @@ void UsageFault_Handler(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief This function handles System service call via SWI instruction.
|
|
||||||
* NOTE: Handled by FreeRTOS port.c
|
|
||||||
*/
|
|
||||||
// void SVC_Handler(void)
|
|
||||||
//{
|
|
||||||
// /* USER CODE BEGIN SVCall_IRQn 0 */
|
|
||||||
//
|
|
||||||
// /* USER CODE END SVCall_IRQn 0 */
|
|
||||||
// /* USER CODE BEGIN SVCall_IRQn 1 */
|
|
||||||
//
|
|
||||||
// /* USER CODE END SVCall_IRQn 1 */
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles Debug monitor.
|
* @brief This function handles Debug monitor.
|
||||||
*/
|
*/
|
||||||
|
|
@ -174,35 +159,6 @@ void DebugMon_Handler(void)
|
||||||
/* USER CODE END DebugMonitor_IRQn 1 */
|
/* USER CODE END DebugMonitor_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief This function handles Pendable request for system service.
|
|
||||||
* NOTE: Handled by FreeRTOS port.c
|
|
||||||
*/
|
|
||||||
// void PendSV_Handler(void)
|
|
||||||
//{
|
|
||||||
// /* USER CODE BEGIN PendSV_IRQn 0 */
|
|
||||||
//
|
|
||||||
// /* USER CODE END PendSV_IRQn 0 */
|
|
||||||
// /* USER CODE BEGIN PendSV_IRQn 1 */
|
|
||||||
//
|
|
||||||
// /* USER CODE END PendSV_IRQn 1 */
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief This function handles System tick timer.
|
|
||||||
* NOTE: Handled by FreeRTOS port.c
|
|
||||||
*/
|
|
||||||
// void SysTick_Handler(void)
|
|
||||||
//{
|
|
||||||
// /* USER CODE BEGIN SysTick_IRQn 0 */
|
|
||||||
//
|
|
||||||
// /* USER CODE END SysTick_IRQn 0 */
|
|
||||||
//
|
|
||||||
// /* USER CODE BEGIN SysTick_IRQn 1 */
|
|
||||||
//
|
|
||||||
// /* USER CODE END SysTick_IRQn 1 */
|
|
||||||
// }
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* STM32F4xx Peripheral Interrupt Handlers */
|
/* STM32F4xx Peripheral Interrupt Handlers */
|
||||||
/* Add here the Interrupt Handlers for the used peripherals. */
|
/* Add here the Interrupt Handlers for the used peripherals. */
|
||||||
|
|
@ -237,7 +193,6 @@ void TIM6_DAC_IRQHandler(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM6_DAC_IRQn 0 */
|
/* USER CODE BEGIN TIM6_DAC_IRQn 0 */
|
||||||
sgl_tick_inc(1);
|
sgl_tick_inc(1);
|
||||||
FLOW_TICK_UPDATE();
|
|
||||||
/* USER CODE END TIM6_DAC_IRQn 0 */
|
/* USER CODE END TIM6_DAC_IRQn 0 */
|
||||||
HAL_TIM_IRQHandler(&htim6);
|
HAL_TIM_IRQHandler(&htim6);
|
||||||
/* USER CODE BEGIN TIM6_DAC_IRQn 1 */
|
/* USER CODE BEGIN TIM6_DAC_IRQn 1 */
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||||
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart1_tx);
|
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart1_tx);
|
||||||
|
|
||||||
/* USART1 interrupt Init */
|
/* USART1 interrupt Init */
|
||||||
HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(USART1_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(USART1_IRQn);
|
HAL_NVIC_EnableIRQ(USART1_IRQn);
|
||||||
/* USER CODE BEGIN USART1_MspInit 1 */
|
/* USER CODE BEGIN USART1_MspInit 1 */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "stm32f4xx_hal.h"
|
#include "stm32f4xx_hal.h"
|
||||||
#include "bsp_driver_sd.h"
|
#include "bsp_driver_sd.h"
|
||||||
|
#include "cmsis_os.h" /* _FS_REENTRANT set to 1 and CMSIS API chosen */
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------------/
|
/*-----------------------------------------------------------------------------/
|
||||||
/ Function Configurations
|
/ Function Configurations
|
||||||
|
|
@ -238,9 +239,11 @@
|
||||||
/ can be opened simultaneously under file lock control. Note that the file
|
/ can be opened simultaneously under file lock control. Note that the file
|
||||||
/ lock control is independent of re-entrancy. */
|
/ lock control is independent of re-entrancy. */
|
||||||
|
|
||||||
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
|
#define _FS_REENTRANT 1 /* 0:Disable or 1:Enable */
|
||||||
|
|
||||||
|
#define _USE_MUTEX 0 /* 0:Disable or 1:Enable */
|
||||||
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
|
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
|
||||||
#define _SYNC_t NULL
|
#define _SYNC_t osSemaphoreId
|
||||||
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
|
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
|
||||||
/ module itself. Note that regardless of this option, file access to different
|
/ module itself. Note that regardless of this option, file access to different
|
||||||
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
|
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
|
||||||
|
|
@ -258,11 +261,10 @@
|
||||||
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
|
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
|
||||||
/ included somewhere in the scope of ff.h. */
|
/ included somewhere in the scope of ff.h. */
|
||||||
|
|
||||||
/* define the ff_malloc ff_free macros as standard malloc free */
|
/* define the ff_malloc ff_free macros as FreeRTOS pvPortMalloc and vPortFree macros */
|
||||||
#if !defined(ff_malloc) && !defined(ff_free)
|
#if !defined(ff_malloc) && !defined(ff_free)
|
||||||
#include <stdlib.h>
|
#define ff_malloc pvPortMalloc
|
||||||
#define ff_malloc malloc
|
#define ff_free vPortFree
|
||||||
#define ff_free free
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _FFCONF */
|
#endif /* _FFCONF */
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
|
|
||||||
/* Note: code generation based on sd_diskio_template_bspv1.c v2.1.4
|
/* Note: code generation based on sd_diskio_dma_rtos_template_bspv1.c v2.1.4
|
||||||
as "Use dma template" is disabled. */
|
as FreeRTOS is enabled. */
|
||||||
|
|
||||||
/* USER CODE BEGIN firstSection */
|
/* USER CODE BEGIN firstSection */
|
||||||
/* can be used to modify / undefine following code or add new definitions */
|
/* can be used to modify / undefine following code or add new definitions */
|
||||||
|
|
@ -28,16 +28,33 @@
|
||||||
#include "ff_gen_drv.h"
|
#include "ff_gen_drv.h"
|
||||||
#include "sd_diskio.h"
|
#include "sd_diskio.h"
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
/* Private typedef -----------------------------------------------------------*/
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
/* use the default SD timout as defined in the platform BSP driver*/
|
|
||||||
#if defined(SDMMC_DATATIMEOUT)
|
#define QUEUE_SIZE (uint32_t) 10
|
||||||
#define SD_TIMEOUT SDMMC_DATATIMEOUT
|
#define READ_CPLT_MSG (uint32_t) 1
|
||||||
#elif defined(SD_DATATIMEOUT)
|
#define WRITE_CPLT_MSG (uint32_t) 2
|
||||||
#define SD_TIMEOUT SD_DATATIMEOUT
|
/*
|
||||||
#else
|
==================================================================
|
||||||
|
enable the defines below to send custom rtos messages
|
||||||
|
when an error or an abort occurs.
|
||||||
|
Notice: depending on the HAL/SD driver the HAL_SD_ErrorCallback()
|
||||||
|
may not be available.
|
||||||
|
See BSP_SD_ErrorCallback() and BSP_SD_AbortCallback() below
|
||||||
|
==================================================================
|
||||||
|
|
||||||
|
#define RW_ERROR_MSG (uint32_t) 3
|
||||||
|
#define RW_ABORT_MSG (uint32_t) 4
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* the following Timeout is useful to give the control back to the applications
|
||||||
|
* in case of errors in either BSP_SD_ReadCpltCallback() or BSP_SD_WriteCpltCallback()
|
||||||
|
* the value by default is as defined in the BSP platform driver otherwise 30 secs
|
||||||
|
*/
|
||||||
#define SD_TIMEOUT 30 * 1000
|
#define SD_TIMEOUT 30 * 1000
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SD_DEFAULT_BLOCK_SIZE 512
|
#define SD_DEFAULT_BLOCK_SIZE 512
|
||||||
|
|
||||||
|
|
@ -51,10 +68,41 @@
|
||||||
/* #define DISABLE_SD_INIT */
|
/* #define DISABLE_SD_INIT */
|
||||||
/* USER CODE END disableSDInit */
|
/* USER CODE END disableSDInit */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* when using cacheable memory region, it may be needed to maintain the cache
|
||||||
|
* validity. Enable the define below to activate a cache maintenance at each
|
||||||
|
* read and write operation.
|
||||||
|
* Notice: This is applicable only for cortex M7 based platform.
|
||||||
|
*/
|
||||||
|
/* USER CODE BEGIN enableSDDmaCacheMaintenance */
|
||||||
|
/* #define ENABLE_SD_DMA_CACHE_MAINTENANCE 1 */
|
||||||
|
/* USER CODE END enableSDDmaCacheMaintenance */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some DMA requires 4-Byte aligned address buffer to correctly read/write data,
|
||||||
|
* in FatFs some accesses aren't thus we need a 4-byte aligned scratch buffer to correctly
|
||||||
|
* transfer data
|
||||||
|
*/
|
||||||
|
/* USER CODE BEGIN enableScratchBuffer */
|
||||||
|
/* #define ENABLE_SCRATCH_BUFFER */
|
||||||
|
/* USER CODE END enableScratchBuffer */
|
||||||
|
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
#if defined(ENABLE_SCRATCH_BUFFER)
|
||||||
|
#if defined (ENABLE_SD_DMA_CACHE_MAINTENANCE)
|
||||||
|
ALIGN_32BYTES(static uint8_t scratch[BLOCKSIZE]); // 32-Byte aligned for cache maintenance
|
||||||
|
#else
|
||||||
|
__ALIGN_BEGIN static uint8_t scratch[BLOCKSIZE] __ALIGN_END;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
/* Disk status */
|
/* Disk status */
|
||||||
static volatile DSTATUS Stat = STA_NOINIT;
|
static volatile DSTATUS Stat = STA_NOINIT;
|
||||||
|
|
||||||
|
#if (osCMSIS <= 0x20000U)
|
||||||
|
static osMessageQId SDQueueID = NULL;
|
||||||
|
#else
|
||||||
|
static osMessageQueueId_t SDQueueID = NULL;
|
||||||
|
#endif
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
static DSTATUS SD_CheckStatus(BYTE lun);
|
static DSTATUS SD_CheckStatus(BYTE lun);
|
||||||
DSTATUS SD_initialize (BYTE);
|
DSTATUS SD_initialize (BYTE);
|
||||||
|
|
@ -87,11 +135,32 @@ const Diskio_drvTypeDef SD_Driver =
|
||||||
|
|
||||||
/* Private functions ---------------------------------------------------------*/
|
/* Private functions ---------------------------------------------------------*/
|
||||||
|
|
||||||
|
static int SD_CheckStatusWithTimeout(uint32_t timeout)
|
||||||
|
{
|
||||||
|
uint32_t timer;
|
||||||
|
/* block until SDIO peripheral is ready again or a timeout occur */
|
||||||
|
#if (osCMSIS <= 0x20000U)
|
||||||
|
timer = osKernelSysTick();
|
||||||
|
while( osKernelSysTick() - timer < timeout)
|
||||||
|
#else
|
||||||
|
timer = osKernelGetTickCount();
|
||||||
|
while( osKernelGetTickCount() - timer < timeout)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if (BSP_SD_GetCardState() == SD_TRANSFER_OK)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
static DSTATUS SD_CheckStatus(BYTE lun)
|
static DSTATUS SD_CheckStatus(BYTE lun)
|
||||||
{
|
{
|
||||||
Stat = STA_NOINIT;
|
Stat = STA_NOINIT;
|
||||||
|
|
||||||
if(BSP_SD_GetCardState() == MSD_OK)
|
if(BSP_SD_GetCardState() == SD_TRANSFER_OK)
|
||||||
{
|
{
|
||||||
Stat &= ~STA_NOINIT;
|
Stat &= ~STA_NOINIT;
|
||||||
}
|
}
|
||||||
|
|
@ -108,6 +177,16 @@ DSTATUS SD_initialize(BYTE lun)
|
||||||
{
|
{
|
||||||
Stat = STA_NOINIT;
|
Stat = STA_NOINIT;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* check that the kernel has been started before continuing
|
||||||
|
* as the osMessage API will fail otherwise
|
||||||
|
*/
|
||||||
|
#if (osCMSIS <= 0x20000U)
|
||||||
|
if(osKernelRunning())
|
||||||
|
#else
|
||||||
|
if(osKernelGetState() == osKernelRunning)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
#if !defined(DISABLE_SD_INIT)
|
#if !defined(DISABLE_SD_INIT)
|
||||||
|
|
||||||
if(BSP_SD_Init() == MSD_OK)
|
if(BSP_SD_Init() == MSD_OK)
|
||||||
|
|
@ -119,6 +198,30 @@ Stat = STA_NOINIT;
|
||||||
Stat = SD_CheckStatus(lun);
|
Stat = SD_CheckStatus(lun);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* if the SD is correctly initialized, create the operation queue
|
||||||
|
* if not already created
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (Stat != STA_NOINIT)
|
||||||
|
{
|
||||||
|
if (SDQueueID == NULL)
|
||||||
|
{
|
||||||
|
#if (osCMSIS <= 0x20000U)
|
||||||
|
osMessageQDef(SD_Queue, QUEUE_SIZE, uint16_t);
|
||||||
|
SDQueueID = osMessageCreate (osMessageQ(SD_Queue), NULL);
|
||||||
|
#else
|
||||||
|
SDQueueID = osMessageQueueNew(QUEUE_SIZE, 2, NULL);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SDQueueID == NULL)
|
||||||
|
{
|
||||||
|
Stat |= STA_NOINIT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return Stat;
|
return Stat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -146,19 +249,149 @@ DSTATUS SD_status(BYTE lun)
|
||||||
|
|
||||||
DRESULT SD_read(BYTE lun, BYTE *buff, DWORD sector, UINT count)
|
DRESULT SD_read(BYTE lun, BYTE *buff, DWORD sector, UINT count)
|
||||||
{
|
{
|
||||||
|
uint8_t ret;
|
||||||
DRESULT res = RES_ERROR;
|
DRESULT res = RES_ERROR;
|
||||||
|
uint32_t timer;
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
osEvent event;
|
||||||
|
#else
|
||||||
|
uint16_t event;
|
||||||
|
osStatus_t status;
|
||||||
|
#endif
|
||||||
|
#if (ENABLE_SD_DMA_CACHE_MAINTENANCE == 1)
|
||||||
|
uint32_t alignedAddr;
|
||||||
|
#endif
|
||||||
|
/*
|
||||||
|
* ensure the SDCard is ready for a new operation
|
||||||
|
*/
|
||||||
|
|
||||||
if(BSP_SD_ReadBlocks((uint32_t*)buff,
|
if (SD_CheckStatusWithTimeout(SD_TIMEOUT) < 0)
|
||||||
(uint32_t) (sector),
|
|
||||||
count, SD_TIMEOUT) == MSD_OK)
|
|
||||||
{
|
|
||||||
/* wait until the read operation is finished */
|
|
||||||
while(BSP_SD_GetCardState()!= MSD_OK)
|
|
||||||
{
|
{
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_SCRATCH_BUFFER)
|
||||||
|
if (!((uint32_t)buff & 0x3))
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
/* Fast path cause destination buffer is correctly aligned */
|
||||||
|
ret = BSP_SD_ReadBlocks_DMA((uint32_t*)buff, (uint32_t)(sector), count);
|
||||||
|
|
||||||
|
if (ret == MSD_OK) {
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
/* wait for a message from the queue or a timeout */
|
||||||
|
event = osMessageGet(SDQueueID, SD_TIMEOUT);
|
||||||
|
|
||||||
|
if (event.status == osEventMessage)
|
||||||
|
{
|
||||||
|
if (event.value.v == READ_CPLT_MSG)
|
||||||
|
{
|
||||||
|
timer = osKernelSysTick();
|
||||||
|
/* block until SDIO IP is ready or a timeout occur */
|
||||||
|
while(osKernelSysTick() - timer <SD_TIMEOUT)
|
||||||
|
#else
|
||||||
|
status = osMessageQueueGet(SDQueueID, (void *)&event, NULL, SD_TIMEOUT);
|
||||||
|
if ((status == osOK) && (event == READ_CPLT_MSG))
|
||||||
|
{
|
||||||
|
timer = osKernelGetTickCount();
|
||||||
|
/* block until SDIO IP is ready or a timeout occur */
|
||||||
|
while(osKernelGetTickCount() - timer <SD_TIMEOUT)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if (BSP_SD_GetCardState() == SD_TRANSFER_OK)
|
||||||
|
{
|
||||||
|
res = RES_OK;
|
||||||
|
#if (ENABLE_SD_DMA_CACHE_MAINTENANCE == 1)
|
||||||
|
/*
|
||||||
|
the SCB_InvalidateDCache_by_Addr() requires a 32-Byte aligned address,
|
||||||
|
adjust the address and the D-Cache size to invalidate accordingly.
|
||||||
|
*/
|
||||||
|
alignedAddr = (uint32_t)buff & ~0x1F;
|
||||||
|
SCB_InvalidateDCache_by_Addr((uint32_t*)alignedAddr, count*BLOCKSIZE + ((uint32_t)buff - alignedAddr));
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_SCRATCH_BUFFER)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Slow path, fetch each sector a part and memcpy to destination buffer */
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
ret = BSP_SD_ReadBlocks_DMA((uint32_t*)scratch, (uint32_t)sector++, 1);
|
||||||
|
if (ret == MSD_OK )
|
||||||
|
{
|
||||||
|
/* wait until the read is successful or a timeout occurs */
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
/* wait for a message from the queue or a timeout */
|
||||||
|
event = osMessageGet(SDQueueID, SD_TIMEOUT);
|
||||||
|
|
||||||
|
if (event.status == osEventMessage)
|
||||||
|
{
|
||||||
|
if (event.value.v == READ_CPLT_MSG)
|
||||||
|
{
|
||||||
|
timer = osKernelSysTick();
|
||||||
|
/* block until SDIO IP is ready or a timeout occur */
|
||||||
|
while(osKernelSysTick() - timer <SD_TIMEOUT)
|
||||||
|
#else
|
||||||
|
status = osMessageQueueGet(SDQueueID, (void *)&event, NULL, SD_TIMEOUT);
|
||||||
|
if ((status == osOK) && (event == READ_CPLT_MSG))
|
||||||
|
{
|
||||||
|
timer = osKernelGetTickCount();
|
||||||
|
/* block until SDIO IP is ready or a timeout occur */
|
||||||
|
ret = MSD_ERROR;
|
||||||
|
while(osKernelGetTickCount() - timer < SD_TIMEOUT)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
ret = BSP_SD_GetCardState();
|
||||||
|
|
||||||
|
if (ret == MSD_OK)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret != MSD_OK)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if (ENABLE_SD_DMA_CACHE_MAINTENANCE == 1)
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* invalidate the scratch buffer before the next read to get the actual data instead of the cached one
|
||||||
|
*/
|
||||||
|
SCB_InvalidateDCache_by_Addr((uint32_t*)scratch, BLOCKSIZE);
|
||||||
|
#endif
|
||||||
|
memcpy(buff, scratch, BLOCKSIZE);
|
||||||
|
buff += BLOCKSIZE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((i == count) && (ret == MSD_OK ))
|
||||||
res = RES_OK;
|
res = RES_OK;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -178,18 +411,155 @@ DRESULT SD_read(BYTE lun, BYTE *buff, DWORD sector, UINT count)
|
||||||
DRESULT SD_write(BYTE lun, const BYTE *buff, DWORD sector, UINT count)
|
DRESULT SD_write(BYTE lun, const BYTE *buff, DWORD sector, UINT count)
|
||||||
{
|
{
|
||||||
DRESULT res = RES_ERROR;
|
DRESULT res = RES_ERROR;
|
||||||
|
uint32_t timer;
|
||||||
|
|
||||||
if(BSP_SD_WriteBlocks((uint32_t*)buff,
|
#if (osCMSIS < 0x20000U)
|
||||||
(uint32_t)(sector),
|
osEvent event;
|
||||||
count, SD_TIMEOUT) == MSD_OK)
|
#else
|
||||||
{
|
uint16_t event;
|
||||||
/* wait until the Write operation is finished */
|
osStatus_t status;
|
||||||
while(BSP_SD_GetCardState() != MSD_OK)
|
#endif
|
||||||
|
|
||||||
|
#if defined(ENABLE_SCRATCH_BUFFER)
|
||||||
|
int32_t ret;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ensure the SDCard is ready for a new operation
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (SD_CheckStatusWithTimeout(SD_TIMEOUT) < 0)
|
||||||
{
|
{
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_SCRATCH_BUFFER)
|
||||||
|
if (!((uint32_t)buff & 0x3))
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
#if (ENABLE_SD_DMA_CACHE_MAINTENANCE == 1)
|
||||||
|
uint32_t alignedAddr;
|
||||||
|
/*
|
||||||
|
the SCB_CleanDCache_by_Addr() requires a 32-Byte aligned address
|
||||||
|
adjust the address and the D-Cache size to clean accordingly.
|
||||||
|
*/
|
||||||
|
alignedAddr = (uint32_t)buff & ~0x1F;
|
||||||
|
SCB_CleanDCache_by_Addr((uint32_t*)alignedAddr, count*BLOCKSIZE + ((uint32_t)buff - alignedAddr));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(BSP_SD_WriteBlocks_DMA((uint32_t*)buff,
|
||||||
|
(uint32_t) (sector),
|
||||||
|
count) == MSD_OK)
|
||||||
|
{
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
/* Get the message from the queue */
|
||||||
|
event = osMessageGet(SDQueueID, SD_TIMEOUT);
|
||||||
|
|
||||||
|
if (event.status == osEventMessage)
|
||||||
|
{
|
||||||
|
if (event.value.v == WRITE_CPLT_MSG)
|
||||||
|
{
|
||||||
|
#else
|
||||||
|
status = osMessageQueueGet(SDQueueID, (void *)&event, NULL, SD_TIMEOUT);
|
||||||
|
if ((status == osOK) && (event == WRITE_CPLT_MSG))
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
timer = osKernelSysTick();
|
||||||
|
/* block until SDIO IP is ready or a timeout occur */
|
||||||
|
while(osKernelSysTick() - timer < SD_TIMEOUT)
|
||||||
|
#else
|
||||||
|
timer = osKernelGetTickCount();
|
||||||
|
/* block until SDIO IP is ready or a timeout occur */
|
||||||
|
while(osKernelGetTickCount() - timer < SD_TIMEOUT)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if (BSP_SD_GetCardState() == SD_TRANSFER_OK)
|
||||||
|
{
|
||||||
|
res = RES_OK;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#if defined(ENABLE_SCRATCH_BUFFER)
|
||||||
|
else {
|
||||||
|
/* Slow path, fetch each sector a part and memcpy to destination buffer */
|
||||||
|
int i;
|
||||||
|
|
||||||
|
#if (ENABLE_SD_DMA_CACHE_MAINTENANCE == 1)
|
||||||
|
/*
|
||||||
|
* invalidate the scratch buffer before the next write to get the actual data instead of the cached one
|
||||||
|
*/
|
||||||
|
SCB_InvalidateDCache_by_Addr((uint32_t*)scratch, BLOCKSIZE);
|
||||||
|
#endif
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
memcpy((void *)scratch, buff, BLOCKSIZE);
|
||||||
|
buff += BLOCKSIZE;
|
||||||
|
|
||||||
|
ret = BSP_SD_WriteBlocks_DMA((uint32_t*)scratch, (uint32_t)sector++, 1);
|
||||||
|
if (ret == MSD_OK )
|
||||||
|
{
|
||||||
|
/* wait until the read is successful or a timeout occurs */
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
/* wait for a message from the queue or a timeout */
|
||||||
|
event = osMessageGet(SDQueueID, SD_TIMEOUT);
|
||||||
|
|
||||||
|
if (event.status == osEventMessage)
|
||||||
|
{
|
||||||
|
if (event.value.v == READ_CPLT_MSG)
|
||||||
|
{
|
||||||
|
timer = osKernelSysTick();
|
||||||
|
/* block until SDIO IP is ready or a timeout occur */
|
||||||
|
while(osKernelSysTick() - timer <SD_TIMEOUT)
|
||||||
|
#else
|
||||||
|
status = osMessageQueueGet(SDQueueID, (void *)&event, NULL, SD_TIMEOUT);
|
||||||
|
if ((status == osOK) && (event == READ_CPLT_MSG))
|
||||||
|
{
|
||||||
|
timer = osKernelGetTickCount();
|
||||||
|
/* block until SDIO IP is ready or a timeout occur */
|
||||||
|
ret = MSD_ERROR;
|
||||||
|
while(osKernelGetTickCount() - timer < SD_TIMEOUT)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
ret = BSP_SD_GetCardState();
|
||||||
|
|
||||||
|
if (ret == MSD_OK)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret != MSD_OK)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((i == count) && (ret == MSD_OK ))
|
||||||
res = RES_OK;
|
res = RES_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
#endif /* _USE_WRITE == 1 */
|
#endif /* _USE_WRITE == 1 */
|
||||||
|
|
@ -252,6 +622,62 @@ DRESULT SD_ioctl(BYTE lun, BYTE cmd, void *buff)
|
||||||
/* can be used to modify previous code / undefine following code / add new code */
|
/* can be used to modify previous code / undefine following code / add new code */
|
||||||
/* USER CODE END afterIoctlSection */
|
/* USER CODE END afterIoctlSection */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN callbackSection */
|
||||||
|
/* can be used to modify / following code or add new code */
|
||||||
|
/* USER CODE END callbackSection */
|
||||||
|
/**
|
||||||
|
* @brief Tx Transfer completed callbacks
|
||||||
|
* @param hsd: SD handle
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void BSP_SD_WriteCpltCallback(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* No need to add an "osKernelRunning()" check here, as the SD_initialize()
|
||||||
|
* is always called before any SD_Read()/SD_Write() call
|
||||||
|
*/
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
osMessagePut(SDQueueID, WRITE_CPLT_MSG, 0);
|
||||||
|
#else
|
||||||
|
const uint16_t msg = WRITE_CPLT_MSG;
|
||||||
|
osMessageQueuePut(SDQueueID, (const void *)&msg, NULL, 0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Rx Transfer completed callbacks
|
||||||
|
* @param hsd: SD handle
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void BSP_SD_ReadCpltCallback(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* No need to add an "osKernelRunning()" check here, as the SD_initialize()
|
||||||
|
* is always called before any SD_Read()/SD_Write() call
|
||||||
|
*/
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
osMessagePut(SDQueueID, READ_CPLT_MSG, 0);
|
||||||
|
#else
|
||||||
|
const uint16_t msg = READ_CPLT_MSG;
|
||||||
|
osMessageQueuePut(SDQueueID, (const void *)&msg, NULL, 0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN ErrorAbortCallbacks */
|
||||||
|
/*
|
||||||
|
void BSP_SD_AbortCallback(void)
|
||||||
|
{
|
||||||
|
#if (osCMSIS < 0x20000U)
|
||||||
|
osMessagePut(SDQueueID, RW_ABORT_MSG, 0);
|
||||||
|
#else
|
||||||
|
const uint16_t msg = RW_ABORT_MSG;
|
||||||
|
osMessageQueuePut(SDQueueID, (const void *)&msg, 0, 0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/* USER CODE END ErrorAbortCallbacks */
|
||||||
|
|
||||||
/* USER CODE BEGIN lastSection */
|
/* USER CODE BEGIN lastSection */
|
||||||
/* can be used to modify / undefine previous code or add new code */
|
/* can be used to modify / undefine previous code or add new code */
|
||||||
/* USER CODE END lastSection */
|
/* USER CODE END lastSection */
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
|
|
||||||
/* Note: code generation based on sd_diskio_template.h */
|
/* Note: code generation based on sd_diskio_dma_rtos_template.h */
|
||||||
|
|
||||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
#ifndef __SD_DISKIO_H
|
#ifndef __SD_DISKIO_H
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,15 @@
|
||||||
*/
|
*/
|
||||||
#define CMSIS_device_header "stm32f4xx.h"
|
#define CMSIS_device_header "stm32f4xx.h"
|
||||||
|
|
||||||
|
/* LVGL.LVGL::LVGL:lvgl:Benchmark:8.3.5 */
|
||||||
|
/*! \brief enable demo:bencharmk */
|
||||||
|
#define LV_USE_DEMO_BENCHMARK 1
|
||||||
|
/* LVGL.LVGL::LVGL:lvgl:Essential:8.3.5 */
|
||||||
|
/*! \brief Enable LVGL */
|
||||||
|
#define RTE_GRAPHICS_LVGL
|
||||||
|
/* LVGL.LVGL::LVGL:lvgl:Extra Themes:8.3.5 */
|
||||||
|
/*! \brief use extra themes, widgets and layouts */
|
||||||
|
#define RTE_GRAPHICS_LVGL_USE_EXTRA_THEMES
|
||||||
|
|
||||||
|
|
||||||
#endif /* RTE_COMPONENTS_H */
|
#endif /* RTE_COMPONENTS_H */
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
|
@ -339,7 +339,7 @@
|
||||||
<MiscControls>--diag_suppress=68 --diag_suppress=111 --diag_suppress=188 --diag_suppress=223 --diag_suppress=546 --diag_suppress=1295</MiscControls>
|
<MiscControls>--diag_suppress=68 --diag_suppress=111 --diag_suppress=188 --diag_suppress=223 --diag_suppress=546 --diag_suppress=1295</MiscControls>
|
||||||
<Define>STM32,USE_HAL_DRIVER,STM32F407xx</Define>
|
<Define>STM32,USE_HAL_DRIVER,STM32F407xx</Define>
|
||||||
<Undefine></Undefine>
|
<Undefine></Undefine>
|
||||||
<IncludePath>../Core/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Drivers/CMSIS/Include;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F;../User/application;../User/board;../User/system;../User/system/lib/inc;../User/system/bsp;../FATFS/Target;../FATFS/App;../Middlewares/Third_Party/FatFs/src;../User/system/lib/lcd;../User/system/lib/lcd/gui/Config;../User/system/lib/lcd/gui/Core;../USB_DEVICE/App;../USB_DEVICE/Target;../Middlewares/ST/STM32_USB_Device_Library/Core/Inc;../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc;../User/system/letter_shell;../User/system/sgl;../User/system/sgl/include;../User/system/sgl/widgets;../User/system/sgl/mm/lwmem;../User/system/lib/flow</IncludePath>
|
<IncludePath>../Core/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Drivers/CMSIS/Include;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F;../User/application;../User/board;../User/system;../User/system/lib/inc;../User/system/bsp;../FATFS/Target;../FATFS/App;../Middlewares/Third_Party/FatFs/src;../User/system/lib/lcd;../User/system/lib/lcd/gui/Config;../User/system/lib/lcd/gui/Core;../USB_DEVICE/App;../USB_DEVICE/Target;../Middlewares/ST/STM32_USB_Device_Library/Core/Inc;../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc;../User/system/letter_shell;..\User\system\sgl;..\User\system\sgl\include;..\User\system\sgl\widgets;..\User\system\sgl\mm\lwmem</IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
<Aads>
|
<Aads>
|
||||||
|
|
@ -357,7 +357,7 @@
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
<Undefine></Undefine>
|
<Undefine></Undefine>
|
||||||
<IncludePath></IncludePath>
|
<IncludePath>../Core/Inc</IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Aads>
|
</Aads>
|
||||||
<LDads>
|
<LDads>
|
||||||
|
|
@ -403,6 +403,62 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>../Core/Src/gpio.c</FilePath>
|
<FilePath>../Core/Src/gpio.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>freertos.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Core/Src/freertos.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>dma.c</FileName>
|
<FileName>dma.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
|
|
@ -683,11 +739,6 @@
|
||||||
</FileArmAds>
|
</FileArmAds>
|
||||||
</FileOption>
|
</FileOption>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<FileName>freertos.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Core/Src/freertos.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
<File>
|
||||||
<FileName>stm32f4xx_it.c</FileName>
|
<FileName>stm32f4xx_it.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
|
|
@ -1350,6 +1401,640 @@
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Middlewares/FreeRTOS</GroupName>
|
||||||
|
<GroupOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>2</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<GroupArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>4</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
<Aads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<thumb>2</thumb>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<SwStkChk>2</SwStkChk>
|
||||||
|
<NoWarn>2</NoWarn>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<ClangAsOpt>1</ClangAsOpt>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Aads>
|
||||||
|
</GroupArmAds>
|
||||||
|
</GroupOption>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>croutine.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/croutine.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>event_groups.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/event_groups.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>list.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/list.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>queue.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/queue.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>stream_buffer.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tasks.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/tasks.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>timers.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/timers.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>cmsis_os.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>heap_4.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>port.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>User/application</GroupName>
|
<GroupName>User/application</GroupName>
|
||||||
<Files>
|
<Files>
|
||||||
|
|
@ -1468,11 +2153,6 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\User\system\lib\src\wl_flash.c</FilePath>
|
<FilePath>..\User\system\lib\src\wl_flash.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<FileName>flow_core.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\system\lib\flow\flow_core.c</FilePath>
|
|
||||||
</File>
|
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
|
@ -3117,62 +3797,10 @@
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>Middlewares/FreeRTOS</GroupName>
|
<GroupName>::CMSIS</GroupName>
|
||||||
<Files>
|
|
||||||
<File>
|
|
||||||
<FileName>croutine.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/croutine.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>event_groups.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/event_groups.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>list.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/list.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>queue.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/queue.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>stream_buffer.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>tasks.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/tasks.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>timers.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/timers.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>cmsis_os.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>heap_4.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>port.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c</FilePath>
|
|
||||||
</File>
|
|
||||||
</Files>
|
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>::CMSIS</GroupName>
|
<GroupName>::LVGL</GroupName>
|
||||||
</Group>
|
</Group>
|
||||||
</Groups>
|
</Groups>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
@ -3193,6 +3821,11 @@
|
||||||
<targetInfo name="freertos_f407" versionMatchMode="fixed"/>
|
<targetInfo name="freertos_f407" versionMatchMode="fixed"/>
|
||||||
</targetInfos>
|
</targetInfos>
|
||||||
</package>
|
</package>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5">
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407" versionMatchMode="fixed"/>
|
||||||
|
</targetInfos>
|
||||||
|
</package>
|
||||||
</packages>
|
</packages>
|
||||||
<apis/>
|
<apis/>
|
||||||
<components>
|
<components>
|
||||||
|
|
@ -3202,8 +3835,97 @@
|
||||||
<targetInfo name="freertos_f407"/>
|
<targetInfo name="freertos_f407"/>
|
||||||
</targetInfos>
|
</targetInfos>
|
||||||
</component>
|
</component>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Benchmark" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential">
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Essential" Cvendor="LVGL" Cversion="8.3.5">
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Extra Themes" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential">
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Porting" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential">
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
</components>
|
</components>
|
||||||
<files/>
|
<files>
|
||||||
|
<file attr="config" category="sourceC" name="lv_cmsis_pack.c" version="1.0.0">
|
||||||
|
<instance index="0">RTE\LVGL\lv_cmsis_pack.c</instance>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Essential" Cvendor="LVGL" Cversion="8.3.5"/>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="preIncludeGlobal" name="lv_conf_cmsis.h" version="2.4.0">
|
||||||
|
<instance index="0">RTE\LVGL\lv_conf_cmsis.h</instance>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Essential" Cvendor="LVGL" Cversion="8.3.5"/>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="sourceC" name="examples\porting\lv_port_disp_template.c" version="2.1.0">
|
||||||
|
<instance index="0">RTE\LVGL\lv_port_disp_template.c</instance>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Porting" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential"/>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="examples\porting\lv_port_disp_template.h" version="2.1.0">
|
||||||
|
<instance index="0">RTE\LVGL\lv_port_disp_template.h</instance>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Porting" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential"/>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="sourceC" name="examples\porting\lv_port_fs_template.c" version="2.1.0">
|
||||||
|
<instance index="0">RTE\LVGL\lv_port_fs_template.c</instance>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Porting" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential"/>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="examples\porting\lv_port_fs_template.h" version="2.1.0">
|
||||||
|
<instance index="0">RTE\LVGL\lv_port_fs_template.h</instance>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Porting" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential"/>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="sourceC" name="examples\porting\lv_port_indev_template.c" version="2.1.0">
|
||||||
|
<instance index="0">RTE\LVGL\lv_port_indev_template.c</instance>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Porting" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential"/>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="examples\porting\lv_port_indev_template.h" version="2.1.0">
|
||||||
|
<instance index="0">RTE\LVGL\lv_port_indev_template.h</instance>
|
||||||
|
<component Cbundle="LVGL" Cclass="LVGL" Cgroup="lvgl" Csub="Porting" Cvendor="LVGL" Cversion="8.3.5" condition="LVGL-Essential"/>
|
||||||
|
<package name="lvgl" schemaVersion="1.4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" version="8.3.5"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="freertos_f407"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
</files>
|
||||||
</RTE>
|
</RTE>
|
||||||
|
|
||||||
<LayerInfo>
|
<LayerInfo>
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -91,7 +91,7 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
|
||||||
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
||||||
|
|
||||||
/* Peripheral interrupt init */
|
/* Peripheral interrupt init */
|
||||||
HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(OTG_FS_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
|
HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
|
||||||
/* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
|
/* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
#include "app.h"
|
#include "app.h"
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
|
#include "os.h"
|
||||||
#include "shell_port.h"
|
#include "shell_port.h"
|
||||||
#include "../system/lib/flow/flow.h"
|
|
||||||
#include "../system/sgl/sgl.h"
|
#include "../system/sgl/sgl.h"
|
||||||
|
|
||||||
|
static TaskHandle_t business_task_handle = NULL;
|
||||||
extern Shell shell; /* defined in shell_port.c */
|
extern Shell shell; /* defined in shell_port.c */
|
||||||
|
|
||||||
static struct flow fl_business;
|
|
||||||
|
|
||||||
static void sgl_print_hello(void)
|
static void sgl_print_hello(void)
|
||||||
{
|
{
|
||||||
sgl_obj_delete(NULL);
|
sgl_obj_delete(NULL);
|
||||||
|
|
@ -25,20 +24,20 @@ static void sgl_print_hello(void)
|
||||||
sgl_task_handle(); /* 渲染:Hello World 出现在屏幕 */
|
sgl_task_handle(); /* 渲染:Hello World 出现在屏幕 */
|
||||||
}
|
}
|
||||||
|
|
||||||
static char business_process(struct flow *fl)
|
void business_task(void *pvParameters)
|
||||||
{
|
{
|
||||||
FL_HEAD(fl);
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
rtc_update();
|
rtc_update();
|
||||||
|
|
||||||
sgl_print_hello();
|
sgl_print_hello();
|
||||||
FL_LOCK_DELAY(fl, FL_CLOCK_SEC * 1U); /* 显示 1 秒 */
|
vTaskDelay(1000); /* 显示 1 秒 */
|
||||||
|
|
||||||
lcd_rtc_test();
|
lcd_rtc_test();
|
||||||
led_toggle(LED_USER);
|
led_toggle(LED_USER);
|
||||||
FL_LOCK_DELAY(fl, FL_CLOCK_SEC * 1U); /* 显示 1 秒 */
|
vTaskDelay(1000);
|
||||||
}
|
}
|
||||||
FL_TAIL(fl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cmd_mem_info(void)
|
static void cmd_mem_info(void)
|
||||||
|
|
@ -54,12 +53,12 @@ SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
|
||||||
|
|
||||||
void app_init(void)
|
void app_init(void)
|
||||||
{
|
{
|
||||||
FL_INIT(&fl_business);
|
userShellInit(); // 初始化shell
|
||||||
userShellInit();
|
// 创建任务
|
||||||
}
|
xTaskCreate((TaskFunction_t)business_task, // 任务入口函数
|
||||||
|
(const char *)"business_task", // 任务名字
|
||||||
void app_run(void)
|
(uint16_t)1024, // 任务栈大小
|
||||||
{
|
(void *)NULL, // 任务入口函数参数
|
||||||
business_process(&fl_business);
|
(UBaseType_t)1, // 任务优先级
|
||||||
shellTask(&shell);
|
(TaskHandle_t *)&business_task_handle); // 任务句柄
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include "rtc.h"
|
#include "rtc.h"
|
||||||
#include "spi.h"
|
#include "spi.h"
|
||||||
#include "../system/sgl/sgl.h"
|
#include "../system/sgl/sgl.h"
|
||||||
|
#include "os.h"
|
||||||
board_t board;
|
board_t board;
|
||||||
|
|
||||||
#define SGL_PANEL_WIDTH 240
|
#define SGL_PANEL_WIDTH 240
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
* 使能此宏,则`shellTask()`函数会一直循环读取输入,一般使用操作系统建立shell
|
* 使能此宏,则`shellTask()`函数会一直循环读取输入,一般使用操作系统建立shell
|
||||||
* 任务时使能此宏,关闭此宏的情况下,一般适用于无操作系统,在主循环中调用`shellTask()`
|
* 任务时使能此宏,关闭此宏的情况下,一般适用于无操作系统,在主循环中调用`shellTask()`
|
||||||
*/
|
*/
|
||||||
#define SHELL_TASK_WHILE 0
|
#define SHELL_TASK_WHILE 1
|
||||||
#endif /** SHELL_TASK_WHILE */
|
#endif /** SHELL_TASK_WHILE */
|
||||||
|
|
||||||
#ifndef SHELL_USING_CMD_EXPORT
|
#ifndef SHELL_USING_CMD_EXPORT
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,21 @@
|
||||||
* @file shell_port.c
|
* @file shell_port.c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "task.h"
|
||||||
#include "shell.h"
|
#include "shell.h"
|
||||||
|
|
||||||
#include "stm32f4xx_hal.h"
|
#include "stm32f4xx_hal.h"
|
||||||
#include "usart.h"
|
#include "usart.h"
|
||||||
|
|
||||||
#include "shell_port.h"
|
#include "shell_port.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
|
||||||
Shell shell;
|
Shell shell;
|
||||||
char shellBuffer[512];
|
char shellBuffer[512];
|
||||||
|
|
||||||
|
static SemaphoreHandle_t shellMutex;
|
||||||
|
|
||||||
// DMA接收缓冲区和shell环形缓冲区
|
// DMA接收缓冲区和shell环形缓冲区
|
||||||
#define SHELL_UART_DMA_BUF_SIZE 256
|
#define SHELL_UART_DMA_BUF_SIZE 256
|
||||||
#define SHELL_UART_RX_BUF_SIZE 128
|
#define SHELL_UART_RX_BUF_SIZE 128
|
||||||
|
|
@ -59,22 +66,59 @@ short userShellRead(char *data, unsigned short len)
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 用户shell上锁
|
||||||
|
*
|
||||||
|
* @param shell shell
|
||||||
|
*
|
||||||
|
* @return int 0
|
||||||
|
*/
|
||||||
|
int userShellLock(Shell *shell)
|
||||||
|
{
|
||||||
|
// xSemaphoreTakeRecursive(shellMutex, portMAX_DELAY);
|
||||||
|
xSemaphoreTake(shellMutex, portMAX_DELAY);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 用户shell解锁
|
||||||
|
*
|
||||||
|
* @param shell shell
|
||||||
|
*
|
||||||
|
* @return int 0
|
||||||
|
*/
|
||||||
|
int userShellUnlock(Shell *shell)
|
||||||
|
{
|
||||||
|
// xSemaphoreGiveRecursive(shellMutex);
|
||||||
|
xSemaphoreGive(shellMutex);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 用户shell初始化
|
* @brief 用户shell初始化
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void userShellInit(void)
|
void userShellInit(void)
|
||||||
{
|
{
|
||||||
|
shellMutex = xSemaphoreCreateMutex();
|
||||||
|
|
||||||
shell.write = userShellWrite;
|
shell.write = userShellWrite;
|
||||||
shell.read = userShellRead;
|
shell.read = userShellRead;
|
||||||
shell.lock = NULL;
|
shell.lock = userShellLock;
|
||||||
shell.unlock = NULL;
|
shell.unlock = userShellUnlock;
|
||||||
shellInit(&shell, shellBuffer, 512);
|
shellInit(&shell, shellBuffer, 512);
|
||||||
|
|
||||||
// 启动DMA接收
|
// 启动DMA接收
|
||||||
HAL_UART_Receive_DMA(&huart1, shell_uart_dma_buf, SHELL_UART_DMA_BUF_SIZE);
|
HAL_UART_Receive_DMA(&huart1, shell_uart_dma_buf, SHELL_UART_DMA_BUF_SIZE);
|
||||||
// 使能空闲中断
|
// 使能空闲中断
|
||||||
__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
|
__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
|
||||||
|
|
||||||
|
xTaskCreate((TaskFunction_t)shellTask, // 任务入口函数
|
||||||
|
(const char *)"shell_task", // 任务名字
|
||||||
|
(uint16_t)1024, // 任务栈大小
|
||||||
|
(void *)&shell, // 任务入口函数参数(传递 shell 对象指针)
|
||||||
|
(UBaseType_t)1, // 任务优先级
|
||||||
|
NULL); // 任务句柄
|
||||||
}
|
}
|
||||||
|
|
||||||
// USART1 空闲中断处理(DMA新数据转入shell缓冲区)
|
// USART1 空闲中断处理(DMA新数据转入shell缓冲区)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
#ifndef __SHELL_PORT_H__
|
#ifndef __SHELL_PORT_H__
|
||||||
#define __SHELL_PORT_H__
|
#define __SHELL_PORT_H__
|
||||||
|
|
||||||
|
#include "semphr.h"
|
||||||
#include "shell.h"
|
#include "shell.h"
|
||||||
|
|
||||||
extern Shell shell;
|
extern Shell shell;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
#include "flow_core.h"
|
#include "flow_core.h"
|
||||||
#include "flow_sem.h"
|
#include "flow_sem.h"
|
||||||
|
|
||||||
#define FL_HARD_TICK (1U) /* 系统硬件中断一次所需要的时间,单位ms */
|
#define FL_HARD_TICK (10U) /* 系统硬件中断一次所需要的时间,单位ms */
|
||||||
#define FL_CLOCK_SEC (1000U / FL_HARD_TICK) /* 一秒钟需要的tick,可以根据需求添加其他时间更短的宏 */
|
#define FL_CLOCK_SEC (1000U / FL_HARD_TICK) /* 一秒钟需要的tick,可以根据需求添加其他时间更短的宏 */
|
||||||
#define FL_CLOCK_100MSEC (100U / FL_HARD_TICK)
|
#define FL_CLOCK_100MSEC (100U / FL_HARD_TICK)
|
||||||
#define FL_CLOCK_10MSEC (FL_CLOCK_100MSEC / 10U)
|
#define FL_CLOCK_10MSEC (FL_CLOCK_100MSEC / 10U)
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,8 @@ FATFS0.BSP.mode=Input
|
||||||
FATFS0.BSP.name=Detect_SDIO
|
FATFS0.BSP.name=Detect_SDIO
|
||||||
FATFS0.BSP.semaphore=
|
FATFS0.BSP.semaphore=
|
||||||
FATFS0.BSP.solution=PB10
|
FATFS0.BSP.solution=PB10
|
||||||
|
FREERTOS.IPParameters=Tasks01
|
||||||
|
FREERTOS.Tasks01=defaultTask,0,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL
|
||||||
File.Version=6
|
File.Version=6
|
||||||
GPIO.groupedBy=Group By Peripherals
|
GPIO.groupedBy=Group By Peripherals
|
||||||
KeepUserPlacement=false
|
KeepUserPlacement=false
|
||||||
|
|
@ -75,16 +77,17 @@ Mcu.CPN=STM32F407ZGT6
|
||||||
Mcu.Family=STM32F4
|
Mcu.Family=STM32F4
|
||||||
Mcu.IP0=DMA
|
Mcu.IP0=DMA
|
||||||
Mcu.IP1=FATFS
|
Mcu.IP1=FATFS
|
||||||
Mcu.IP10=USB_OTG_FS
|
Mcu.IP10=USB_DEVICE
|
||||||
Mcu.IP2=NVIC
|
Mcu.IP11=USB_OTG_FS
|
||||||
Mcu.IP3=RCC
|
Mcu.IP2=FREERTOS
|
||||||
Mcu.IP4=RTC
|
Mcu.IP3=NVIC
|
||||||
Mcu.IP5=SDIO
|
Mcu.IP4=RCC
|
||||||
Mcu.IP6=SPI3
|
Mcu.IP5=RTC
|
||||||
Mcu.IP7=SYS
|
Mcu.IP6=SDIO
|
||||||
Mcu.IP8=USART1
|
Mcu.IP7=SPI3
|
||||||
Mcu.IP9=USB_DEVICE
|
Mcu.IP8=SYS
|
||||||
Mcu.IPNb=11
|
Mcu.IP9=USART1
|
||||||
|
Mcu.IPNb=12
|
||||||
Mcu.Name=STM32F407Z(E-G)Tx
|
Mcu.Name=STM32F407Z(E-G)Tx
|
||||||
Mcu.Package=LQFP144
|
Mcu.Package=LQFP144
|
||||||
Mcu.Pin0=PC13-ANTI_TAMP
|
Mcu.Pin0=PC13-ANTI_TAMP
|
||||||
|
|
@ -105,10 +108,11 @@ Mcu.Pin21=PB3
|
||||||
Mcu.Pin22=PB4
|
Mcu.Pin22=PB4
|
||||||
Mcu.Pin23=PB5
|
Mcu.Pin23=PB5
|
||||||
Mcu.Pin24=VP_FATFS_VS_SDIO
|
Mcu.Pin24=VP_FATFS_VS_SDIO
|
||||||
Mcu.Pin25=VP_RTC_VS_RTC_Activate
|
Mcu.Pin25=VP_FREERTOS_VS_CMSIS_V1
|
||||||
Mcu.Pin26=VP_RTC_VS_RTC_Calendar
|
Mcu.Pin26=VP_RTC_VS_RTC_Activate
|
||||||
Mcu.Pin27=VP_SYS_VS_tim6
|
Mcu.Pin27=VP_RTC_VS_RTC_Calendar
|
||||||
Mcu.Pin28=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
Mcu.Pin28=VP_SYS_VS_tim6
|
||||||
|
Mcu.Pin29=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
||||||
Mcu.Pin3=PH0-OSC_IN
|
Mcu.Pin3=PH0-OSC_IN
|
||||||
Mcu.Pin4=PH1-OSC_OUT
|
Mcu.Pin4=PH1-OSC_OUT
|
||||||
Mcu.Pin5=PB10
|
Mcu.Pin5=PB10
|
||||||
|
|
@ -116,32 +120,35 @@ Mcu.Pin6=PD11
|
||||||
Mcu.Pin7=PD12
|
Mcu.Pin7=PD12
|
||||||
Mcu.Pin8=PD13
|
Mcu.Pin8=PD13
|
||||||
Mcu.Pin9=PC8
|
Mcu.Pin9=PC8
|
||||||
Mcu.PinsNb=29
|
Mcu.PinsNb=30
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F407ZGTx
|
Mcu.UserName=STM32F407ZGTx
|
||||||
MxCube.Version=6.9.2
|
MxCube.Version=6.9.2
|
||||||
MxDb.Version=DB.6.0.92
|
MxDb.Version=DB.6.0.92
|
||||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.DMA2_Stream2_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
NVIC.DMA2_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DMA2_Stream3_IRQn=true\:15\:0\:true\:false\:true\:false\:true\:true
|
NVIC.DMA2_Stream3_IRQn=true\:15\:0\:true\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DMA2_Stream6_IRQn=true\:15\:0\:true\:false\:true\:false\:true\:true
|
NVIC.DMA2_Stream6_IRQn=true\:15\:0\:true\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DMA2_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
NVIC.DMA2_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.ForceEnableDMAVector=true
|
NVIC.ForceEnableDMAVector=true
|
||||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.OTG_FS_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
NVIC.OTG_FS_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false
|
||||||
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
|
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
|
||||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false\:false
|
||||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
|
NVIC.SavedPendsvIrqHandlerGenerated=true
|
||||||
NVIC.TIM6_DAC_IRQn=true\:15\:0\:true\:false\:true\:false\:true\:true
|
NVIC.SavedSvcallIrqHandlerGenerated=true
|
||||||
|
NVIC.SavedSystickIrqHandlerGenerated=true
|
||||||
|
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false
|
||||||
|
NVIC.TIM6_DAC_IRQn=true\:4\:0\:true\:false\:true\:false\:false\:true\:true
|
||||||
NVIC.TimeBase=TIM6_DAC_IRQn
|
NVIC.TimeBase=TIM6_DAC_IRQn
|
||||||
NVIC.TimeBaseIP=TIM6
|
NVIC.TimeBaseIP=TIM6
|
||||||
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
NVIC.USART1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
PA10.Mode=Asynchronous
|
PA10.Mode=Asynchronous
|
||||||
PA10.Signal=USART1_RX
|
PA10.Signal=USART1_RX
|
||||||
PA11.Mode=Device_Only
|
PA11.Mode=Device_Only
|
||||||
|
|
@ -299,6 +306,8 @@ USB_OTG_FS.IPParameters=VirtualMode
|
||||||
USB_OTG_FS.VirtualMode=Device_Only
|
USB_OTG_FS.VirtualMode=Device_Only
|
||||||
VP_FATFS_VS_SDIO.Mode=SDIO
|
VP_FATFS_VS_SDIO.Mode=SDIO
|
||||||
VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO
|
VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO
|
||||||
|
VP_FREERTOS_VS_CMSIS_V1.Mode=CMSIS_V1
|
||||||
|
VP_FREERTOS_VS_CMSIS_V1.Signal=FREERTOS_VS_CMSIS_V1
|
||||||
VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
|
VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
|
||||||
VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
|
VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
|
||||||
VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar
|
VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar
|
||||||
|
|
@ -308,3 +317,4 @@ VP_SYS_VS_tim6.Signal=SYS_VS_tim6
|
||||||
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS
|
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS
|
||||||
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
||||||
board=custom
|
board=custom
|
||||||
|
rtos.0.ip=FREERTOS
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue