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:
学习了,一直没那么干过,原来是堆栈的影响