程序编译结果如下: Program Size: data=16.7 xdata=462 code=31803 creating hex file from "panel_disp"... "panel_disp" - 0 Error(s), 0 Warning(s). 这个片子有256RAM和4K XRAM。 所以我定义变量的时候大多定义为xdata了。
在程序单步调试过程中发现:我定义的一个数据ct_once(在FLASH里存储的一个数据,它的值是通过面板设置的),在程序开始的时候它为1,当程序走到语句《1》后,ct_once就变成0了。 compare_value[0] = 0x12ab; compare_value[1] = 0x34cd; 《1 》compare_value[2] = 0x56ef; 其中ct_once和compare_value[n]都是定义为xdata。 我把这几个变量都定义为volatile也不可以的。 而我把compare_value[n]定义为data就可以了。 实在不知道为什么呀?请教大家, 还有什么好的方法没有呢?
|