硬汉嵌入式论坛

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

[有问必答] (112+16)的RAM内存不够用

[复制链接]

35

主题

106

回帖

211

积分

高级会员

积分
211
发表于 2024-2-5 11:20:05 | 显示全部楼层 |阅读模式
1.由于CCM只能由内核访问的情况,是不是在一般的项目中不会使用CCM这64KB的内存。

2.在map文件里面里面的最大栈深是792个字节,是不是将启动文件中的Stack_Size的大小设置成最大栈深的2倍?
3.在FreeRTOS中configTIMER_TASK_STACK_DEPTH软件定时器任务只进行定时器的调度,是不是可以不用设置太大(128字就可以了)。
4.configMINIMAL_STACK_SIZE每个任务栈的大小是不是可以参考map文件的最大栈深进行设置
5.假如有5个任务,每个任务的堆栈是256字,那么configTOTAL_HEAP_SIZE这个大数组一般设置成多少倍?
6.启动文件startup中设定的堆栈和FerrRTOS中设定的堆栈是相互独立的吧。
谢谢解答!
回复

使用道具 举报

6

主题

637

回帖

655

积分

金牌会员

积分
655
QQ
发表于 2024-2-5 22:23:05 来自手机 | 显示全部楼层
操作系统的任务栈可以使用ccm
回复

使用道具 举报

35

主题

106

回帖

211

积分

高级会员

积分
211
 楼主| 发表于 2024-2-6 08:08:48 | 显示全部楼层
yklstudent 发表于 2024-2-5 22:23
操作系统的任务栈可以使用ccm

但是我在FreeRTOS里面使用了外设ADC和DMA功能,这样有影响吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2024-2-6 10:08:13 | 显示全部楼层
1、只要不给DMA做缓冲使用,都可以

用如下的方法即可
uint8_t ucHeap[ configTOTAL_HEAP_SIZE ] __attribute__((at(0x10000000)));
------------------------------



2、这个要看你这个792是对应的任务栈调用还是系统栈调用了。
3、一般可以。
4、这个任务的,而MAP是所有代码的,一定程度上可以做参考。
5、这种的先开个3倍,然后运行时动态获取全局剩余。
6、分两种,一个是系统栈,一个是任务栈




回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 15:58 , Processed in 0.278365 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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