请问是什么原因?

[复制链接]
2309|37
 楼主| guoyt 发表于 2021-3-4 09:55 | 显示全部楼层 |阅读模式


Build target 'Target 1'
assembling STARTUP.A51...
assembling lamp5.ASM...
linking...
*** WARNING L5: CODE SPACE MEMORY OVERLAP
FROM: 0000H
TO: 0002H
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: .\STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: .\STARTUP.obj (?C_STARTUP)
ADDRESS: 008DH
Program Size: data=9.0 xdata=0 code=146
"lamp5" - 0 Error(s), 3 Warning(s).
hanwe 发表于 2021-3-4 09:59 | 显示全部楼层
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| guoyt 发表于 2021-3-4 10:03 | 显示全部楼层

ORG 0000H
LJMP MAIN
ORG  0080H

MAIN:MOV P1,#0
END
上面是我的源程序。
yufe 发表于 2021-3-4 10:06 | 显示全部楼层
STARTUP.a51里已经定义了ORG 0000H,所以lamp5.ASM里不要再定义了
llia 发表于 2021-3-4 10:11 | 显示全部楼层
用汇编了,那个“startup.a51"就不要用了
wangpe 发表于 2021-3-4 10:14 | 显示全部楼层
是啊,、可以在生成工程时选择
langgq 发表于 2021-3-4 10:18 | 显示全部楼层
没有写ORG 0000H,也有警告。我写了 MOV P1,#0,也警告的。
 楼主| guoyt 发表于 2021-3-4 10:22 | 显示全部楼层
是不是用C需要用STARTUP.A51啊?这个文件起什么作用?
wangzsa 发表于 2021-3-4 10:30 | 显示全部楼层
asm一样可以使用STARTUP.A51文件,当然有些地方是要修改一下的
wangzsa 发表于 2021-3-4 10:34 | 显示全部楼层
8楼可否举个例子
zhuww 发表于 2021-3-4 10:39 | 显示全部楼层

比如?C_START这个标号,因为这是C编译器里的符号,自然你的汇编程序是没有这个符号的
zhanglli 发表于 2021-3-4 10:42 | 显示全部楼层
怎么办呢?
lium 发表于 2021-3-4 10:47 | 显示全部楼层
哈哈,换个自己的名字
hanwe 发表于 2021-3-4 10:51 | 显示全部楼层
用dos版的asm51
限制没那么多!
ORG 0000H
LJMP MAIN
ORG  0080H

MAIN:MOV P1,#0
END
完全可以通过
yufe 发表于 2021-3-4 10:57 | 显示全部楼层
我明白了,不知楼主明白了吗?
llia 发表于 2021-3-4 11:01 | 显示全部楼层
使用c语言需要引用的是“<inclde REG52_H>”
llia 发表于 2021-3-4 11:06 | 显示全部楼层
只需要把工程里的startup文件删除即可。
wyjie 发表于 2021-3-4 11:09 | 显示全部楼层
如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。
dingy 发表于 2021-3-4 11:13 | 显示全部楼层

这类错误是编译器找不到指定的符号定义。
houcs 发表于 2021-3-4 11:20 | 显示全部楼层
你写的这个函数只有省名,没有定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1018

主题

9067

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部