请问如何大概计算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条回答
wyq200704
1楼-- · 2019-12-15 22:36
请注意区分 全局变量以及局部变量的区别,局部变量才会在堆栈中,全局变量是在静态存储区,不会出现在堆栈内,全局变量的大小受到SRAM大小的影响,局部变量的大小受到STACK大小的影响
lidreamer
2楼-- · 2019-12-15 23:05
正好碰到这个问题,谢谢楼主
min2008
3楼-- · 2019-12-16 00:46
正是我要找的东西
jackiezeng
4楼-- · 2019-12-16 05:02
这个BUFFER你做全局的就不存在问题了吧,
wind2100
5楼-- · 2019-12-16 09:14
 精彩回答 2  元偷偷看……
xizi
6楼-- · 2019-12-16 11:30
本帖最后由 xizi 于 2015-1-23 09:21 编辑

大数组,大结构最好都定义在堆里,即定义全局静态变量类型。不论定义多大,栈一毛影响都没有。

一周热门 更多>