应该是你没有 #define uint unsigned int

[复制链接]
1436|37
 楼主| guoyt 发表于 2019-11-17 10:43 | 显示全部楼层 |阅读模式

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 发表于 2019-11-17 10:46 | 显示全部楼层
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| guoyt 发表于 2019-11-17 10:49 | 显示全部楼层

ORG 0000H
LJMP MAIN
ORG  0080H

MAIN:MOV P1,#0
END
上面是我的源程序。
yufe 发表于 2019-11-17 10:52 | 显示全部楼层
STARTUP.a51里已经定义了ORG 0000H,所以lamp5.ASM里不要再定义了
llia 发表于 2019-11-17 10:56 | 显示全部楼层
用汇编了,那个“startup.a51"就不要用了
wangpe 发表于 2019-11-17 10:59 | 显示全部楼层
是啊,、可以在生成工程时选择
langgq 发表于 2019-11-17 11:05 | 显示全部楼层
没有写ORG 0000H,也有警告。我写了 MOV P1,#0,也警告的。
 楼主| guoyt 发表于 2019-11-17 11:12 | 显示全部楼层
是不是用C需要用STARTUP.A51啊?这个文件起什么作用?
wangzsa 发表于 2019-11-17 11:21 | 显示全部楼层

asm一样可以使用STARTUP.A51文件,当然有些地方是要修改一下的
wangzsa 发表于 2019-11-17 11:24 | 显示全部楼层
8楼可否举个例子
zhuww 发表于 2019-11-17 11:27 | 显示全部楼层
比如?C_START这个标号,因为这是C编译器里的符号,自然你的汇编程序是没有这个符号的
zhanglli 发表于 2019-11-17 11:30 | 显示全部楼层
怎么办呢?
lium 发表于 2019-11-17 11:34 | 显示全部楼层
哈哈,换个自己的名字
hanwe 发表于 2019-11-17 11:39 | 显示全部楼层
用dos版的asm51
限制没那么多!
ORG 0000H
LJMP MAIN
ORG  0080H

MAIN:MOV P1,#0
END
完全可以通过
yufe 发表于 2019-11-17 11:45 | 显示全部楼层
我明白了,不知楼主明白了吗?
llia 发表于 2019-11-17 11:48 | 显示全部楼层
使用c语言需要引用的是“<inclde REG52_H>”
llia 发表于 2019-11-17 11:50 | 显示全部楼层

只需要把工程里的startup文件删除即可。
 楼主| guoyt 发表于 2019-11-17 11:57 | 显示全部楼层
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先
kkzz 发表于 2019-12-9 16:33 | 显示全部楼层
如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。
hudi008 发表于 2019-12-9 16:34 | 显示全部楼层
这类错误是编译器找不到指定的符号定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1018

主题

9067

帖子

3

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