在 IAR Embedded Workbench中进行ARM+RISC-V多核调试

在之前的文章中,我们介绍了如何在IAR Embedded Workbench for Arm中进行多核调试,其中所有的CPU内核都是基于ARM架构。近些年来,随着RISC-V的兴起,不少芯片集成了基于RISC-V架构的CPU内核,ADI的MAX78000集成了Arm Cortex-M4和RISC-V RV32,国产MCU厂商航顺科技的HK32U3009集成Arm Cortex-M3和RISC-V RV32 N205。 

本文主要以航顺科技的HK32U3009为例介绍如何在IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V中进行ARM+RISC-V多核调试。

多核的基本概念

同构多核(Homogeneous)vs 异构多核(Heterogeneous) 

从硬件设计上,多核可以分为同构多核和异构多核:同构多核指的是所有的CPU内核具用相同的架构,比如NXP的S32K3(Cortex-M7)和芯驰科技的E3(Cortex-R5)。异构多核指的是CPU内核核具用不同的架构,比如Infineon的Traveo T2G(Cortex-M0+ + Cortex-M4/Cortex-M7)和ST的STM32H7 (Cortex-M4 + Cortex-M7),ADI的MAX78000(Arm Cortex-M4 + RISC-V RV32),航顺科技的HK32U3009(Arm Cortex-M3 + RISC-V RV32 N205)。ARM + RISC-V属于异构多核。 

对称多处理(SMP)vs 非对称多处理(AMP) 

从软件设计上,多核可以分为对称多处理(SMP)和非对称多处理(AMP):SMP指的是所有的CPU内核运行同一套程序(一般通过CoreID来实现不同的CPU内核执行不同的操作),AMP指的是不同的CPU内核运行不同的程序。 

注意:只有同构多核才能实现SMP,同构多核也可以实现AMP,异构多核只能实现AMP: 

在IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V中进行ARM+RISC-V多核调试

准备工作

由于ARM + RISC-V多核调试需要同时使用IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V,需要同时安装IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V。在IAR Embedded Workbench for Arm V9.40和IAR Embedded Workbench for RISC-V V3.20.1之前,需要将IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安装在同一个安装目录下,比如IAR Embedded Workbench for Arm V9.32.2和IAR Embedded Workbench for RISC-V V3.20.1可以同时安装在Embedded Workbench 9.1。

IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安装在同一个安装目录下

如果IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安装在同一个安装目录下,那么同一个eww文件可以同时包含ARM和RISC-V两个工程。

如下所示:IAR Embedded Workbench for Arm V9.32.2和IAR Embedded Workbench for RISC-V V3.20.1同时安装在Embedded Workbench 9.1中,可以在一个eww文件包含ARM和RISC-V两个工程:

对于异构多核AMP多核调试,如果只有一个Partner工程,可以在Debugger > Multicore > Asymmetric multicore > Simple中输入对应Partner工程的配置:

对于异构多核AMP多核调试,如果有多个Partner工程,可以在Debugger > Multicore > Asymmetric multicore > Advanced中输入对应Partner工程的xml配置文件(一个Partner工程也可以使用这种方式):

其中xml文件中会描述所有核的相关配置信息(参考如下):

由于AMP中不同的核运行不同的程序,调试时每个核都会开启独立的IAR Embedded Workbench IDE,可以通过View > Cores可以打开对应的Cores窗口来查看和操作对应Core的状态:

IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安装在不同安装目录下

如果IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安装在不同安装目录下,那么需要创建两个eww文件,其中一个eww文件包含ARM工程,另外一个eww文件包含RISC-V工程。

如下所示:IAR Embedded Workbench for Arm V9.40.1安装在Embedded Workbench 9.2中,而IAR Embedded Workbench for RISC-V V3.20.1安装在Embedded Workbench 9.1中,需要在IAR Embedded Workbench for Arm中创建一个eww文件包含ARM工程,在IAR Embedded Workbench for RISC-V中创建另外一个eww文件包含RISC-V工程:

对于IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安装在不同安装目录下的异构多核AMP多核调试,跟前面的IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安装在同一个安装目录下的异构多核AMP多核调试基本类似,只是需要勾选Override partner debugger location,并在Partner debugger对话框中输入Partner工程对应的IDE路径:C:\Program Files\IAR Systems\Embedded Workbench 9.1):

由于AMP中不同的核运行不同的程序,调试时每个核都会开启独立的IAR Embedded Workbench IDE,可以通过View > Cores可以打开对应的Cores窗口来查看和操作对应Core的状态:

注意事项

当前IAR Embedded Workbench for Arm多核调试功能只支持I-jet和CMSIS-DAP,IAR Embedded Workbench for RISC-V多核调试功能只支持I-jet,所以当前需要使用I-jet在IAR Embedded Workbench中进行ARM+RISC-V多核调试:

如果多核MCU默认开始工作时只使能Master,需要Master来使能其它的核,才能进行多核调试。可以通过单独调试其它的核来确认对应的核是可以调试的:

多核调试时,每个核可以单独控制,也可以一起控制,通过Run/Step/Stop affect all cores 和Run/Step/Stop affect current core only选项来选择:

总结

本文主要以航顺科技的HK32U3009为例介绍了如何在IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V中进行ARM+RISC-V多核调试。

参考文献:

1.IAR Embedded Workbench for Arm C-SPY® Debugging Guide (Multicore debugging)

2.IAR Embedded Workbench for RISC-V C-SPY® Debugging Guide (Multicore debugging)

3.https://armkeil.blob.core.windows.net/developer/Files/pdf/TechCon/1464_Mastering%20the%20challenge%20of%20multicore%20SoC%20debugging.pdf

4.https://www.embedded.com/mastering-the-challenges-of-multicore-programming-and-debugging/

5.https://www.iar.com/knowledge/learn/debugging/the-benefits-of-multicore-debugging/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值