打印
[MCU]

编译报错

[复制链接]
274|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liliang9554|  楼主 | 2020-4-12 16:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在Vectors.asm中声明了中断向量表.global_vectorstable,并且进行了定义,在main.c中通过extern far vectorstable(void)进行了声明,然后在main中配置ISTP=(unsigned int)(&vectorstable),这时候编译会报错:
unresolved symbol _vectorstable, first referenced in ./Source/Main.obj

请问是什么原因?

使用特权

评论回复

相关帖子

沙发
午夜粪车| | 2020-4-12 17:06 | 只看该作者

这个楼主查下main函数的链接地址的啥的看可不可以解决的

使用特权

评论回复
板凳
liliang9554|  楼主 | 2020-4-12 17:12 | 只看该作者

我在map文件里看到如下显示:UNDEFED    _vectorstable
0099e800   _exit
0099e500   _main
0099eb20   _memcpy
0099e8e0   _memset
UNDEFED    _vectorstable
ffffffff   binit
00910ef0   cinit
00800400   edata
009a110c   end
0099ed40   etext
ffffffff   pinit

后来我在C里声明vectorstable,在汇编里引用 .ref _vectorstable,这样就能编译过,这是为啥呢

使用特权

评论回复
地板
zhenykun| | 2020-4-12 17:15 | 只看该作者
汇编语言是低级语言,能够直接操作硬件,并且生成机器码的效率高。但汇编对平台的依赖性强,可移植性差,开发效率低。 而C语言则处于二者之间,移植性比较好,代码效率也比较高,可以对部分硬件直接访问。开发效率较高。写得好的C代码,可移植性是很好的,很多时候都不用修改或者只做少量修改。

使用特权

评论回复
5
liliang9554|  楼主 | 2020-4-12 17:20 | 只看该作者
你说的这个什么意思?

使用特权

评论回复
6
bqyj| | 2020-4-12 17:24 | 只看该作者
如楼上所说的,汇编语言还是最基础的。

使用特权

评论回复
7
tian111| | 2020-4-12 17:28 | 只看该作者
不管啥时候,汇编语言是少不了的

使用特权

评论回复
8
liliang9554|  楼主 | 2020-4-12 17:31 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

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

本版积分规则

950

主题

11568

帖子

6

粉丝