探讨下,超大数组的定义问题。

2019-10-16 01:11发布

做个项目不容啊,原来出现了HardFaultException,现在又冒出来了。
就是修改了几个中断的优先级,问题又来了。
我在程序中定义了2个超大的数组。uint16_t Adc_Lp[2048],uint16_t Adc_Rp[2048].
为什么选择了2048,因为我看到仿真器会将数组2048以外的数据截断,没搞太明白,所以先定义这么大,其实我想定义更大
现在在函数体内,我定义了一个稍微大点的结构体(就是有那么30个 uint16_t的数据),就是将有关参数全整合进来使用。
我发现,在一个函数中访问其中的一个变量时会进入HardFaultException。
因为代码是从原设计中搬过来的,我又重新建立了一个函数,这个函数定义了这个结构体并访问其中的数据,并未出现HardFaultException。
这下,糊涂了。

请问下 STM32F407ZGT6,可以定义的最大数组数是多少。我试图修改过stack的大小,似乎没改善。
我用的ST—Link/v2。如果用单步执行函数跳转呢,这个问题倒是可以跳过去,只要一自动运行,就出问题。
我用了TIM5,TIM2,SPI,DMA中断。DMA访问外扩SRAM.
用了ucosII+ucgui。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。