FreeRTOS移植备份

This commit is contained in:
王绪洁 2025-02-10 13:55:11 +08:00
parent 35d74b8cfb
commit d19cec0889
7 changed files with 78 additions and 58 deletions

View File

@ -62,7 +62,7 @@
#define configUSE_TICK_HOOK 0 #define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( SystemCoreClock ) #define configCPU_CLOCK_HZ ( SystemCoreClock )
#define configTICK_RATE_HZ ((TickType_t)1000) #define configTICK_RATE_HZ ((TickType_t)1000)
#define configMAX_PRIORITIES ( 7 ) #define configMAX_PRIORITIES ( 32 )
#define configMINIMAL_STACK_SIZE ((uint16_t)128) #define configMINIMAL_STACK_SIZE ((uint16_t)128)
#define configTOTAL_HEAP_SIZE ((size_t)15360) #define configTOTAL_HEAP_SIZE ((size_t)15360)
#define configMAX_TASK_NAME_LEN ( 24 ) #define configMAX_TASK_NAME_LEN ( 24 )

View File

@ -23,8 +23,7 @@
#define __MAIN_H #define __MAIN_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C" {
{
#endif #endif
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
@ -37,10 +36,10 @@ extern "C"
#include "tcpserverc.h" #include "tcpserverc.h"
#include "leds.h" #include "leds.h"
#include <string.h> #include <string.h>
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/ /* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */ /* USER CODE BEGIN ET */
extern uint8_t tcp_echo_flags_hart1; // 标志ä½<C3A4>,连接æˆ<C3A6>功ç½?1 extern uint8_t tcp_echo_flags_hart1; // 标志ä½<C3A4>,连接æˆ<C3A6>功ç½?1
extern uint8_t tcp_echo_flags_hart2; // 标志ä½<C3A4>,连接æˆ<C3A6>功ç½?1 extern uint8_t tcp_echo_flags_hart2; // 标志ä½<C3A4>,连接æˆ<C3A6>功ç½?1
extern uint8_t tcp_echo_flags_ble1; extern uint8_t tcp_echo_flags_ble1;
@ -71,20 +70,20 @@ extern "C"
#define LOCAL_PORT 5001 #define LOCAL_PORT 5001
/* USER CODE END ET */ /* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/ /* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */ /* USER CODE BEGIN EC */
/* USER CODE END EC */ /* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */ /* USER CODE BEGIN EM */
/* USER CODE END EM */ /* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/ /* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void); void Error_Handler(void);
/* USER CODE BEGIN EFP */ /* USER CODE BEGIN EFP */
@ -171,7 +170,7 @@ extern "C"
/* USER CODE BEGIN Private defines */ /* USER CODE BEGIN Private defines */
#define TRUE 0 #define TRUE 0
#define FAIL -1 #define FAIL -1
/* USER CODE END Private defines */ /* USER CODE END Private defines */
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -26,7 +26,7 @@
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "dac161s997.h" #include "dac161s997.h"
#include "user_spi.h" #include "ad7124.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
@ -48,18 +48,20 @@
/* USER CODE BEGIN Variables */ /* USER CODE BEGIN Variables */
/* USER CODE END Variables */ /* USER CODE END Variables */
osThreadId defaultTaskHandle; osThreadId lwip_taskHandle;
osThreadId led_toggleHandle; osThreadId led_taskHandle;
osThreadId dac_taskHandle; osThreadId dac_taskHandle;
osThreadId adc_taskHandle;
/* Private function prototypes -----------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN FunctionPrototypes */ /* USER CODE BEGIN FunctionPrototypes */
/* USER CODE END FunctionPrototypes */ /* USER CODE END FunctionPrototypes */
void StartDefaultTask(void const *argument); void start_tcp_task(void const *argument);
void start_led_toggle(void const *argument); void start_led_toggle_task(void const *argument);
void start_dac_task(void const *argument); void start_dac_task(void const *argument);
void start_adc_task(void const *argument);
extern void MX_LWIP_Init(void); extern void MX_LWIP_Init(void);
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */ void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
@ -108,63 +110,65 @@ void MX_FREERTOS_Init(void)
/* USER CODE END RTOS_QUEUES */ /* USER CODE END RTOS_QUEUES */
/* Create the thread(s) */ /* Create the thread(s) */
/* definition and creation of defaultTask */ /* definition and creation of lwip_task */
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 512); osThreadDef(lwip_task, start_tcp_task, osPriorityHigh, 0, 512);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL); lwip_taskHandle = osThreadCreate(osThread(lwip_task), NULL);
/* definition and creation of led_toggle */ /* definition and creation of led_task */
osThreadDef(led_toggle, start_led_toggle, osPriorityIdle, 0, 128); osThreadDef(led_task, start_led_toggle_task, osPriorityLow, 0, 128);
led_toggleHandle = osThreadCreate(osThread(led_toggle), NULL); led_taskHandle = osThreadCreate(osThread(led_task), NULL);
/* definition and creation of dac_task */ /* definition and creation of dac_task */
osThreadDef(dac_task, start_dac_task, osPriorityIdle, 0, 512); osThreadDef(dac_task, start_dac_task, osPriorityLow, 0, 512);
dac_taskHandle = osThreadCreate(osThread(dac_task), NULL); dac_taskHandle = osThreadCreate(osThread(dac_task), NULL);
/* definition and creation of adc_task */
osThreadDef(adc_task, start_adc_task, osPriorityLow, 0, 128);
adc_taskHandle = osThreadCreate(osThread(adc_task), NULL);
/* USER CODE BEGIN RTOS_THREADS */ /* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */ /* add threads, ... */
/* USER CODE END RTOS_THREADS */ /* USER CODE END RTOS_THREADS */
} }
/* USER CODE BEGIN Header_StartDefaultTask */ /* USER CODE BEGIN Header_start_tcp_task */
/** /**
* @brief Function implementing the defaultTask thread. * @brief Function implementing the lwip_task thread.
* @param argument: Not used * @param argument: Not used
* @retval None * @retval None
*/ */
/* USER CODE END Header_StartDefaultTask */ /* USER CODE END Header_start_tcp_task */
void StartDefaultTask(void const *argument) void start_tcp_task(void const *argument)
{ {
/* init code for LWIP */ /* init code for LWIP */
MX_LWIP_Init(); MX_LWIP_Init();
/* USER CODE BEGIN start_tcp_task */
tcp_echo_init(); tcp_echo_init();
/* USER CODE BEGIN StartDefaultTask */
/* Infinite loop */ /* Infinite loop */
for (;;) for (;;)
{ {
osDelay(1); osDelay(1);
} }
/* USER CODE END StartDefaultTask */ /* USER CODE END start_tcp_task */
} }
/* USER CODE BEGIN Header_start_led_toggle */ /* USER CODE BEGIN Header_start_led_toggle_task */
/** /**
* @brief Function implementing the led_toggle thread. * @brief Function implementing the led_task thread.
* @param argument: Not used * @param argument: Not used
* @retval None * @retval None
*/ */
/* USER CODE END Header_start_led_toggle */ /* USER CODE END Header_start_led_toggle_task */
void start_led_toggle(void const *argument) void start_led_toggle_task(void const *argument)
{ {
/* USER CODE BEGIN start_led_toggle */ /* USER CODE BEGIN start_led_toggle_task */
HAL_GPIO_TogglePin(LED3_Y_GPIO_Port, LED3_Y_Pin);
/* Infinite loop */ /* Infinite loop */
for (;;) for (;;)
{ {
osDelay(500); HAL_GPIO_TogglePin(LED2_G_GPIO_Port, LED2_G_Pin);
HAL_GPIO_TogglePin(LED2_Y_GPIO_Port, LED2_Y_Pin); osDelay(1000);
osDelay(500);
} }
/* USER CODE END start_led_toggle */ /* USER CODE END start_led_toggle_task */
} }
/* USER CODE BEGIN Header_start_dac_task */ /* USER CODE BEGIN Header_start_dac_task */
@ -188,6 +192,26 @@ void start_dac_task(void const *argument)
/* USER CODE END start_dac_task */ /* USER CODE END start_dac_task */
} }
/* USER CODE BEGIN Header_start_adc_task */
/**
* @brief Function implementing the adc_task thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_start_adc_task */
void start_adc_task(void const *argument)
{
/* USER CODE BEGIN start_adc_task */
ad7124_setup();
/* Infinite loop */
for (;;)
{
ad7124_get_analog(STOP_NC_ADC);
osDelay(1000);
}
/* USER CODE END start_adc_task */
}
/* Private application code --------------------------------------------------*/ /* Private application code --------------------------------------------------*/
/* USER CODE BEGIN Application */ /* USER CODE BEGIN Application */

