一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

玩轉(zhuǎn)MCU雙核(上) 先楫HPM6000系列雙核怎么玩?答案超乎你想象!

先楫半導(dǎo)體HPMicro ? 2023-05-12 10:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

多核的微控制器(MCU)向來(lái)是設(shè)計(jì)上的一大挑戰(zhàn),尤其是多核異構(gòu)的設(shè)計(jì)。而MCU雙核作為其中的精簡(jiǎn)版本,憑借其超強(qiáng)的處理性能和便捷開發(fā)的特性,很快受到業(yè)界的好評(píng)。先楫半導(dǎo)體先后推出了幾款高性能MCU雙核產(chǎn)品,集成 2 個(gè) RISC-V 處理器,其中HPM6700系列兩個(gè)核的最高主頻都可以達(dá)到816MHz。本文通過(guò)對(duì)先楫HPM6000系列雙核的使用方法、工程編譯與調(diào)試、雙核通信方式和資源分配等內(nèi)容的介紹,全方位給大家介紹雙核的使用和操作,讓大家輕松玩轉(zhuǎn)雙核,完成更多的片上系統(tǒng)功能開發(fā)。

6c2091b4-ef9e-11ed-ba01-dac502259ad0.jpg

接下來(lái),讓我們看一看HPM6000系列雙核MCU是如何玩轉(zhuǎn)起來(lái)的吧~

雙核簡(jiǎn)介

Introduction


HPM6000系列的雙核配置,均集成 2 個(gè) RISC-V 處理器,雙核采用主從結(jié)構(gòu)。CPU0 和 CPU1 采用相同配置,如下:

● 支持相同指令集

● 相同容量的 L1 指令和數(shù)據(jù)緩存

– 32KB L1 I-Cache,4-way,128x 64B cache line per way

– 32KB L1 D-cache,4-way,128x 64B cache line per way

● 相同容量的指令和數(shù)據(jù)本地存儲(chǔ)器:256 KB ILM 和 256 KB DLM

CPU0 和 CPU1 采用相同的存儲(chǔ)器映射,以下為例外:

● CPU 自身的指令/數(shù)據(jù)本地存儲(chǔ)器 ILM / DLM 為私有;

● FGPIO 為私有

● 平臺(tái)中斷控制器 PLIC 為私有

● 軟件中斷控制器 PLICSW 為私有

● 機(jī)器定時(shí)器 MCHTMR 為私有

雙核的三種使用方法推薦

Recommendation


不論是在RAM中運(yùn)行,還是片上Flash運(yùn)行,雙核固件均是存儲(chǔ)在Flash上??蛻舾鶕?jù)應(yīng)用場(chǎng)景,選擇在上電后將雙核各自的鏡像從Flash中裝載到RAM中執(zhí)行或者基于Flash片上執(zhí)行。

根據(jù)應(yīng)用場(chǎng)景,選擇合適的運(yùn)行方式,推薦以下幾種:

方案一:Core0 加載到RAM運(yùn)行,Core1加載到RAM運(yùn)行

RAM區(qū)域可以是各自的ILM,也可以片上的SRAM,或者是SDRAM。當(dāng)然,裝載CODE的RAM區(qū)域各自都是獨(dú)立的。此方案應(yīng)用與雙核固件均占用小,可完全裝載到RAM中運(yùn)行。

固件存儲(chǔ)位置:Core0和Core1的固件均存放在Flash指定區(qū)域(Flash分區(qū)規(guī)劃)。上電后,BootRom 從指定Flash區(qū)域裝載Core0鏡像到指定RAM運(yùn)行(type:debug/release),Core0運(yùn)行后從指定Flash 區(qū)域裝載Core1鏡像到指定RAM,然后運(yùn)行Core1。

方案二:Core0基于flash xip(flash片上執(zhí)行)運(yùn)行,Core1加載到RAM運(yùn)行

此方案應(yīng)用與Core0核固件占用大, Core1核固件占用小。通常將Core0用來(lái)做應(yīng)用復(fù)雜交互,Core1用來(lái)做高實(shí)時(shí)性,高性能的觸發(fā)邏輯。

固件存儲(chǔ)位置

1). Core0和Core1的固件各自存放在Flash的指定區(qū)域(Flash分區(qū)規(guī)劃)。

優(yōu)點(diǎn):Core0和Core1可單獨(dú)OTA。

缺點(diǎn):需要維護(hù)兩個(gè)固件BIN文件,并存放到各自的區(qū)域中。

2). Core1的固件以數(shù)組(只讀區(qū))鏡像的方式存儲(chǔ)在Core0的固件中,Core0固件存放在Flash指定區(qū)域;官方例程中使用此方案。

