定义的buffer_size ,只能300左右,400就错。哪里问题?看正文。谢谢

2019-07-21 01:58发布

 
#define ADC1_DR_Address    ((uint32_t)0x4001204C)
#define num 300
#define ADC_READ_TIMES 20 __IO uint16_t AD_Value[3]={0,0,0}; uint16_t ADC1_ConvertedValue_1[num];
........
 这个num在我大工程里只能300左右,设置成400就出错。如果是单独的DMA ADC采样,num可以随便设置,哪里出问题了?

Program Size: Code=190180 RO-data=106268 RW-data=2576 ZI-data=1238104   内存的话,没超啊

用的是STM32F407 试了很多优化的方法,就是改编译窗口设置。
请问有什么方法?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
tan0327
1楼-- · 2019-07-22 15:03
回复【13楼】正点原子:
---------------------------------
那对于那个num值的设定,堆栈大小的问题么?
tan0327
2楼-- · 2019-07-22 19:04
回复【11楼】Llinuxu:
---------------------------------
我在启动文件里,改了堆栈大小,由400改成800,还是错误。硬件调试,我看不出来问题。
zc123
3楼-- · 2019-07-22 21:26
 rogram Size: Code=190180 RO-data=106268 RW-data=2576 ZI-data=1238104
 这个ZI-Data+RW-data占用的RAM空间,单位字节,你看相当于1.18M的SRAM, f400的RAM应该没那么大
 你看是不是你代码没有优化:
 


红 {MOD}部分看看是不是Level 3, 不是改成3在编译下

一周热门 更多>