慵懒的狗狗 2024-07-09 20:22 采纳率: 100%
浏览 6
已结题

Keil编译GD32F103

使用Keil编译GD32F103时,出现以下错误:


.\Objects\Project.axf: Error: L6218E: Undefined symbol nvic_vector_table_set (referred from system_gd32f10x_1.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 1 error messages.
".\Objects\Project.axf" - 1 Error(s), 0 Warning(s).

这是工程中所包含的文件:

img

工程中所包含的头文件:

img

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-07-09 20:22
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您好!看起来您在使用 Keil 编译 GD32F103 项目时遇到了一个链接错误,错误提示是 nvic_vector_table_set 符号未定义。这个问题通常是因为编译器在链接过程中找不到这个符号的实现。让我们一步步来解决这个问题。

    首先,我们需要检查以下几个方面:

    1. 确保系统文件包含system_gd32f10x.c 通常会包含初始化系统和设置中断向量表的代码。确保这个文件已经被正确地包含在项目中,并且没有被意外地排除在编译过程之外。

    2. 检查预处理器符号:错误信息中提到了 USESTDPERIPH_DRIVER 预处理器符号。这个符号定义了是否使用标准外设库。如果这个符号没有被正确定义,可能会导致一些必要的系统初始化代码没有被包含。请确保在项目设置中定义了这个符号。

    3. 检查包含路径:从您提供的头文件设置来看,需要确保编译器的包含路径设置正确,以便编译器能够找到所有必要的头文件。特别是 CMSISGD32F10x_standard_peripheral 的路径。

    4. 检查项目设置:确认项目设置中的编译器选项,如是否选择了 Thumb 模式、C99 模式以及 GNU 扩展等。

    5. 重新生成项目:有时候,简单的重新生成项目可以解决一些链接问题。

    6. 查看启动文件startup_gd32f10x_md.s 是启动文件,它应该包含了中断向量表的初始化。确保这个文件被正确地包含在项目中。

    7. 检查中断服务例程gd32f10x_it.c 包含了中断服务例程,确保所有必要的中断服务例程都已经被正确实现。

    8. 查阅文档和社区:如果上述步骤都不能解决问题,可以查阅 GD32F103 的官方文档,或者在社区如 CSDN 上搜索相关问题和解决方案。

    如果需要进一步的帮助,您可以提供更多的项目设置信息,或者尝试联系 GD32 的技术支持。

    最后,这里有几个可能有用的参考链接,您可以查看更多相关信息:

    希望这些信息对您有所帮助!如果您有其他问题或需要进一步的指导,请随时告诉我。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月21日
  • 已采纳回答 7月13日
  • 创建了问题 7月9日

悬赏问题

  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)