75
1290
4324
中级工程师
使用特权
222
1万
4万
技术总监
439
2540
7903
高级工程师
10
760
2532
初级工程师
C:0x0009 758107 MOV SP(0x81),#0x07 196: LJMP ?C_START C:0x000C 02000F LJMP main(C:000F) 25: void main(void) 26: { 27: _NOP(); C:0x000F 120000 LCALL C_STARTUP(C:0000) 28: ikjkj(); C:0x0012 120000 LCALL C_STARTUP(C:0000) 29: T67676767(); 30: 31: C:0x0015 120000 LCALL C_STARTUP(C:0000) 32: while(1) ; C:0x0018 80FE SJMP C:0018
SRC\UART.C(28): warning C206: '_NOP': missing function-prototype
12
135
431
资深技术员
我测试了一下,不只是"_NOP();",随便加一个未定义函数都能编译通过,只是给警告。 反汇编都是编译成LCALL 0000。 由此可以推出,Keil不是将_NOP()编译成 LCALL 0000, 而是它根本就不认识什么_NOP(); 以下是警告 ... hgjinwei 发表于 2010-4-23 19:18
95
791
2689
禁止发言
629
1625
4340
35
327
1433
助理工程师
53
2875
资深工程师
这不是编译程序的错 LCALL C:0000 是还没有重定位的指令,程序编译的时候对所有的子程序调用都编译成这样子,因为这时候无论对什么子程序编译程序都不知道它的准确位置, 稍后再进行连接的时候子程序有了确定的地址 ... linjing 发表于 2010-4-23 22:33
是已经链接并生成HEX了,然后调试时查看Disassembly窗口发现uv3把 _NOP(); 语句编译成 LCALL C:0000 了 与时俱进 发表于 2010-4-24 08:23
23
818
2595
发表回复 本版积分规则 回帖后跳转到最后一页
等级类勋章
发帖类勋章
人才类勋章
时间类勋章
2
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号