mirror of
https://gitee.com/dlmu-cone/tronone-h7-scaffold
synced 2026-07-25 03:47:46 +08:00
daemon init failed
This commit is contained in:
@@ -131,7 +131,21 @@ const osThreadAttr_t instask_attributes = {
|
|||||||
//@Todo:测试使用
|
//@Todo:测试使用
|
||||||
osThreadId insTaskHandle;
|
osThreadId insTaskHandle;
|
||||||
|
|
||||||
void StartINSTASK(void const *argument);
|
void StartINSTASK(void *argument);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//@Todo:测试daemon(但是没有daemon注册)
|
||||||
|
const osThreadAttr_t daemon_attributes = {
|
||||||
|
.name = "daemon",
|
||||||
|
.priority = osPriorityAboveNormal, // 较高优先级
|
||||||
|
.stack_size = 1024 * 4 // 栈大小,单位是字节(通常是字数的4倍)
|
||||||
|
};
|
||||||
|
|
||||||
|
//@Todo:测试使用
|
||||||
|
osThreadId daemonHandle;
|
||||||
|
|
||||||
|
void DaemonTask();
|
||||||
|
|
||||||
/* USER CODE END FunctionPrototypes */
|
/* USER CODE END FunctionPrototypes */
|
||||||
|
|
||||||
@@ -249,6 +263,10 @@ void MX_FREERTOS_Init(void)
|
|||||||
//@Todo:INS_Task是测试版本
|
//@Todo:INS_Task是测试版本
|
||||||
// 创建线程
|
// 创建线程
|
||||||
insTaskHandle = osThreadNew(StartINSTASK, NULL, &instask_attributes);
|
insTaskHandle = osThreadNew(StartINSTASK, NULL, &instask_attributes);
|
||||||
|
|
||||||
|
//@Todo:daemon是测试版本
|
||||||
|
// 创建线程
|
||||||
|
daemonHandle = osThreadNew(DaemonTask, NULL, &daemon_attributes);
|
||||||
/* USER CODE END RTOS_THREADS */
|
/* USER CODE END RTOS_THREADS */
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_EVENTS */
|
/* USER CODE BEGIN RTOS_EVENTS */
|
||||||
@@ -406,7 +424,7 @@ __weak void RefereeTask(void *argument)
|
|||||||
/* USER CODE BEGIN Application */
|
/* USER CODE BEGIN Application */
|
||||||
|
|
||||||
//@Todo:INS_Task是测试阶段使用。
|
//@Todo:INS_Task是测试阶段使用。
|
||||||
__attribute__((noreturn)) void StartINSTASK(void const *argument)
|
__attribute__((noreturn)) void StartINSTASK(void *argument)
|
||||||
{
|
{
|
||||||
static float ins_start;
|
static float ins_start;
|
||||||
static float ins_dt;
|
static float ins_dt;
|
||||||
@@ -425,6 +443,23 @@ __attribute__((noreturn)) void StartINSTASK(void const *argument)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Function implementing the reference thread.
|
||||||
|
* @param argument: Not used
|
||||||
|
* @retval None
|
||||||
|
* @Todo:Deamon task
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header_RefereeTask */
|
||||||
|
__weak void DaemonTask()
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DaemonTask */
|
||||||
|
/* Infinite loop */
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
osDelay(1);
|
||||||
|
}
|
||||||
|
/* USER CODE END RefereeTask */
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE END Application */
|
/* USER CODE END Application */
|
||||||
|
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ void XidiPowerMeterDecode(FDCANInstance *_instance)
|
|||||||
XidiPowerMeter_Msg_s *measure = &power_meter_instance->powermeter_msg;
|
XidiPowerMeter_Msg_s *measure = &power_meter_instance->powermeter_msg;
|
||||||
|
|
||||||
// 重载守护进程
|
// 重载守护进程
|
||||||
// if (power_meter_instance->daemon != NULL)
|
if (power_meter_instance->daemon != NULL)
|
||||||
// {
|
{
|
||||||
// DaemonReload(power_meter_instance->daemon);
|
DaemonReload(power_meter_instance->daemon);
|
||||||
// }
|
}
|
||||||
|
|
||||||
// 计算时间间隔
|
// 计算时间间隔
|
||||||
measure->dt = DWT_GetDeltaT(&power_meter_instance->feed_cnt);
|
measure->dt = DWT_GetDeltaT(&power_meter_instance->feed_cnt);
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
#include "daemon.h"
|
#include "daemon.h"
|
||||||
#include "bsp_dwt.h"
|
#include "bsp_dwt.h"
|
||||||
#include "stdlib.h"
|
#include "cmsis_os2.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
#include "stdlib.h"
|
||||||
|
|
||||||
/* 用于保存所有的daemon instance */
|
/* 用于保存所有的daemon instance */
|
||||||
static Daemon_Instance *daemon_instances[DAEMON_MAX_NUM];
|
static Daemon_Instance *daemon_instances[DAEMON_MAX_NUM];
|
||||||
|
|||||||
@@ -45,9 +45,10 @@ void RobotCMDInit()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ==================== 4. 在控制任务中读取使用 ====================
|
// ==================== 4. 在控制任务中读取使用 ====================
|
||||||
void CmdTask()
|
void CmdTask(void *argument)
|
||||||
{
|
{
|
||||||
RobotCMDInit();
|
RobotCMDInit();
|
||||||
|
DaemonReload(chassis_power_meter->daemon);
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (chassis_power_meter != NULL)
|
if (chassis_power_meter != NULL)
|
||||||
|
|||||||
@@ -1,20 +1,22 @@
|
|||||||
// //
|
|
||||||
// // Created by ASUS on 2025/12/15.
|
|
||||||
// //
|
|
||||||
//
|
//
|
||||||
// #ifndef TRONONEH7_SCAFFOLD_DEV_CMD_H
|
// Created by ASUS on 2025/12/15.
|
||||||
// #define TRONONEH7_SCAFFOLD_DEV_CMD_H
|
|
||||||
//
|
//
|
||||||
// /**
|
|
||||||
// * @brief 机器人核心控制任务初始化,会被RobotInit()调用
|
#ifndef TRONONEH7_SCAFFOLD_DEV_CMD_H
|
||||||
// *
|
#define TRONONEH7_SCAFFOLD_DEV_CMD_H
|
||||||
// */
|
|
||||||
// void RobotCMDInit();
|
// 如果用到了 FreeRTOS 的 API,可以在这里包含,或者在需要用到的源文件里包含
|
||||||
//
|
// #include "cmsis_os2.h"
|
||||||
// /**
|
|
||||||
// * @brief 机器人核心控制任务,200Hz频率运行(必须高于视觉发送频率)
|
/**
|
||||||
// *
|
* @brief 机器人指令控制及外设初始化
|
||||||
// */
|
*/
|
||||||
// void RobotCMDTask();
|
void RobotCMDInit(void);
|
||||||
//
|
|
||||||
// #endif //TRONONEH7_SCAFFOLD_DEV_CMD_H
|
/**
|
||||||
|
* @brief 指令下发主任务 (FreeRTOS 线程)
|
||||||
|
* @param argument 线程传入参数
|
||||||
|
*/
|
||||||
|
void CmdTask(void *argument);
|
||||||
|
|
||||||
|
#endif // TRONONEH7_SCAFFOLD_DEV_CMD_H
|
||||||
|
|||||||
Reference in New Issue
Block a user