找回密码
 立即注册
查看: 1676|回复: 7

小白求助,怎样才能多获得一些任务堆栈空间

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2026-03-03 22:12:03

6

主题

12

回帖

120

积分

注册会员

积分
120
发表于 2024-3-16 19:30:22 | 显示全部楼层 |阅读模式
小白求助,怎样才能多获得一些任务堆栈空间?

任务创建时堆栈内存设置小了任务不能正常运行然后系统重启。
任务创建时堆栈内存设置大了任务不能正常启动。
设置总任务堆栈空间提示EDATA溢出。

可不可以出一个带片外内存的开发板版本啊QAQ,要不然堆栈内存不够用……
不如ESP32的FreeRTOS上个4096大小的任务都没事……
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:571
  • 最近打卡:2026-03-13 13:41:36
已绑定手机

24

主题

523

回帖

1203

积分

金牌会员

积分
1203
发表于 2024-3-16 21:03:08 | 显示全部楼层
我也关注学习一下
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:670
  • 最近打卡:2026-03-13 20:06:02

6

主题

320

回帖

2959

积分

金牌会员

积分
2959
发表于 2024-3-16 21:14:39 | 显示全部楼层
试试能不能划分Xdata给他
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2026-03-06 08:36:33

36

主题

1151

回帖

2865

积分

荣誉版主

积分
2865
发表于 2024-3-16 21:23:55 | 显示全部楼层
本帖最后由 tzz1983 于 2024-3-16 21:26 编辑

外挂的内存不能用于堆栈.堆栈只能在EDATA区间.

你什么应用啊,为什么要那么多堆栈?

虽然不能用外挂的RAM扩大总的堆栈,但是有另外的办法解决.

如果单个任务用栈量非常大,可能是由于调用的某些函数定义了较大的局部变量,数组或大结构都有可能.
找到这个地方,直接定义为全局xdata.  即可减少用栈量.
或都是把一片xdata的内存交给内存管理,用申请内存替代局部变量.
我不太熟悉FreeRTOS, 不知道FreeRTOS内存管理功能能不能管理xdata区域.uCOSII是可以的.



回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:490
  • 最近打卡:2026-03-07 13:41:50

5

主题

1203

回帖

4772

积分

荣誉版主

积分
4772
发表于 2024-3-16 22:23:21 | 显示全部楼层
CosyOS-II 可以解决你的问题!
CosyOS-II for STC32 有两种不同的任务栈模式选择:PSP模式、MSP模式。
如果edata内存足够大,可以采用PSP模式,提高任务切换效率;
如果edata内存不够用,可以采用MSP模式。
PSP模式,任务栈只能在edata中,且每个任务栈都是主栈(需保存中断入栈),对edata的需求比较大,但任务切换时仅是任务栈指针的切换,效率高。
MSP模式,任务栈即可以在edata中,也可以在xdata中,可有效解决edata不够用的问题。但缺点是任务切换时需要拷贝数据,效率低。MSP模式需注意,主栈也必须足够大(在启动文件中修改)。

点评

CosyOS越来越强了,MSP是这么玩的啊  详情 回复 发表于 2024-3-16 22:53
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2026-03-06 08:36:33

36

主题

1151

回帖

2865

积分

荣誉版主

积分
2865
发表于 2024-3-16 22:53:42 | 显示全部楼层
Cos*** 发表于 2024-3-16 22:23
CosyOS-II 可以解决你的问题!
CosyOS-II for STC32 有两种不同的任务栈模式选择:PSP模式、MSP模式。
如果 ...

CosyOS越来越强了,MSP是这么玩的啊

点评

MSP模式,即可以内存模型为Large,静态创建任务,任务栈在xdata中; 也可以动态创建任务,内存池指针指向xdata(0x10000 以后)。  详情 回复 发表于 2024-3-16 23:10
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:490
  • 最近打卡:2026-03-07 13:41:50

5

主题

1203

回帖

4772

积分

荣誉版主

积分
4772
发表于 2024-3-16 23:10:52 | 显示全部楼层
本帖最后由 CosyOS 于 2024-3-16 23:12 编辑
tzz1*** 发表于 2024-3-16 22:53
CosyOS越来越强了,MSP是这么玩的啊

MSP模式,即可以内存模型为Large,静态创建任务,任务栈在xdata中;
也可以动态创建任务,内存池指针指向xdata(0x10000 以后),任务栈在xdata中。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:354
  • 最近打卡:2026-03-14 11:43:52

843

主题

1万

回帖

2万

积分

管理员

积分
22690
发表于 2024-3-16 23:17:15 | 显示全部楼层
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-14 22:45 , Processed in 0.120285 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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