TI中文支持网
TI专业的中文技术问题搜集分享网站

【求助】数组长度导致硬件fault死循环问题

IDE为Keil 5.10 ,打算用一个长度为256个整形的数组 (volt[256]) 存放ADC的转换结果的时候发现无法运行,debug发现其在显示屏的初始化函数中断的某一行触发了硬件fault循环,经过不断尝试后发现数组长度不能大于51。现在苦于找不到可行的解决方法。请问这个是什么问题?寄存器或者flash地址错误或者是其它问题?之前用keil 4 的时候也有同样的问题。希望能尽快解决……

xyz549040622:

是否是因为超过了MCU rom的大小了呢

user3763235:

回复 Michael Sun:

非常感谢回答……终于能够正常运行了。

这个数组定义为全局变量后就能够正常定义大小了。原来是直接在main函数里面定义的。看来应该是堆栈溢出了。

堆栈设置没留意……囧

Michael Sun:

回复 user3763235:

解决就好。如果MCU还有充足的RAM,建议把堆栈设大一点,这样比较安全。

一般写上位机程序习惯了大刀阔斧,局部变量随便定义,不过嵌入式系统还是资源太小了。

xyz549040622:

回复 Michael Sun:

学习了,一直没那么干过,原来是堆栈的影响

赞(0)
未经允许不得转载:TI中文支持网 » 【求助】数组长度导致硬件fault死循环问题
分享到: 更多 (0)