【方辉专栏】Arm 虚拟硬件 (AVH) 与Keil MDK一起用于开发和调试嵌入式应用程序
发布时间:2022-07-12

1.工具安装

1)下载 Keil MDK v5.37 并将其安装在您的 Windows PC 上(如果还没有的话)。

2)确保在 MDK 中激活MDK-Professional Edition,因为这是运行 AVH 模型所必需的。如果 MDK-Professional 许可证不可用,您可以申请评估许可证。

2.项目配置

Arm 虚拟硬件 CPU 的 MDK 项目中需要特别注意两个重要的配置区域:

1)项目中的目标选择。

2)在项目中运行和调试配置。

下表列出了 Arm 虚拟硬件支持的 Cortex-M 内核、相应的设备名称、具有设备支持的 CMSIS Pack 以及 MDK 提供的仿真模型。

Arm Cortex-M 内核AVH设备名称带有设备定义的 CMSIS 包MDK中的虚拟硬件模型描述
Cortex-M0CMSDK_CM0_VHTKeil.V2M-MPS2_CMx_BSP
v1.8.0
VHT_MPS2_Cortex-M0.exe具有 Cortex-M0 内核的 CPU
Cortex-M0+CMSDK_CM0plus_VHTKeil.V2M-MPS2_CMx_BSP
v1.8.0
VHT_MPS2_Cortex-M0plus.exe具有 Cortex-M0+ 内核的 CPU
Cortex-M3CMSDK_CM3_VHTKeil.V2M-MPS2_CMx_BSP
v1.8.0
VHT_MPS2_Cortex-M3.exe具有 Cortex-M3 内核的 CPU
Cortex-M4CMSDK_CM4_VHTKeil.V2M-MPS2_CMx_BSP
v1.8.0
VHT_MPS2_Cortex-M4.exe具有 Cortex-M4 内核的 CPU
Cortex-M4,FPCMSDK_CM4_FP_VHTKeil.V2M-MPS2_CMx_BSP
v1.8.0
VHT_MPS2_Cortex-M4.exe具有 Cortex-M4 内核和浮点单元 (FPU) 支持的 CPU
Cortex-M7CMSDK_CM7_VHTKeil.V2M-MPS2_CMx_BSP
v1.8.0
VHT_MPS2_Cortex-M7.exe具有 Cortex-M7 内核的 CPU
Cortex-M7, FP(SP)CMSDK_CM7_SP_VHTKeil.V2M-MPS2_CMx_BSP
v1.8.0
VHT_MPS2_Cortex-M7.exe具有 Cortex-M7 内核和单精度 FPU 支持的 CPU
Cortex-M7, FP(DP)CMSDK_CM7_DP_VHTKeil.V2M-MPS2_CMx_BSP
v1.8.0
VHT_MPS2_Cortex-M7.exe具有 Cortex-M7 内核和双精度 FPU 支持的 CPU
Cortex-M23IOTKit_CM23_VHTKeil.V2M-MPS2_IOTKit_BSP v1.5.0VHT_MPS2_Cortex-M23.exe具有 Cortex-M23 内核的 CPU
Cortex-M33IOTKit_CM33_VHTKeil.V2M-MPS2_IOTKit_BSP v1.5.0VHT_MPS2_Cortex-M33.exe具有 Cortex-M33 内核的 CPU
Cortex-M33,FPIOTKit_CM33_FP_VHTKeil.V2M-MPS2_IOTKit_BSP v1.5.0VHT_MPS2_Cortex-M33.exe具有 Cortex-M33 内核和浮点单元 (FPU) 支持的 CPU
Cortex-M55SSE-300-MPS3ARM.V2M_MPS3_SSE_300_BSP v1.2.0VHT_MPS3_Corstone_SSE-300.exe
VHT_Corstone_SSE-300_Ethos-U55.exe
VHT_Corstone_SSE-300_Ethos-U65.exe
带有 Cortex-M55 的 Corstone-300 SoC。
使用相同的设备定义,但应根据所需的 microNPU 选择型号(无、Ethos-U55 或 Ethos-U65)
Cortex-M85SSE-310-MPS3还不可用VHT_Corstone_SSE-310.exe具有 Cortex-M85 内核的 CPU

注:虚拟硬件模型 可以在MDK 安装目录中的/ARM/VHT/文件夹中找到,例如C:/Keil_v5/ARM/VHT/.

3.目标选择

AVH 设备支持使用与实际硬件目标相同的 CMSIS 原则实现,并在CMSIS Pack和CMSIS-Core(M)中进行了说明。

打开现有 MDK 项目或从 .cprj 文件导入它时,系统会询问您是否应安装项目所需的任何缺失包。如果您同意,则项目中使用的目标设备的必要设备定义包也将自动安装。

创建新项目或更改现有项目中的目标时,您需要选择 AVH 目标,如下所示:

安装带有目标设备定义的 CMSIS 包(如果尚不存在):

启动Pack Installer实用程序。

在Devices选项卡中展开ARM部分并选择目标 Cortex-M 内核。

在设备特定类别下的包选项卡中,根据项目配置中的表选择实现所需 AVH 设备的目标 CMSIS 包。

按操作字段中的安装或更新按钮以安装最新版本。例如对于 Arm Cortex-M4:



观察按钮状态更改为Up to date并返回 µVision 中的项目。

选择 AVH 设备作为项目中的目标:

在项目中打开Options for target...对话框并选择Device选项卡。

在设备供应商列表中展开ARM组。

展开目标 Cortex-M 内核的组。

在列表中,根据Project Configuration中的表格选择目标设备,然后按OK。

例如对于 Arm Cortex-M4:


4.运行和调试配置

执行以下步骤以在 AVH 设备上配置 MDK 项目的执行和调试:

打开Options for Target...对话框并导航到Debug选项卡。

在Use:下拉菜单中选择Models Debugger。


确切名称因目标设备内核而略有不同:

适用于Cortex-M0/M0+/M3/M4/M7 设备的型号 Cortex-M 调试器

适用于 Cortex-M23/M33/M55/M85 的型号 ARMv8-M 调试器。

例如对于带有 Cortex-M55 内核的 Corstone-300:


单击设置按钮。这将打开相应的 Models Target Driver Setup_ 对话框。


填写以下字段很重要:

Command:应包含对应于所选 AVH 设备的 AVH 模型可执行文件的路径。请参阅项目配置中的表格。

Arguments:可用于指定要与模型执行一起使用的其他FVP 命令行选项。

Target:指定要用于执行的 CPU。单击浏览按钮 (...) 并选择目标上可用的目标 CPU。

Configuration File:指向带有模型配置参数的文件(通过-f选项传递给模型可执行文件)。

Corestone-300 的正确配置如下:


Fast Models Debug Driver Configuration详细解释了配置对话框。


5.项目导出

使用 Arm 虚拟硬件云环境构建程序需要通用.cprj 格式。因此,保持 MDK 项目文件和cprj文件同步很重要。为此,在 MDK 项目中保存修改后,转到 µVision 菜单Project - Export并选择Save project to CPRJ format。

6.程序构建和调试

AVH的项目构建和调试可以通过与任何其他 Keil MDK 项目类似的方式完成:

按µVision 工具栏中的Rebuild按钮(或使用F7热键)。

从 µVision 工具栏(或使用Ctrl-F5)启动调试会话。

像往常一样使用 µVision 功能调试项目。有关用户界面和调试功能的详细信息,请参阅µVision 用户指南。


更多嵌入式咨询,请关注“九游会J9电子”公众号。