硬汉嵌入式论坛

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

[ThreadX全家桶] IDLE任务加sleep跑不起来

[复制链接]

85

主题

798

回帖

1053

积分

至尊会员

积分
1053
发表于 2022-9-14 00:51:33 | 显示全部楼层 |阅读模式
Threadx 6.1.12,空闲任务尝试加了一个sleep,结果跑不起来。大佬知道为啥吗?
[C] 纯文本查看 复制代码
static void AppTaskIDLE(ULONG thread_input)
{	
  TX_INTERRUPT_SAVE_AREA

  (void)thread_input;
	
  while(1)
  {
      TX_DISABLE
      // 低功耗处理
      TX_RESTORE
      bsp_LedToggle(4);
      tx_thread_sleep(10);
  }			  	 	       											   
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2022-9-14 02:59:19 | 显示全部楼层
ThreadX本身是没有空闲任务,只要用户创建就是一个独立的任务,估计哪里还有点问题。
回复

使用道具 举报

6

主题

57

回帖

75

积分

初级会员

积分
75
发表于 2022-9-14 09:41:40 | 显示全部楼层
__WFI();空闲里面用这个,如果CPU有cache的话要特别处理。
回复

使用道具 举报

85

主题

798

回帖

1053

积分

至尊会员

积分
1053
 楼主| 发表于 2022-9-14 12:01:33 | 显示全部楼层
eric2013 发表于 2022-9-14 02:59
ThreadX本身是没有空闲任务,只要用户创建就是一个独立的任务,估计哪里还有点问题。

晚上用大佬的工程试试
回复

使用道具 举报

85

主题

798

回帖

1053

积分

至尊会员

积分
1053
 楼主| 发表于 2022-9-15 00:53:39 | 显示全部楼层
本帖最后由 庄永 于 2022-9-15 01:12 编辑
eric2013 发表于 2022-9-14 02:59
ThreadX本身是没有空闲任务,只要用户创建就是一个独立的任务,估计哪里还有点问题。

找到问题了,使能宏[TX_MISRA_ENABLE]以支持MISRA或者将任务堆栈加大一点。没明白前者,继续研究。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2022-9-15 09:20:04 | 显示全部楼层
庄永 发表于 2022-9-15 00:53
找到问题了,使能宏[TX_MISRA_ENABLE]以支持MISRA或者将任务堆栈加大一点。没明白前者,继续研究。

这个宏定义主要是开了一些Trace类的东西。
image.png
回复

使用道具 举报

85

主题

798

回帖

1053

积分

至尊会员

积分
1053
 楼主| 发表于 2022-9-15 09:31:42 | 显示全部楼层
eric2013 发表于 2022-9-15 09:20
这个宏定义主要是开了一些Trace类的东西。

开始这个宏任务堆栈会减少一部分吗?不开启的时候是由于堆栈溢出了,加大堆栈就能正常跑起来
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-15 00:10 , Processed in 0.047177 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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