在之前的文章中,我們介紹了如何在IAR Embedded Workbench for Arm中進行多核調(diào)試,其中所有的CPU內(nèi)核都是基于ARM架構(gòu)。近些年來,隨著RISC-V的興起,不少芯片集成了基于RISC-V架構(gòu)的CPU內(nèi)核。?
本文主要介紹如何在IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V中進行ARM+RISC-V多核調(diào)試。?
6月14-16日,IAR將參展首屆上海國際嵌入式展(展位號A121),歡迎蒞臨IAR展位,親自體驗ARM + RISC-V多核調(diào)試!
多核的基本概念
同構(gòu)多核(Homogeneous)vs 異構(gòu)多核(Heterogeneous)?
從硬件設(shè)計上,多核可以分為同構(gòu)多核和異構(gòu)多核:同構(gòu)多核指的是所有的CPU內(nèi)核具用相同的架構(gòu),比如NXP的S32K3(Cortex-M7)和芯馳科技的E3(Cortex-R5)。異構(gòu)多核指的是CPU內(nèi)核核具用不同的架構(gòu),比如Infineon的Traveo T2G(Cortex-M0+ + Cortex-M4/Cortex-M7)和ST的STM32H7 (Cortex-M4 + Cortex-M7)。ARM + RISC-V屬于異構(gòu)多核。?
對稱多處理(SMP)vs 非對稱多處理(AMP)?
從軟件設(shè)計上,多核可以分為對稱多處理(SMP)和非對稱多處理(AMP):SMP指的是所有的CPU內(nèi)核運行同一套程序(一般通過CoreID來實現(xiàn)不同的CPU內(nèi)核執(zhí)行不同的操作),AMP指的是不同的CPU內(nèi)核運行不同的程序。?
注意:只有同構(gòu)多核才能實現(xiàn)SMP,同構(gòu)多核也可以實現(xiàn)AMP,異構(gòu)多核只能實現(xiàn)AMP:?

在IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V中進行ARM+RISC-V多核調(diào)試
準備工作
由于ARM + RISC-V多核調(diào)試需要同時使用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兩個工程:

對于異構(gòu)多核AMP多核調(diào)試,如果只有一個Partner工程,可以在Debugger > Multicore > Asymmetric multicore > Simple中輸入對應(yīng)Partner工程的配置:

對于異構(gòu)多核AMP多核調(diào)試,如果有多個Partner工程,可以在Debugger > Multicore > Asymmetric multicore > Advanced中輸入對應(yīng)Partner工程的xml配置文件(一個Partner工程也可以使用這種方式):

其中xml文件中會描述所有核的相關(guān)配置信息(參考如下):

由于AMP中不同的核運行不同的程序,調(diào)試時每個核都會開啟獨立的IAR Embedded Workbench IDE,可以通過View > Cores可以打開對應(yīng)的Cores窗口來查看和操作對應(yīng)Core的狀態(tài):

IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安裝在不同安裝目錄下
如果IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安裝在不同安裝目錄下,那么需要創(chuàng)建兩個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中創(chuàng)建一個eww文件包含ARM工程,在IAR Embedded Workbench for RISC-V中創(chuàng)建另外一個eww文件包含RISC-V工程:

對于IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安裝在不同安裝目錄下的異構(gòu)多核AMP多核調(diào)試,跟前面的IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V安裝在同一個安裝目錄下的異構(gòu)多核AMP多核調(diào)試基本類似,只是需要勾選Override partner debugger location,并在Partner debugger對話框中輸入Partner工程對應(yīng)的IDE路徑:C:Program FilesIAR SystemsEmbedded Workbench 9.1):

由于AMP中不同的核運行不同的程序,調(diào)試時每個核都會開啟獨立的IAR Embedded Workbench IDE,可以通過View > Cores可以打開對應(yīng)的Cores窗口來查看和操作對應(yīng)Core的狀態(tài):

注意事項
當前IAR Embedded Workbench for Arm多核調(diào)試功能只支持I-jet和CMSIS-DAP,IAR Embedded Workbench for RISC-V多核調(diào)試功能只支持I-jet,所以當前需要使用I-jet在IAR Embedded Workbench中進行ARM+RISC-V多核調(diào)試:

如果多核MCU默認開始工作時只使能Master,需要Master來使能其它的核,才能進行多核調(diào)試??梢酝ㄟ^單獨調(diào)試其它的核來確認對應(yīng)的核是可以調(diào)試的:

多核調(diào)試時,每個核可以單獨控制,也可以一起控制,通過Run/Step/Stop affect all cores 和Run/Step/Stop affect current core only選項來選擇:

總結(jié)
本文主要介紹了如何在IAR Embedded Workbench for Arm和IAR Embedded Workbench for RISC-V中進行ARM+RISC-V多核調(diào)試。
審核編輯:湯梓紅
電子發(fā)燒友App






















評論