请问如何大概计算stm32所需的堆栈空间的大小,望知道的大侠指教指教……

2019-12-15 11:04发布

最近在用stm32做电子相册实验,开发板是安富莱的,实验是:stm32f103zet6 + SDIO + FATFS +FSMC ->TFT,目前已经能读取SD卡里面的BMP图片到TFT上显示了。

而stm32f103zet6有64K的ram(试验中还没有使用外部SRAM),现在想充分利用芯片自身的资源,定义一个尽量大的buffer,以便一次性在SD卡中读取更多的字节数来提高速度。

我在在实验中一步一步的增大buffer,增大到一定程度时,出现了hard default。后来我将堆栈增大,他又正常了。

目前定义了5120个字节的数组来缓存数据,还只是占芯片资源的一小部分,想继续增大,但不知道如何设置堆栈大小才合适,所以想问下大家怎么计算堆栈的大小,谢谢!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
danielmi
1楼-- · 2019-12-15 11:27
 精彩回答 2  元偷偷看……
huatuizh
2楼-- · 2019-12-15 14:54
编译出来的outpu里面,有个工程名.html的文件,会列出最大函数调用路径所消耗的stack估算。
danielmi
3楼-- · 2019-12-15 16:21
回复【2楼】huatuizh
编译出来的outpu里面,有个工程名.html的文件,会列出最大函数调用路径所消耗的stack估算。
-----------------------------------------------------------------------

正解,文件找到了,谢谢!!
stmlt
4楼-- · 2019-12-15 20:28
danielmi 发表于 2011-11-4 10:44
回复【2楼】huatuizh
编译出来的outpu里面,有个工程名.html的文件,会列出最大函数调用路径所消耗的stack ...

1.楼主,请问STM32的堆栈大小设置为多少合适呢?
2.全局数组的大小最大可以定义为多少呢?是不是只要不超出SRAM的范围就行,还是数组的大小跟堆栈的大小相关?
adce
5楼-- · 2019-12-15 20:40
本帖最后由 adce 于 2013-3-31 16:39 编辑

5120这个大小略显奇葩....应该是512的2次倍数...比如4096 8192什么的....
另外...
你究竟是要放堆里...还是要放栈里?....这是两个地方啊....
这种Buffer放在堆里明显比栈里合适的多....

我测试的是8192的时候基本提升就很小了...4096更具性价比...
高灿健
6楼-- · 2019-12-15 22:24
 精彩回答 2  元偷偷看……

一周热门 更多>