国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

玩轉先楫HPM6000系列雙核(下)

先楫半導體HPMicro ? 2023-05-15 10:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在《玩轉MCU雙核(上)》文章里,我們給大家介紹了先楫HPM6000系列雙核的特性、使用方法以及工程編譯與調試。本文緊接上篇內容,給大家詳細闡述雙核的通信方式、資源分配以及雙核應用eRPC架構。如果大家在練手過程中,有其他的建議和想法,歡迎給我們留言互動。

a720ccd0-f0a6-11ed-ba01-dac502259ad0.png

雙核的通信方式

Communication

HPM雙核通信方式有那些?這里列舉如下:

A. 通信外設通信

如enet/uart/spi/can/i2c/gpio等等。Core0和Core1可通過通信外設相互之間發送消息來通信。

( 注意:此方案會浪費對應的通訊外設,且需要硬件上支持。)


B. 共享內存RAM通信

Core0和Core1通過訪問同一片內存RAM來達到通信。如:一個核寫,另一個和讀。

共享RAM要點

1. 雙核下的共享RAM區域地址及大小必須相同。

2. 為防止CPU cache的影響,共享的RAM區域在雙核下均要設置為nocache區域或者在訪問前后強制刷新cache。

注意:如果設置為nocache區域,core0和core1中均要調用初始化PMP。


例如:

HPM-SDK雙核例程下,雙核linker文件中,均已分配了SHARE_RAM區域。

Core0 linker文件中的SHARE_RAM區域分配:

a7c7e9c0-f0a6-11ed-ba01-dac502259ad0.png

Core1 linker文件中的SHARE_RAM區域分配:

a7dc43fc-f0a6-11ed-ba01-dac502259ad0.png

工程中定義共享RAM區域,并訪問讀寫。

Core0工程下設定nocache區域,并初始化PMP。

Core1工程下同樣設定為nocache區域,并初始化PMP。

如下:

Core0工程

a7f64914-f0a6-11ed-ba01-dac502259ad0.png

Core1工程

a809da6a-f0a6-11ed-ba01-dac502259ad0.png

通過debug調試,在core1中打斷點,core1中寫共享區域。

通過串口發送數據,在core0中讀取共享區域。

運行結果如下:

a81d794e-f0a6-11ed-ba01-dac502259ad0.png

從運行結果看,core1中寫入的共享區域的數據和core0中讀取的共享區域的數據是一致的。

C. 通信信箱MBX通信

HPM支持獨有的通信信箱MBX來進行處理器核間通信。主要特性如下:

● 支持 2 個寄存器訪問接口

● 每個接口支持 TX FIFO 和 RX FIFO

● 支持標志位反映 TX FIFO 和 RX FIFO 狀態

● 支持生成中斷

雙核MBX通信,參考HPM-SDK例程drivers/mbx。

(注意:當然也支持讀寫Flash來通信,考慮到并發讀寫Flash帶來的異常,此通信方案不推薦使用。)

在這里,推薦大家結合B和C方案,通過MBX做雙核間的消息傳遞,通過共享RAM的方式來達到大數據的通信。


當然通過雙核通信來實現雙核間的同步和互斥。例如:通過MBX通信,實現類似OS互斥鎖和信號量的功能。

雙核的資源分配

Resources


HPM雙核資源,除了以下資源是Core0和Core1各自私有的,其余資源均需要合理分配。

● CPU 自身的指令/數據本地存儲器 ILM / DLM 為私有

● FGPIO 為私有

● 平臺中斷控制器 PLIC 為私有

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

● 機器定時器 MCHTMR 為私有

A:雙核Flash 資源分配要點

防止Core0和Core1并發同時訪問同一個flash。例如:結合MBX通信,實現互斥鎖來避免并發訪問。并且考慮到flash_xip(非xip的除外) 片上運行,同時應在訪問flash前后,禁止和使能全局中斷。

B:雙核RAM 資源分配要點

1. 除了共享ram區域和各自私有的ILM/DLM區域。其余sram和sdram在core0和core1的分配中不可重疊,避免出現未知數據錯誤。

2. Core0和Core1共享RAM區域的分配,地址及大小必須相同。

C:雙核訪問同一外設要點

通常應該避免雙核訪問同一個外設。如果有需求要同時訪問同一外設,需要注意以下幾點:

1. 禁止雙核均初始化同一外設。如:Core0已經初始化相關外設,Core1無需再次初始化。

2. 防止Core0和Core1并發操作同一外設。例如:結合MBX通信,實現雙核互斥鎖來防止并發操作。

