分类 硬件开发 下的文章

__xdata volatile int var0;
__xdata volatile int var1 = 1;

void main(void) {
    // 功能代码
}

以上这个简单到发指的程序,在STC8A8K64U中遇到个奇怪问题:var0的初始值有时候不是0,而var1的初始值也不是1,是一些奇怪的随机值。
第一感觉就是XRAM的初始化可能存在BUG,于是稍微了解了一下SDCC中XRAM初始化的原理,没想到还真发现了一些好玩的东西,给大家做个分享。

- 阅读剩余部分 -