打印

错误和警告

[复制链接]
1650|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuww|  楼主 | 2022-11-11 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是MA803AE2,用的是汇编程序编程,我在数据段定义数据时发现使用DS伪指令定义时,出现ADDRESS SPACE OVERFLOW的错误和DATA SPACE MEMORY OVERLAP的警告

使用特权

评论回复
沙发
ousj| | 2022-11-11 21:29 | 只看该作者
但是我使用DATA伪指令定义时就不会出错,这个是怎么回事?

使用特权

评论回复
板凳
zhuww|  楼主 | 2022-11-11 21:35 | 只看该作者
dseg    at  20h

mDot0         data  20h   ;不要改变 mDot0~mDot3 的顺序。
mDot1         data  21h   ;
mDot2         data  22h   ;
mDot3         data  23h   ;
mDot4         data  24h   ;
mDot5         data  25h   ;

   dseg    at  20h

mDot0:         ds  1   ;不要改变 mDot0~mDot3 的顺序。
mDot1:         ds  1   ;
mDot2:         ds  1   ;
mDot3:         ds  1   ;
mDot4:         ds  1   ;
mDot5:         ds  1   ;

使用特权

评论回复
地板
ousj| | 2022-11-11 21:37 | 只看该作者
把出错的程序贴一下,这个问题应该是跟IC是无关的

使用特权

评论回复
5
tian111| | 2022-11-11 21:39 | 只看该作者
发报错的部分

使用特权

评论回复
6
wuhany| | 2022-11-11 21:41 | 只看该作者
估计是你没有在KEIL 里配置好

使用特权

评论回复
7
zwll| | 2022-11-11 21:50 | 只看该作者
呵呵,现在还有用汇编的吗?

使用特权

评论回复
8
stly| | 2022-11-11 21:52 | 只看该作者
地址空间溢出

使用特权

评论回复
9
ousj| | 2022-11-11 21:54 | 只看该作者
这是报的数据溢出错误啊

使用特权

评论回复
10
zhuww|  楼主 | 2022-11-11 21:56 | 只看该作者
搞定了,呵呵,犯了低级错误……多谢各位

使用特权

评论回复
11
tpgf| | 2022-12-8 16:09 | 只看该作者
声明的变量超过数据存储器的容量了

使用特权

评论回复
12
paotangsan| | 2022-12-8 16:30 | 只看该作者
我们常常会在编译的时候得到有关低位128字节的使用报告

使用特权

评论回复
13
renzheshengui| | 2022-12-8 16:39 | 只看该作者
将部分声明的不需要修改的变量声明为程序存储器变量,即在变量名前增加code关键字

使用特权

评论回复
14
wakayi| | 2022-12-8 16:47 | 只看该作者
对于代码行数比较多,程序运行空间需求大的程序,可能也会出现内存溢出的错误。

使用特权

评论回复
15
wowu| | 2022-12-8 16:56 | 只看该作者
仔细检查所使用的中断服务程序后面的中断号,是否重叠

使用特权

评论回复
16
xiaoqizi| | 2022-12-9 08:17 | 只看该作者
Keil Cx51编译器提供三条编译模式控制命令:SMALL,COMPACT,LARGE,它们对变量存储器空间的影响如下。
SMALL:所有变量都被定义在8051单片机的片内RAM中,对这种变量的访问速度最快。另外,堆栈也必须位于片内RAM中,而堆栈的长度是很重要的,实际栈长取决与不同函数的嵌套深度。采用SMALL编译模式与定义变量时指定data存储器类型具有相同效果。

COMPACT:所有变量被定义在分页寻址的片外XRAM中,每一页片外XRAM的长度为256字节。这时对变量的访问是通过寄存器间接寻址(MOVX @R0,MOVX @R1)进行的,变量的低8位地址由R0和R1确定,变量的高8位地址由P2口确定。采用这种模式时,必须适当改变配置文件STARTUP.A51中的参数:PDATASTART和PDATALEN;同时还必须对uVision2的“Options选项/BL51 Locator 标签页/Pdata框”中键入合适的地址参数,以确保P2口能输出所需要的高8位地址。采用COMPACT编译模式与定义变量时指定pdata存储器类型具有相同效果。

LARGE:所有变量被定义在片外XRAM中(最大可达64KB),使用数据指针DPTR来间接访问变量(MOVX @DPTR),这种编译模式对数据访问的效率最低,而且将增加程序的代码长度。采用LARGE编译模式与定义变量时指定xdata存储器类型具有相同效果。”

使用特权

评论回复
17
Henryko| | 2022-12-26 10:30 | 只看该作者
是不是内存溢出了啊

使用特权

评论回复
18
Stahan| | 2022-12-26 11:11 | 只看该作者
数据溢出问题吧

使用特权

评论回复
19
MessageRing| | 2023-1-19 21:06 | 只看该作者
估计是你没有在KEIL 里配置好

使用特权

评论回复
20
Stahan| | 2023-2-8 21:38 | 只看该作者
中断号,是否重叠

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

893

主题

8252

帖子

1

粉丝