调试

在IAR Embedded Workbench for Arm中进行多核调试

<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >在IAR Embedded Workbench for Arm中进行多核调试</span>

随着嵌入式设备的智能化需求越来越高,对MCU的性能要求也越来越高。一方面可以通过提高MCU的主频来提升MCU的性能,但是这会使MCU的设计变得更复杂。另一方面可以通过多核的方式来提升MCU的性能,目前多核MCU已在市场上广泛应用。随着多核MCU的出现,多核调试变得越来越重要。

本文主要介绍如何在IAR Embedded Workbench for Arm中进行多核调试。

多核的基本概念

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

从硬件设计上,多核可以分为同构多核和异构多核:同构多核指的是所有的核具用相同的架构,比如NXP的S32K3(Cortex-M7)和芯驰科技的E3(Cortex-R5)。异构多核指的是核具用不同的架构,比如Infineon的Traveo T2G (Cortex-M0+ + Cortex-M4/Cortex-M7)和ST的STM32H7 (Cortex-M4 + Cortex-M7)。

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

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

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

640-Mar-11-2025-07-32-50-6862-AM

在IAR Embedded Workbench for Arm中进行多核调试

同构多核SMP多核调试

对于同构多核SMP多核调试,需要在Debugger > Multicore > Symmetric multicore > Number of cores中输入对应核的数量:

640-Mar-11-2025-07-33-42-7034-AM

由于SMP中所有的核运行同一套程序,调试的时候只会开启一个IAR Embedded Workbench IDE。可以通过View > Cores可以打开对应的Cores窗口来查看和操作对应Core的状态:

640-Mar-11-2025-07-33-56-7374-AM

 

同构多核AMP多核调试

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

640-Mar-11-2025-07-34-36-5333-AM

 

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

640-Mar-11-2025-07-35-00-3330-AM

 

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

640-Mar-11-2025-07-35-25-9344-AM

 

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

640-Mar-11-2025-07-35-46-6962-AM

 

异构多核AMP多核调试

对于异构多核AMP多核调试,配置跟同构多核AMP多核调试类似:

640-Mar-11-2025-07-36-16-2317-AM

 

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

640-Mar-11-2025-07-36-35-1691-AM

 

注意事项

1. 当前IAR Embedded Workbench for Arm多核调试功能只支持I-jet和CMSIS-DAP

640-Mar-11-2025-07-36-58-5706-AM

 

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

640-Mar-11-2025-07-37-13-9859-AM

 

3. 对于同构多核实现AMP,每个核需要指定具体的对应CPU:

640-Mar-11-2025-07-37-29-3282-AM

 

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

640-Mar-11-2025-07-37-45-9118-AM

 

总结

主要介绍了如何在IAR Embedded Workbench for Arm中进行SMP和AMP多核调试。