【Arm】MDK-解决E203 Undefined identifier

1、 文档目标

记录MDK解决E203 : Undefined identifier - function 'Message'的方法,后期客户遇到类似问题,将文档发送给客户参考即可。


2、 问题场景

客户更新设备系列包后,生成输出窗口会显示以下错误消息并且每次打开工程会出现如图2-1所示的错误提示框。

并且软件有机率闪退。

Sequence : CheckID

Context : Item #1:

Item #0: ::Line 2

Expression : " Message(2, "Not a genuine ST Device! Abort connection.");"

----------------------------^

E203 : Undefined identifier - function 'Message'


图2-1


3、软硬件环境

1)、软件版本:MDK 5.23 CMSIS包版本5.0.0

2)、电脑环境:Windows 11

3)、外设硬件:无


4、解决方法

a、错误原因分析

此错误消息意味着早期版本的 MDK-ARM 不了解新包中的“消息”功能是什么。

为了改进CMSIS标准,规范中始终添加新功能。“消息”功能是CMSIS-Pack标准版本1.4.9的最新版本。CMSIS PACK 版本 5.0.1(23 年 2017 月 5 日发布)及更高版本实现了此标准。

Keil MDK 版本 5.24a(2017年7月5日发布)及更高版本可以使用“消息”功能。

STM32F4和STM32L4设备系列包(DFP)是最早利用“消息”功能的设备。


b、解决方案

1)、更新到 Keil MDK 版本 5.24a 和 CMSIS Pack 版本 5.0.1 或更高版本,以利用最新 ST 包中使用的序列、查询和其他新的调试访问函数。

2)、将 ST 设备系列包(DFP)降级为 2017 年 2 月之前发布的包。


Keil MDK下载链接:Keil Product Downloads 通用PSN号:8WSKJ-U4BLG-SK6BE

设备系列包(DFP)下载链接:Arm Keil | Devices