D:雙核使能同一外設中斷要點

由于雙核Core0/Core1各自的PLIC平臺中斷控制器是私有的,如果雙核均使能了同一個外設中斷,需注意以下幾點:

1. 禁止雙核均初始化同一外設。如:Core0已經初始化相關外設,Core1無需再次初始化。

2. 雙核各自的私有PLIC中均要使能當前中斷。如:Core0的PLIC中使能了IRQn_GPIO0_Z中斷,Core1的PLIC中同樣也要使能IRQn_GPIO0_Z中斷。

3. 禁止雙核外設中斷處理接口中均清除中斷標識位。如:Core0中清除了當前外設中斷標識位,Core1中無需再次清除。如下:

a83bdd30-f0a6-11ed-ba01-dac502259ad0.pnga859c822-f0a6-11ed-ba01-dac502259ad0.png

E:雙核異常要點

由于HPM雙核是兩個獨立的CPU,是主從架構。

當雙核出現異常情況,需要注意以下幾點:

1. 其中一個核出現異常(crash)但未重啟,另一個核仍能正常運行,不受影響。

2. Core0異常重啟,Core1也會隨之重啟。

主從架構,Core0為主,Core1為從。當復位發生時,系統總是由Core0啟動,而Core1處于待機狀態,需要Core0裝載啟動Core1。

3. Core1異常重啟,Core0仍正常運行,不受影響。

推薦結合看門狗WDG來合理處理雙核異常情況。

雙核應用eRPC架構

eRPC Structure

eRPC(Embeded Remote Procedure Call) 是一個簡單的、易用的、高效的遠程調用框架。

RPC是一種機制,Client端通過簡單的本地函數調用,就能使用Server端提供的服務。對于Client端而言,使用遠程服務就像調用應用程序中內置的庫函數一樣。

當Client端調用遠程函數時,該函數的標識(identifier)和函數的參數(parameters)將被序列化到字節流中,此字節流通過傳輸層的通信通道(IPC、TCP/IP、UART、SPI等)傳至Server端。Server端收到字節流數據后,解析函數參數并根據標識選擇調用的服務函數。若函數有返回值,則Server端將返回值序列化并發送回Client端。


以下是RPC架構框圖(此圖僅顯示一個傳輸方向,省略了來自Server端的回復)。

a870d31e-f0a6-11ed-ba01-dac502259ad0.png

對應多核(MultiCore)應用,通過RPMsg-Lite是作為傳輸層;對于多芯片(MultiProcessor)應用,通過UART、SPI、TCP/IP等作為傳輸層信號通道。

HPM6000系列雙核應用,將使用RPmsg-Lite作為傳輸層。

RPMsg-Lite(Remote Processor Messaging Lite)是ePRC的傳輸層,RPMsg協議定義了一個標準化的二進制接口,用于在多核系統中內核之間的通信。

RPMsg協議的分層模型如下:

a882ac06-f0a6-11ed-ba01-dac502259ad0.png

它是實現eRPC的關鍵部分,采用的數據通訊方式為共享內存和消息通知。

詳細介紹參考GitHub官方網站:

https://github.com/EmbeddedRPC/erpc

https://github.com/nxp-mcuxpresso/rpmsg-lite

HPM-SDK已完成了eRPC的移植,采用RPmsg-Lite作為數據傳輸層,采用MBX作為事件通知。

