Z_RAM和RAM肯定是有区别的,他们的地址分配一般不能重叠。象上面的改法,这两个区域在0xb0-0xff间就重叠了,很容易出问题。<br /><br />你的这个问题原因是没有充分利用0x00-0xffRAM空间。在small项目模式下,缺省变量都被放在RAM区。如果要将变量放到Z_RAM区,必须在定义前特别声明,例如:<br />//==============================================================<br />// Following data are declared in the direct addressing area<br />// for fast access (address < 0x100)<br />//==============================================================<br />#pragma DATA_SEG SHORT MY_ZEROPAGE //direct addressing data segment<br />byte hour, minute, second, year, month, day;<br /><br />普通RAM区的变量声明如下:<br />//==============================================================<br />// Following data are declared in the common data area<br />// (address >= 0x100)<br />//==============================================================<br />#pragma DATA_SEG DEFALUT //default data segment<br />volatile byte tempBuff[16];<br /><br />JL8只能运行在外部晶体振荡或外部RC振荡,不能运行在内部RC振荡模式下。其片内RC振荡时钟源只针对看门狗COP和SIM模块,不能拿来做程序运行的时钟源。<br /><br />堆栈的长度可以自由修改,在PRM文件中有一行“STACKSIZE 0x??”,其中的??代表堆栈长度,按实际需要用户可以随意修改。堆栈具体的位置将被在内存RAM的最高端。
|