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 configCPU_CLOCK_HZ ( SystemCoreClock )
#define configTICK_RATE_HZ ((TickType_t)1000)
#define configMAX_PRIORITIES ( 7 )
#define configMAX_PRIORITIES ( 32 )
#define configMINIMAL_STACK_SIZE ((uint16_t)128)
#define configTOTAL_HEAP_SIZE ((size_t)15360)
#define configMAX_TASK_NAME_LEN ( 24 )

View File

@ -23,8 +23,7 @@
#define __MAIN_H
#ifdef __cplusplus
extern "C"
{
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
@ -37,10 +36,10 @@ extern "C"
#include "tcpserverc.h"
#include "leds.h"
#include <string.h>
/* USER CODE END Includes */
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
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_ble1;
@ -71,20 +70,20 @@ extern "C"
#define LOCAL_PORT 5001
/* USER CODE END ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* USER CODE END EC */
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);
/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);
/* USER CODE BEGIN EFP */
@ -171,7 +170,7 @@ extern "C"
/* USER CODE BEGIN Private defines */
#define TRUE 0
#define FAIL -1
/* USER CODE END Private defines */
/* USER CODE END Private defines */
#ifdef __cplusplus
}

View File

@ -26,7 +26,7 @@
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "dac161s997.h"
#include "user_spi.h"
#include "ad7124.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@ -48,18 +48,20 @@
/* USER CODE BEGIN Variables */
/* USER CODE END Variables */
osThreadId defaultTaskHandle;
osThreadId led_toggleHandle;
osThreadId lwip_taskHandle;
osThreadId led_taskHandle;
osThreadId dac_taskHandle;
osThreadId adc_taskHandle;
/* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN FunctionPrototypes */
/* USER CODE END FunctionPrototypes */
void StartDefaultTask(void const *argument);
void start_led_toggle(void const *argument);
void start_tcp_task(void const *argument);
void start_led_toggle_task(void const *argument);
void start_dac_task(void const *argument);
void start_adc_task(void const *argument);
extern void MX_LWIP_Init(void);
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 */
/* Create the thread(s) */
/* definition and creation of defaultTask */
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 512);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
/* definition and creation of lwip_task */
osThreadDef(lwip_task, start_tcp_task, osPriorityHigh, 0, 512);
lwip_taskHandle = osThreadCreate(osThread(lwip_task), NULL);
/* definition and creation of led_toggle */
osThreadDef(led_toggle, start_led_toggle, osPriorityIdle, 0, 128);
led_toggleHandle = osThreadCreate(osThread(led_toggle), NULL);
/* definition and creation of led_task */
osThreadDef(led_task, start_led_toggle_task, osPriorityLow, 0, 128);
led_taskHandle = osThreadCreate(osThread(led_task), NULL);
/* 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);
/* 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 */
/* add 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
* @retval None
*/
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void const *argument)
/* USER CODE END Header_start_tcp_task */
void start_tcp_task(void const *argument)
{
/* init code for LWIP */
MX_LWIP_Init();
/* USER CODE BEGIN start_tcp_task */
tcp_echo_init();
/* USER CODE BEGIN StartDefaultTask */
/* Infinite loop */
for (;;)
{
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
* @retval None
*/
/* USER CODE END Header_start_led_toggle */
void start_led_toggle(void const *argument)
/* USER CODE END Header_start_led_toggle_task */
void start_led_toggle_task(void const *argument)
{
/* USER CODE BEGIN start_led_toggle */
HAL_GPIO_TogglePin(LED3_Y_GPIO_Port, LED3_Y_Pin);
/* USER CODE BEGIN start_led_toggle_task */
/* Infinite loop */
for (;;)
{
osDelay(500);
HAL_GPIO_TogglePin(LED2_Y_GPIO_Port, LED2_Y_Pin);
osDelay(500);
HAL_GPIO_TogglePin(LED2_G_GPIO_Port, LED2_G_Pin);
osDelay(1000);
}
/* USER CODE END start_led_toggle */
/* USER CODE END start_led_toggle_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 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 --------------------------------------------------*/
/* USER CODE BEGIN Application */

View File

@ -115,17 +115,17 @@ int main(void)
MX_USART2_UART_Init();
MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */
// tcp_echo_init(); // 务器初始化 TCP_Client_Init(); // 客户端初始化
// ad7124_setup(); // AD7124初始<E5889D>??
// dac161s997_init(); // DAC161S997初始<E5889D>??
// tcp_echo_init(); // 务器初始化 TCP_Client_Init(); // 客户端初始化
// ad7124_setup(); // AD7124初始<E5889D>???
// dac161s997_init(); // DAC161S997初始<E5889D>???
// 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(&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));
hart_ht1200m_reset(); // 复位HT1200M模块
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); // 动PWM输出用于驱动HT1200M模块
hart_ht1200m_reset(); // 夝佝HT1200M模块
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); // 动PWM输出用于驱动HT1200M模块
/* USER CODE END 2 */
/* Call init function for freertos objects (in freertos.c) */
@ -244,11 +244,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
HAL_IncTick();
}
/* 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 */
}

View File

@ -72,9 +72,10 @@ Dma.USART6_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphData
ETH.IPParameters=MediaInterface
ETH.MediaInterface=HAL_ETH_RMII_MODE
FREERTOS.FootprintOK=true
FREERTOS.IPParameters=Tasks01,configMAX_TASK_NAME_LEN,configENABLE_FPU,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.IPParameters=Tasks01,configMAX_TASK_NAME_LEN,configENABLE_FPU,configMAX_PRIORITIES,FootprintOK
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.configMAX_PRIORITIES=32
FREERTOS.configMAX_TASK_NAME_LEN=24
File.Version=6
GPIO.groupedBy=Group By Peripherals

View File

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

View File

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