例程:hpm_sdk\samples\multicore\erpc

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18925

    瀏覽量

    398143
  • 先楫半導體
    +關注

    關注

    12

    文章

    285

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CES2026:半導體隆重推出HPM5E3Y,打造機器人運動控制芯片陣容

    新紀元。作為高性能微控制器產品及嵌入式解決方案提供商,上海半導體科技有限公司 (半導體,HPMicro) 緊跟全球科技創新浪潮,在展會現場重磅發布全新一代高性能以太網總線運動控
    的頭像 發表于 01-08 10:38 ?733次閱讀
    CES2026:<b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體隆重推出<b class='flag-5'>HPM</b>5E3Y,打造機器人運動控制芯片陣容

    方案 | LED車尾燈純硬件高刷新率解決方案

    上海半導體科技有限公司(半導體,HPMicro)基于國產高性能MCUHPM6P00推出純硬件高刷新率的LED車尾燈解決方案。HPM6
    的頭像 發表于 12-30 08:31 ?525次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>方案 | LED車尾燈純硬件高刷新率解決方案

    重磅更新 | 半導體HPM_APPS v1.10.1發布

    重磅更新 | 半導體HPM_APPS v1.10.1發布
    的頭像 發表于 12-26 08:33 ?870次閱讀
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體<b class='flag-5'>HPM</b>_APPS v1.10.1發布

    經驗分享 | eclipse搭建開發環境

    最近有小伙伴留言,想在eclipse平臺下開發的MCU,但是苦于沒有工程模板,自己折騰了半天又遇到一堆報錯,很費時間。基于此需求,筆者基于HPM6E00EVK一步一步搭建在eclipse
    的頭像 發表于 12-19 08:32 ?876次閱讀
    經驗分享 | eclipse搭建<b class='flag-5'>先</b><b class='flag-5'>楫</b>開發環境

    解決方案 | 變頻器EtherCAT通訊卡+遠程IO方案

    半導體推出的基于HPM5E00系列的工業級變頻器EtherCAT通訊卡及遠程IO解決方案,致力于幫助開發者在以HPM微控制器作為設備從站
    的頭像 發表于 12-12 10:35 ?397次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>解決方案 | 變頻器EtherCAT通訊卡+遠程IO方案

    芯片賦能HPM生態靈巧手二次開發,工業控制/實驗室原型速落地

    搭載半導體高性能MCU芯片的HPM生態靈巧手開發平臺,憑借RISC-V、600MHz高算力與EtherCAT實時通信模塊,實現微秒級
    的頭像 發表于 12-02 10:01 ?559次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>芯片賦能<b class='flag-5'>HPM</b>生態靈巧手二次開發,工業控制/實驗室原型速落地

    半導體高性能MCU入駐立創商城,國產芯勢力再添新動能

    半導體(HPMicro)宣布其全系列高性能MCU芯片正式上架立創商城(LCSC),標志著國產高端MCU在供應鏈渠道與生態服務方面邁上新臺階,國產芯勢力再添新動能。
    的頭像 發表于 07-31 08:32 ?1181次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體高性能MCU入駐立創商城,國產芯勢力再添新動能

    支持HPM6P00/HPM5E00系列!HPMicro Manufacturing Tool v0.6.0發布

    各位的小伙伴久等了,HPMicroManufacturingTool0.6.0版本正式發布啦!該版本包含多個模塊的更新優化,讓我們抓緊時間先睹為快!v0.6.0版本主要更新內容如下:新增:新增
    的頭像 發表于 06-04 08:28 ?2046次閱讀
    支持<b class='flag-5'>HPM</b>6P00/<b class='flag-5'>HPM</b>5E00<b class='flag-5'>系列</b>!HPMicro Manufacturing Tool v0.6.0發布

    半導體HPM6E8Y:實時控制芯片驅動的機器人關節“芯”時代

    及產品總監費振東帶來了一款實時控制芯片驅動——HPM6E8Y。 ? ? 據費振東介紹,半導體HPM6E8Y系列高性能MCU芯片為機器人關
    發表于 05-13 11:50 ?1797次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體<b class='flag-5'>HPM</b>6E8Y:<b class='flag-5'>先</b><b class='flag-5'>楫</b>實時控制芯片驅動的機器人關節“芯”時代

    重磅更新 | 半導體HPM_APPS v1.9.0發布

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

    【強勢上新】HPM5E00:EtherCAT運動控制MCU,半導體再拓工業總線產品新版圖

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

    【強勢上新】HPM5E00:EtherCAT運動控制MCU,半導體再拓工業總線產品新版圖

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

    重磅更新 | 半導體HPM_SDK v1.9.0 發布

    版本更新概況[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了開發板已知問題說明[Update]將全系列開發板VCore電壓調節至1.275V,
    的頭像 發表于 04-02 08:31 ?1093次閱讀
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體<b class='flag-5'>HPM</b>_SDK v1.9.0 發布

    600MHz RISC-V 加持!HPM6P00重新定義國產高性能混合信號MCU

    6P00 系列,聚焦工業自動化、智能電源及精密伺服控制領域。作為該系列的旗艦產品HPM6P81內置 RISC-V ,主頻高達 600 M
    發表于 03-25 11:19 ?1679次閱讀
    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重新定義國產高性能混合信號MCU

    600MHz RISC-V 加持!HPM6P00重新定義國產高性能混合信號MCU

    2025年3月25日,上海——高性能微控制器及嵌入式解決方案提供商上海半導體科技有限公司(半導體,HPMicro)正式發布全新一代高性能混合信號微控制器——
    的頭像 發表于 03-25 08:50 ?1337次閱讀
    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重新定義國產高性能混合信號MCU