優(yōu)點(diǎn): 只維護(hù)一個(gè)固件。

缺點(diǎn):Core0和Core1不可單獨(dú)OTA。

方案三:Core0基于flash xip0(flash片上執(zhí)行)運(yùn)行,Core1基于flash xip1(flash 片上執(zhí)行)運(yùn)行

此方案應(yīng)用與Core0核和Core1核固件均很大,雙核均無(wú)法滿足放到RAM中運(yùn)行。

注意:由于雙核均基于flash片上執(zhí)行,如果使用同一個(gè)flash XPI,會(huì)出現(xiàn)并發(fā)訪問(wèn)Flash的情況導(dǎo)致未知異常發(fā)生;如果強(qiáng)制順序訪問(wèn),訪問(wèn)效率極低,嚴(yán)重拖垮CPU運(yùn)行速率;故不建議兩個(gè)核使用同一個(gè)flash XPI片上執(zhí)行。建議使用XPI0和XPI1各自外掛一個(gè)FLASH,分別用于Core0 Flash xip0和Core1 Flash xip1。

固件存儲(chǔ)位置:Core0和Core1的固件存儲(chǔ)在各自外掛的Flash的指定區(qū)域中。


雙核工程編譯與調(diào)試

Compilation and Debugging


HPM雙核是集成了兩個(gè)RISC-V 處理器,是兩個(gè)完全獨(dú)立的CPU,故HPM雙核工程是Core0工程和Core1工程兩個(gè)獨(dú)立的工程。因此HPM雙核工程編譯,其實(shí)是兩個(gè)獨(dú)立的單核工程的編譯。用戶只需要建立core0和core1的各自工程編譯調(diào)試即可。


由于HPM-SDK例程中使用的是方案二,且Core1的固件以數(shù)組(只讀區(qū))鏡像的方式存儲(chǔ)在Core0的固件中,導(dǎo)致Core1工程為Core0工程的關(guān)聯(lián)工程。因此在構(gòu)建工程時(shí),必須先構(gòu)建生成Core0工程,作為關(guān)聯(lián)工程Core1工程會(huì)自動(dòng)生成。由于Core1的固件是Core0工程中的只讀數(shù)組,故必須先編譯Core1工程生成只讀數(shù)組鏡像后,再編譯Core0工程。


如下構(gòu)建編譯調(diào)試雙核hello world工程:

A. 構(gòu)建工程

先構(gòu)建生成Core0工程:

由于Core0是flash片上執(zhí)行,故type選擇:flash_sdram_xip或flash_xip

6c4157aa-ef9e-11ed-ba01-dac502259ad0.png

作為關(guān)聯(lián)工程Core1工程會(huì)自動(dòng)生成:

6c5ac73a-ef9e-11ed-ba01-dac502259ad0.png

B. 編譯工程

打開各自的工程(Core0通過(guò)GUI工具直接點(diǎn)擊Open Project with IDE, Core1對(duì)應(yīng)目錄下雙擊打開工程)。

6c6c62f6-ef9e-11ed-ba01-dac502259ad0.png6c7fa64a-ef9e-11ed-ba01-dac502259ad0.png

用SES編譯各自的工程即可。

6c8ec850-ef9e-11ed-ba01-dac502259ad0.png6ca744ca-ef9e-11ed-ba01-dac502259ad0.png

C. 工程調(diào)試

一、雙核同時(shí)調(diào)試

基于OpenOCD調(diào)試(FT2232/DAP-LINK等)。

為了達(dá)到Core0和Core1同時(shí)調(diào)試,基于OpenOCD調(diào)試在HPM-SDK例程中,對(duì)Core1的Debug做了如下限制:

1)Core1不啟動(dòng)GDB Server,連接Core0啟動(dòng)的GDB Server。當(dāng)然使用不同的port來(lái)區(qū)分是Core0(Port:3333)還是Core1(Port:3334)。

2)Reset 和 Stop時(shí),直接hart停止運(yùn)行。

如下圖:

6cd14b94-ef9e-11ed-ba01-dac502259ad0.png

因此,調(diào)試HPM-SDK雙核例程,步驟如下:

步驟1:Core0的工程調(diào)試,和正常的單核調(diào)試相同,正常SES啟動(dòng)debug即可。

6ceb01a6-ef9e-11ed-ba01-dac502259ad0.png

步驟2:Core1的工程調(diào)試,由于上述限制(為了雙核同時(shí)調(diào)試),必須先將Core0的工程Debug運(yùn)行,然后在啟動(dòng)Core1的Debug仿真。

6d0da7d8-ef9e-11ed-ba01-dac502259ad0.png

可在Core0 SES終端看到Core1 GDB connect信息:

6d2e9d62-ef9e-11ed-ba01-dac502259ad0.png

基于Jlink 調(diào)試

基于Jlink調(diào)試,對(duì)Core0和Core1的Debug做如下修改:

1. Core0 修改Debug連接target為:J-Link

2. Core1修改Debug連接target為:J-Link

6d42993e-ef9e-11ed-ba01-dac502259ad0.png

3. Core1修改Debug Device為:HPM6750xVMx_CPU1

6d65819c-ef9e-11ed-ba01-dac502259ad0.png

4. 由于SES修改Device為CPU1(上一步驟修改),聯(lián)動(dòng)修改ISA為:rv32i,導(dǎo)致編譯等異常。故在Code Generation下改回ISA為:rv32imac。

6d80f0bc-ef9e-11ed-ba01-dac502259ad0.png

5. 通常初始化時(shí)鐘等外設(shè)在Core0中完成,故為了雙核能同時(shí)調(diào)試,需先運(yùn)行Core0 Debug至完成時(shí)鐘等外設(shè)初始化后,方可Core1 Debug運(yùn)行。

6d98d290-ef9e-11ed-ba01-dac502259ad0.png

二、雙核單獨(dú)調(diào)試

基于 OpenOCD 調(diào)試

如果只用來(lái)單獨(dú)調(diào)試Core1(Core0的單獨(dú)調(diào)試不做任何修改即可),可修改Core1的Debug配置,如下:

Auto Start GDB Server: Yes

Reset and Stop Command: reset halt

6db39bc0-ef9e-11ed-ba01-dac502259ad0.png

修改后, 可直接啟動(dòng)Core1 Debug運(yùn)行。

注意:由于CPU0,CPU1主從架構(gòu),通常外設(shè)等時(shí)鐘初始化會(huì)在Core0中完成。如果是單獨(dú)調(diào)試Core1,為了確保程序能正常運(yùn)行,需在Core1工程中初始化時(shí)鐘等外設(shè)。如下:

6dc66d7c-ef9e-11ed-ba01-dac502259ad0.png

基于 Jlink 調(diào)試

單獨(dú)調(diào)試Core1 (Core0的單獨(dú)調(diào)試不做任何修改即可),JLink修改同雙核JLink修改一致(可參考上方介紹的內(nèi)容)。

同樣為了確保Core1能正常運(yùn)行,需在Core1工程中初始化時(shí)鐘等外設(shè)。

6df7ae82-ef9e-11ed-ba01-dac502259ad0.png