View File

@ -115,17 +115,17 @@ int main(void)
MX_USART2_UART_Init(); MX_USART2_UART_Init();
MX_USART3_UART_Init(); MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
// tcp_echo_init(); // 务器初始化 TCP_Client_Init(); // 客户端初始化 // tcp_echo_init(); // 务器初始化 TCP_Client_Init(); // 客户端初始化
// ad7124_setup(); // AD7124初始<E5889D>?? // ad7124_setup(); // AD7124初始<E5889D>???
// dac161s997_init(); // DAC161S997初始<E5889D>?? // dac161s997_init(); // DAC161S997初始<E5889D>???
// HAL_GPIO_WritePin(DO_EN_GPIO_Port, DO_EN_Pin, GPIO_PIN_SET); // DO输出使能 // HAL_GPIO_WritePin(DO_EN_GPIO_Port, DO_EN_Pin, GPIO_PIN_SET); // DO输出使能
HAL_UARTEx_ReceiveToIdle_DMA(&huart4, lcd_uart4.rx_data_temp, ARRAY_LEN(lcd_uart4.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart4, lcd_uart4.rx_data_temp, ARRAY_LEN(lcd_uart4.rx_data_temp));
HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp));
HAL_UARTEx_ReceiveToIdle_DMA(&huart3, ble2_uart3.rx_data_temp, ARRAY_LEN(ble2_uart3.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart3, ble2_uart3.rx_data_temp, ARRAY_LEN(ble2_uart3.rx_data_temp));
hart_ht1200m_reset(); // 复位HT1200M模块 hart_ht1200m_reset(); // 夝佝HT1200M模块
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); // 动PWM输出用于驱动HT1200M模块 HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); // 动PWM输出用于驱动HT1200M模块
/* USER CODE END 2 */ /* USER CODE END 2 */
/* Call init function for freertos objects (in freertos.c) */ /* Call init function for freertos objects (in freertos.c) */
@ -244,11 +244,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
HAL_IncTick(); HAL_IncTick();
} }
/* USER CODE BEGIN Callback 1 */ /* USER CODE BEGIN Callback 1 */
if (htim == (&htim3))
{
// User code to be executed on capture event for TIM3
HAL_GPIO_TogglePin(LED2_Y_GPIO_Port, LED2_Y_Pin);
}
/* USER CODE END Callback 1 */ /* USER CODE END Callback 1 */
} }

