关于单片机XDATA 和DATA区

本文探讨了单片机编程中Data区满载问题的解决方案,通过将不常用变量转移至XData区,优化代码效率。适用于C8051F340等型号,介绍了内外部数据存储的区别及访问复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 区即可,具体情况看使用者的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值