OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5312|回复: 7

link问题求助

[复制链接]

20

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
511
金钱
511
注册时间
2016-2-1
在线时间
49 小时
发表于 2016-3-21 14:12:46 | 显示全部楼层 |阅读模式
1金钱
程序中根本没有Driver_SPI0和Driver_USART0,只有Driver_SPI1,2,3...,和Driver_USART1,2,3,....,link时出现以下问题:
.\Objects\motion_ctrl.axf: Error: L6218E: Undefined symbol Driver_SPI0 (referred from dv_spi.o).
.\Objects\motion_ctrl.axf: Error: L6218E: Undefined symbol Driver_USART0 (referred from dv_usart.o).


请求指点。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11475
金钱
11475
注册时间
2014-4-1
在线时间
1297 小时
发表于 2016-3-21 15:22:24 | 显示全部楼层

错误信息很明确,应当有这样的问题,
用搜索功能,在你所有源文件、头文件里找一下吧。

回复

使用道具 举报

20

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
511
金钱
511
注册时间
2016-2-1
在线时间
49 小时
 楼主| 发表于 2016-3-21 15:30:22 | 显示全部楼层
xuande 发表于 2016-3-21 15:22
错误信息很明确,应当有这样的问题,
用搜索功能,在你所有源文件、头文件里找一下吧。

那为什么在编译时没有错误?
回复

使用道具 举报

20

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
511
金钱
511
注册时间
2016-2-1
在线时间
49 小时
 楼主| 发表于 2016-3-21 15:49:20 | 显示全部楼层
xuande 发表于 2016-3-21 15:22
错误信息很明确,应当有这样的问题,
用搜索功能,在你所有源文件、头文件里找一下吧。

我搜索过了,确定没有这个变量
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-5-17
在线时间
1 小时
发表于 2016-5-17 16:05:13 | 显示全部楼层
大哥们这个问题原因找到了么?我也有相同的问题。
回复

使用道具 举报

7

主题

188

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2282
金钱
2282
注册时间
2013-12-16
在线时间
448 小时
发表于 2016-5-17 16:37:46 | 显示全部楼层
Driver_SPI0在dv_spi.c中肯定有引用
Driver_USART0 在dv_usart.c中肯定有引用,你仔细搜索一下吧.
编译时当然是检查不到你的 Driver_SPI0和Driver_USART0 是否被定义,因为他们被声明为外部符号(变量)了,只有在链接时才会发现任何模块中都没有声明Driver_SPI0和Driver_USART0 于是就会报错
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-5-17
在线时间
1 小时
发表于 2016-5-17 19:02:22 | 显示全部楼层
zdfwyh 发表于 2016-5-17 16:37
Driver_SPI0在dv_spi.c中肯定有引用
Driver_USART0 在dv_usart.c中肯定有引用,你仔细搜索一下吧.
编译时 ...

确实是如你所说的情况,声明了一个模块当中没有的外部变量。

请问下大哥这个dv_spi.c文件是在什么位置呢?

我的芯片其实是STM32L051, 在安装pack的时候CMSIS Driver里面没有SPI选项。这个可能是导致问题的原因么?
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-5-17
在线时间
1 小时
发表于 2016-5-17 19:25:19 | 显示全部楼层
zdfwyh 发表于 2016-5-17 16:37
Driver_SPI0在dv_spi.c中肯定有引用
Driver_USART0 在dv_usart.c中肯定有引用,你仔细搜索一下吧.
编译时 ...

我在 Keil_v5\ARM\Pack\ARM\CMSIS-Driver_Validation\1.1.0 目录下面找到了这个dv_spi文件。这个文件在声明的时候用的代码是:

[mw_shl_code=applescript,true]extern ARM_DRIVER_SPI CREATE_SYMBOL(Driver_SPI, DRV_SPI);
static ARM_DRIVER_SPI *drv = &CREATE_SYMBOL(Driver_SPI, DRV_SPI);[/mw_shl_code]

我把相同的代码写入我的程序里面,仍然相同的提示:
[mw_shl_code=applescript,true].\Objects\spi.axf: Error: L6218E: Undefined symbol Driver_SPI0 (referred from thread_spi.o).[/mw_shl_code]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 08:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表