完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
怎么使用中内存单元只有不到130个字节?具体如下:
程序定义如下:#define RECEIVE_BUFFER_SIZE 13 UINT8 Uart_Receive_Buffer[RECEIVE_BUFFER_SIZE]; 编译OK的如下: Program Size: data=129.0 xdata=0 code=1776 creating hex file from ".OutputALLL_LCD"... ".OutputALLL_LCD" - 0 Error(s), 0 Warning(s). 但数组仅增加一个字节就报溢出了,是什么问题?不是有256个内存单元吗? #define RECEIVE_BUFFER_SIZE 13 UINT8 Uart_Receive_Buffer[RECEIVE_BUFFER_SIZE]; 编译错误的如下: *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?_TIMER3_DELAY10US?DELAY LENGTH: 0004H Program Size: data=130.0 xdata=0 code=1776 Target not created |
|
相关推荐
2个回答
|
|
在target里面 选用large模式 ,启用xdata即可
|
|
|
|
根据您提供的信息,N76E003芯片有256个字节的内存单元。根据您的程序定义,定义了一个大小为13的UINT8型数组Uart_Receive_Buffer。您在编译过程中指定了数组的大小为1,并且编译通过了。但是当您尝试增加数组的大小时,程序出现了溢出报错。
溢出报错是因为N76E003芯片的内存空间不足以容纳您定义的数组。根据程序编译的结果,您可以看到data区已经使用了129个字节,而xdata区没有使用任何字节。 解决方法可以有以下几种: 1. 减小数组的大小:您可以修改宏定义RECEIVE_BUFFER_SIZE的值为一个可以被芯片内存容纳的较小的值。 2. 优化代码:查看代码中是否存在无用的变量或数组,删除不需要的部分,从而释放更多的内存空间。 3. 使用外部存储器:如果芯片本身内存空间不足,可以考虑使用外部存储器,将一部分数据存储在外部存储器中。 请注意,在修改代码之前,确保了解代码的功能和需求,以免影响到代码的正常运行。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
298 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
309 浏览 0 评论
826 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1911 浏览 2 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1427 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12032 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 10:17 , Processed in 0.485720 second(s), Total 41, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号