View File

@ -72,9 +72,10 @@ Dma.USART6_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphData
ETH.IPParameters=MediaInterface ETH.IPParameters=MediaInterface
ETH.MediaInterface=HAL_ETH_RMII_MODE ETH.MediaInterface=HAL_ETH_RMII_MODE
FREERTOS.FootprintOK=true FREERTOS.FootprintOK=true
FREERTOS.IPParameters=Tasks01,configMAX_TASK_NAME_LEN,configENABLE_FPU,FootprintOK FREERTOS.IPParameters=Tasks01,configMAX_TASK_NAME_LEN,configENABLE_FPU,configMAX_PRIORITIES,FootprintOK
FREERTOS.Tasks01=defaultTask,0,512,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;led_toggle,-3,128,start_led_toggle,Default,NULL,Dynamic,NULL,NULL;dac_task,-3,512,start_dac_task,Default,NULL,Dynamic,NULL,NULL FREERTOS.Tasks01=lwip_task,2,512,start_tcp_task,Default,NULL,Dynamic,NULL,NULL;led_task,-2,128,start_led_toggle_task,Default,NULL,Dynamic,NULL,NULL;dac_task,-2,512,start_dac_task,Default,NULL,Dynamic,NULL,NULL;adc_task,-2,128,start_adc_task,Default,NULL,Dynamic,NULL,NULL
FREERTOS.configENABLE_FPU=1 FREERTOS.configENABLE_FPU=1
FREERTOS.configMAX_PRIORITIES=32
FREERTOS.configMAX_TASK_NAME_LEN=24 FREERTOS.configMAX_TASK_NAME_LEN=24
File.Version=6 File.Version=6
GPIO.groupedBy=Group By Peripherals GPIO.groupedBy=Group By Peripherals

View File

@ -1,5 +1,5 @@
#include "dac161s997.h" #include "dac161s997.h"
#include "user_spi.h"
/** /**
* @brief DAC161S997芯片写入寄存器值 * @brief DAC161S997芯片写入寄存器值

View File

@ -2,6 +2,7 @@
#define __DAC161S997_H__ #define __DAC161S997_H__
#include "main.h" #include "main.h"
#include "user_spi.h"
/* Defines ********************************************************************/ /* Defines ********************************************************************/
/** /**
* @defgroup DAC161S997_REGS * @defgroup DAC161S997_REGS
@ -19,7 +20,6 @@
#define DAC161S997_SPI SPI1 #define DAC161S997_SPI SPI1
void dac161s997_write_reg(uint8_t dac_num, uint8_t reg, uint16_t data); void dac161s997_write_reg(uint8_t dac_num, uint8_t reg, uint16_t data);
uint16_t dac161s997_read(uint8_t reg); uint16_t dac161s997_read(uint8_t reg);
extern void dac161s997_init(void); extern void dac161s997_init(void);