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

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

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-02-03 07:57:31

6

主题

10

回帖

112

积分

注册会员

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:322
  • 最近打卡:2025-05-02 10:02:36
已绑定手机

21

主题

487

回帖

1041

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:414
  • 最近打卡:2025-05-02 09:17:58

5

主题

296

回帖

2034

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

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

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

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

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

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



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 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
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 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
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 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中。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-3-16 23:17:15 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 18:10 , Processed in 0.120576 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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