下一篇,我們將會(huì)給各位小伙伴們介紹雙核的通信方式、資源分配和雙核應(yīng)用eRPC架構(gòu),敬請(qǐng)期待。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17981

    瀏覽量

    366783
  • 先楫半導(dǎo)體
    +關(guān)注

    關(guān)注

    11

    文章

    250

    瀏覽量

    2674
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問(wèn)的芯片如何調(diào)試?

    的芯片如何調(diào)試?比如有很多M4+M0的芯片,是分開調(diào)試合適可以一起調(diào)試?
    發(fā)表于 06-19 07:32

    半導(dǎo)體HPM6E8Y:實(shí)時(shí)控制芯片驅(qū)動(dòng)的機(jī)器人關(guān)節(jié)“芯”時(shí)代

    及產(chǎn)品總監(jiān)費(fèi)振東帶來(lái)了一款實(shí)時(shí)控制芯片驅(qū)動(dòng)——HPM6E8Y。 ? ? 據(jù)費(fèi)振東介紹,半導(dǎo)體HPM6E8Y系列高性能
    發(fā)表于 05-13 11:50 ?1211次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>6E8Y:<b class='flag-5'>先</b><b class='flag-5'>楫</b>實(shí)時(shí)控制芯片驅(qū)動(dòng)的機(jī)器人關(guān)節(jié)“芯”時(shí)代

    重磅更新 | 半導(dǎo)體HPM_APPS v1.9.0發(fā)布

    重磅更新 | 半導(dǎo)體HPM_APPS v1.9.0發(fā)布
    的頭像 發(fā)表于 05-13 11:29 ?576次閱讀
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>_APPS v1.9.0發(fā)布

    【強(qiáng)勢(shì)新】HPM5E00:EtherCAT運(yùn)動(dòng)控制MCU,半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖

    2025年5月6日 上海 |高性能微控制器及嵌入式解決方案提供商“上海半導(dǎo)體科技有限公司”(半導(dǎo)體,HPMicro)正式發(fā)布 新一代EtherCAT運(yùn)動(dòng)控制
    發(fā)表于 05-07 14:07 ?720次閱讀
    【強(qiáng)勢(shì)<b class='flag-5'>上</b>新】<b class='flag-5'>HPM</b>5E00:EtherCAT運(yùn)動(dòng)控制<b class='flag-5'>MCU</b>,<b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖

    【強(qiáng)勢(shì)新】HPM5E00:EtherCAT運(yùn)動(dòng)控制MCU,半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖

    2025年5月6日上海|高性能微控制器及嵌入式解決方案提供商“上海半導(dǎo)體科技有限公司”(半導(dǎo)體,HPMicro)正式發(fā)布新一代EtherCAT運(yùn)動(dòng)控制
    的頭像 發(fā)表于 05-06 11:09 ?542次閱讀
    【強(qiáng)勢(shì)<b class='flag-5'>上</b>新】<b class='flag-5'>HPM</b>5E00:EtherCAT運(yùn)動(dòng)控制<b class='flag-5'>MCU</b>,<b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖

    600MHz RISC-V 加持!HPM6P00重新定義國(guó)產(chǎn)高性能混合信號(hào)MCU

    6P00 系列,聚焦工業(yè)自動(dòng)化、智能電源及精密伺服控制領(lǐng)域。作為該系列的旗艦產(chǎn)品HPM6P81內(nèi)置 RISC-V ,主頻高達(dá) 600 M
    發(fā)表于 03-25 11:19 ?367次閱讀
    600MHz RISC-V <b class='flag-5'>雙</b><b class='flag-5'>核</b>加持!<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM</b>6P00重新定義國(guó)產(chǎn)高性能混合信號(hào)<b class='flag-5'>MCU</b>

    600MHz RISC-V 加持!HPM6P00重新定義國(guó)產(chǎn)高性能混合信號(hào)MCU

    2025年3月25日,上?!咝阅芪⒖刂破骷扒度胧浇鉀Q方案提供商上海半導(dǎo)體科技有限公司(半導(dǎo)體,HPMicro)正式發(fā)布全新一代高性能混合信號(hào)微控制器——
    的頭像 發(fā)表于 03-25 08:50 ?494次閱讀
    600MHz RISC-V <b class='flag-5'>雙</b><b class='flag-5'>核</b>加持!<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM</b>6P00重新定義國(guó)產(chǎn)高性能混合信號(hào)<b class='flag-5'>MCU</b>

    STM32H7間如何通信?

    STM32H7間通信的方法,主要是CM7和CM4之間如何進(jìn)行數(shù)據(jù)傳遞
    發(fā)表于 03-12 07:34

    半導(dǎo)體HPM_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!

    半導(dǎo)體HPM_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!
    的頭像 發(fā)表于 02-08 13:42 ?667次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!

    半導(dǎo)體hpm_apps v1.7.0上線

    半導(dǎo)體hpm_apps v1.7.0上線
    的頭像 發(fā)表于 02-08 13:41 ?655次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>hpm</b>_apps v1.7.0上線

    半導(dǎo)體HPM_SDK v1.8.0 發(fā)布

    半導(dǎo)體HPM_SDK v1.8.0 發(fā)布
    的頭像 發(fā)表于 02-08 13:39 ?645次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>_SDK v1.8.0 發(fā)布

    半導(dǎo)體發(fā)布高性能HPM6E8Y系列MCU

    近日,上海半導(dǎo)體科技有限公司,國(guó)內(nèi)領(lǐng)先的高性能微控制器及嵌入式解決方案提供商,推出了專為機(jī)器人運(yùn)動(dòng)與控制設(shè)計(jì)的高性能MCU產(chǎn)品——HPM6E8Y
    的頭像 發(fā)表于 01-23 15:40 ?668次閱讀

    CES 2025:半導(dǎo)體發(fā)布高性能機(jī)器人MCU

    半導(dǎo)體科技有限公司(半導(dǎo)體,HPMicro)閃耀登場(chǎng)。該公司發(fā)布了一款專注于機(jī)器人運(yùn)動(dòng)與控制的高性能MCU產(chǎn)品——HPM6E8Y系列,為
    的頭像 發(fā)表于 01-09 16:14 ?946次閱讀

    HPM6E00技術(shù)日 | 百人研討共話工業(yè)應(yīng)用創(chuàng)新及發(fā)展趨勢(shì)

    、內(nèi)嵌ESC的高性能RISC-V內(nèi)核微控制器系列——HPM6E00產(chǎn)品及其應(yīng)用,由的市場(chǎng)、技術(shù)和方案專家們以及
    發(fā)表于 09-02 10:14

    半導(dǎo)體hpm_apps v1.6.0上線

    半導(dǎo)體hpm_apps v1.6.0上線
    的頭像 發(fā)表于 08-02 08:18 ?1522次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>hpm</b>_apps v1.6.0上線