Keil 5编译出现misc.c(90): error: no member named ‘IP‘ in ‘NVIC_Type‘

no member named 'IP' in 'NVIC_Type'

我们在使用Keil 5编译器的AC6进行代码编译的使用,出现如下的错误;

当前的环境

  1. 编译器版本 Keil uVision5,V5.31.0.0;

  2. CMSIS-Core 版本V6...1.0;

  3. 采用GD32F407VK主芯片,标准库版本

正常编译结果

问题分析

因为都是采用官方的库文件,并且编译器提示的是gd32f4xx_misc.c文件出现的问题,一般情况下gd32f4xx_misc.c是由GD官方编写的文件,出现问题的可能性不大;在之前的编译过程中并没有出现问题,突然又想到之前升级过CMSIS-Core的版本,随即查询了keil 提供的文档资料;找到真正存在的问题;截图如下:

超链接:https://arm-software.github.io/CMSIS_6/main/Core/core_revisionHistory.html#core6_changes

问题解决

在CMSIS-Core 6版本中,结构体 struct NVIC_Type中的成员 IP 名字更改为了IPR,瞬间恍然大悟,ARM竟然改了名字。真的不能当第一个吃螃蟹的人。双击编译窗口error提示的内容,定位到错误地方,修改代码。

修改后的代码如下所示:

NVIC->IPRnvic_irq = (uint8_t)temp_priority;

然后再进行重新的编译,编译通过, - 0 Error(s), 0 Warning(s).

参考文档:
https://arm-software.github.io/CMSIS_6/main/Core/core_revisionHistory.html#core6_changes

相关推荐
yxlalm6 小时前
2.java秒杀项目第二课-后端登录功能
java·开发语言
光学补偿6 小时前
文件IO的前世今生
开发语言·学习·面试·java-ee
KaifuZeng7 小时前
模电面试问题汇总二
单片机·嵌入式硬件·面试·模电·通信与接口协议
玖玥拾7 小时前
C# 语言进阶(十三)网络 DLL 库分层设计
服务器·开发语言·网络·网络协议·c#
冰茶丿7 小时前
状态机在嵌入式系统中的应用:不只是switch-case这么简单
数据库·嵌入式硬件·mongodb
2601_949816357 小时前
C++内存对齐与结构体填充深度精讲:底层规则、内存裁剪、适配优化与工程避坑
开发语言·arm开发·c++
是摆烂第一名呀7 小时前
【RK3506】RGB屏幕与背光调试记录
linux·arm开发·驱动开发·嵌入式硬件
浩瀚地学7 小时前
【面试算法笔记】0105-数组-螺旋矩阵
java·开发语言·笔记·算法·面试
KaifuZeng7 小时前
模电面试问题汇总三
单片机·嵌入式硬件·面试·模电
2401_854151557 小时前
STM32 复用功能(AF)配置的常见误区
stm32·单片机·嵌入式硬件