硬汉嵌入式论坛

 找回密码
 立即注册
查看: 243|回复: 1
收起左侧

[ThreadX全家桶] threadx创建任务失败,TX_THREAD_ERROR

[复制链接]

14

主题

54

回帖

96

积分

初级会员

积分
96
发表于 2025-3-23 10:38:55 | 显示全部楼层 |阅读模式
本帖最后由 Superusrss 于 2025-3-23 10:44 编辑

新建任务代码如下,调试进去发现创建失败,在tx_thread_create那里不是空指针却进入判断了,返回TX_THREAD_ERROR,非常奇怪
环境为MDK5.36, 关闭优化

TX_THREAD_ERROR.jpg
[C] 纯文本查看 复制代码
#include "main.h"
#include "tx_api.h"
/*
*********************************************************************************************************
*                                 任务优先级,数值越小优先级越高
*********************************************************************************************************
*/
#define APP_CFG_TASK_START_PRIO 2u
/*
*********************************************************************************************************
*                                    任务栈大小,单位字节
*********************************************************************************************************
*/
#define APP_CFG_TASK_START_STK_SIZE 4096u
/*
*********************************************************************************************************
*                                       静态全局变量
*********************************************************************************************************
*/
static TX_THREAD AppTaskStartTCB;
static uint64_t AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE / 8];
/*
*********************************************************************************************************
*                                      函数声明
*********************************************************************************************************
*/
static void AppTaskStart(ULONG thread_input);

/*
*********************************************************************************************************
*        函 数 名: tx_application_define
*        功能说明: ThreadX专用的任务创建,通信组件创建函数
*        形    参: first_unused_memory  未使用的地址空间
*        返 回 值: 无
*********************************************************************************************************
*/
void tx_application_define(void *first_unused_memory)
{
    tx_thread_create(&AppTaskStartTCB,            /* 任务控制块地址 */
                     "App Task Start",            /* 任务名 */
                     AppTaskStart,                /* 启动任务函数地址 */
                     0,                           /* 传递给任务的参数 */
                     &AppTaskStartStk[0],         /* 堆栈基地址 */
                     APP_CFG_TASK_START_STK_SIZE, /* 堆栈空间大小 */
                     APP_CFG_TASK_START_PRIO,     /* 任务优先级*/
                     APP_CFG_TASK_START_PRIO,     /* 任务抢占阀值 */
                     TX_NO_TIME_SLICE,            /* 不开启时间片 */
                     TX_AUTO_START);              /* 创建后立即启动 */
}

void AppTaskStart(ULONG id)
{
    for (;;)
    {
        LL_GPIO_TogglePin(GPIOC, LL_GPIO_PIN_13);
        tx_thread_sleep(1000);
    }
}




回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-3-24 01:45:11 | 显示全部楼层
这种情况,不排除调试没有正常展示,可以这个里面加入个IO反转,实际下载运行看看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 21:44 , Processed in 0.231119 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表