有个很奇怪的问题,关于 xdata 分区的
芯片:ST8H4K64TL发现一个问题。在使用xdata变量的时候,如果全局变量的数组达到一定值的时候,再创建xdata变量。该变量的值就会固定住,而且无法被赋值成功。
例:
char xdata temp; //===>这是5K xdata, STC8H4K64TL 只有 4K xdata
char xdata par;
int main()
{
par ++;
}
此时用串口取打印这个par变量。发现是固定的。并不会出现累加。
当temp数组变小后,par就正常。
我想请问一下这是为啥。
理论上xdata的大小不是64k吗
你猜,它为啥叫 STC8H4K64TL{:4_165:}
本帖最后由 爱晴海玩偶 于 2023-11-24 09:28 编辑
{:sweat:}离了个谱,没注意这个地方。
突然觉得这个帖子好low了
删了吧删了吧
能实现的和实际实现的是两码事,单片机可以实现64K,但是这款单片机硬件上只给设计了4K,这没啥毛病,不冲突。你要是去定制个64K的也不是不可以,到时候你这个程序就正常了。你的胃能装下8斤饭,也没见你给它装8斤,因为你两顿饭之间不需要8斤饭。
页:
[1]