在实际执行时发现,在调用完FlashErase()后,程序经常跑到一个不可预知的地方,当
然也可能返回到Comm()继续执行。
我在论坛上问了一些大侠,有的说是堆栈不够用,我也不知道怎么检查,经过修改将堆
栈栈底从0x3C提高到0x23,但是问题依然没有解决。而且在程序中有些地方函数的调用深度
彼此处还深,也没出现问题。后来我将FlashErase()改称宏的形式,问题依然存在。
这是否与此有关:FlashErase()调用芯片ZPSD813F1的内部算法,而程序代码也在该芯片
内。这是否有冲突。
为了发现问题所在,我在FalshErase()中,在激活ZPSD813F1的内部算法后,在等待之前
和等待期间我都输出了一些提示信息,但每次执行时,都没有发现这些提示信息,然后程序
就返回到Comm()继续执行或着返回到一个不可预知的地方。理论知识有限,对此我不知道怎
么解释。
各位有经验有理论的大侠们给点提示和展开讨论一下吧。