关于单片机XDATA 和DATA区

DATA和XDATA

最近在做项目的时候在编译keil文档时遇到问题,其实自己也是小白菜,在做项目中慢慢进步,遇到问题解决了就记下来,以免后边犯同样的错误

关于*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT错误
这个错误说明你的单片机内部的data区已经满了,放不下更多的变量。我们单片机内部的data区的大小是有限的我的项目用的是C8051F340这个单片机,查一下这个单片机的规格书
规格书详情

单片机内部地址详情
规格书可以去官网下载:https://www.alldatasheet.com/datasheet-pdf/pdf/182721/SILABS/C8051F340.html
可以看到我们存储一般的变量都是片内data 00–7FH地址,对于以上错误,如果存在变量不多的情况下,我们可以考虑把后来的变量存放在xdata区,那这样做会有个缺点,就是访问外部数据区会比访问内部数据区代码复杂,自然我们是看不到的,但是作为写代码的人得知道。

为了优化代码,可以这样做,对于不常用的变量,比如说就一两次使用过,那可以放在xdata区,对于常用的或者一直调用的放在data 区即可,具体情况看使用者的情况。

猜你喜欢

转载自blog.csdn.net/Speakslowly/article/details/86130193