有大神知道图片中三个警告是什么问题?
有大神知道图片中三个警告是什么问题?warning L1:unresolevd external symbol
symbol:?c_start
warning L5:code space memory overlap
FROM:0000H
TO:0002H
和.A51代码有重叠
有未定义外部标识符 你是用汇编写代码,就不要加这个文件STARTUP.A51,这个文件是给c语言的。
L1 和 L2 警告(关于 ?C_START):
根本原因:STARTUP.A51 是Keil C51编译器为C语言程序准备的自动初始化代码。它负责设置堆栈、清除内存等,最后会跳转到一个名为 ?C_START 的C语言主函数入口。
你的情况:你的项目是纯汇编的,代码里没有 ?C_START 这个C语言符号。当链接器试图把 STARTUP.A51 和你写的 ASM_LED_0.asm 连接在一起时,自然就找不到这个符号,从而报出“未解决的外部符号”警告。
结论:这两个警告直接证明了 STARTUP.A51 不应该出现在你的项目中。
angmall 发表于 2026-1-4 22:40
你是用汇编写代码,就不要加这个文件STARTUP.A51,这个文件是给c语言的。
汇编现在少用
资源紧缺会考虑
或者维护老项目 狂热主宰 发表于 2026-1-5 00:04
汇编现在少用
资源紧缺会考虑
或者维护老项目
确实,汇编语言在通用软件开发中已不多见,如今主要在特定领域发挥关键作用。同时,学习它也能帮你从根本上理解计算机是如何工作的。
总的来说,汇编语言是一门“不常用,但关键时刻无可替代”的语言。
页:
[1]