色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

先楫HPM6000系列MCU雙核的通信方式和資源分配

331062281 ? 來源:先楫半導體HPMicro ? 2023-05-14 09:58 ? 次閱讀

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

雙核的通信方式

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區域分配:

c15d224a-f0f3-11ed-90ce-dac502259ad0.png

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

c1812eec-f0f3-11ed-90ce-dac502259ad0.png

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

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

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

如下:

Core0工程

c1a9b9c0-f0f3-11ed-90ce-dac502259ad0.png

Core1工程

c1ec902e-f0f3-11ed-90ce-dac502259ad0.png

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

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

運行結果如下:

c208f6c4-f0f3-11ed-90ce-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中無需再次清除。如下:

c22b2370-f0f3-11ed-90ce-dac502259ad0.pngc249157e-f0f3-11ed-90ce-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端的回復)。

c26eb018-f0f3-11ed-90ce-dac502259ad0.png

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

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

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

RPMsg協議的分層模型如下:

c2860a56-f0f3-11ed-90ce-dac502259ad0.png

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

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

https://github.com/EmbeddedRPC/erpc

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

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

例程:hpm_sdksamplesmulticoreerpc

本次對先楫HPM6000系列雙核的內容介紹到此結束,大家有什么建議或想法,或是您想進一步了解先楫半導體產品的其他內容,歡迎給我們留言互動。先楫生態社區需要您的關注和支持,感謝!

“先楫半導體”(HPMicro)是一家致力于高性能嵌入式解決方案的半導體公司,產品覆蓋微控制器微處理器和周邊芯片,以及配套的開發工具和生態系統。公司成立于2020年6月,總部坐落于上海市張江高科技園區,并在天津、深圳、蘇州和杭州均設立分公司。核心團隊來自世界知名半導體公司管理團隊,具有15年以上,超過20個SoC的豐富的研發及管理經驗。

先楫半導體以產品質量為本,所有產品均通過嚴格的可靠性測試。目前已經量產的高性能通用MCU產品系列HPM6700/6400、HPM6300及HPM6200,性能領先國際同類產品,并完成AEC-Q100認證,全力服務中國工業,汽車和能源市場。

審核編輯:湯梓紅

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

    關注

    146

    文章

    17184

    瀏覽量

    351696
  • 通信
    +關注

    關注

    18

    文章

    6043

    瀏覽量

    136151
  • 雙核
    +關注

    關注

    0

    文章

    37

    瀏覽量

    15218
  • 編譯
    +關注

    關注

    0

    文章

    659

    瀏覽量

    32911

原文標題:玩轉先楫HPM6000系列雙核(下)

文章出處:【微信號:HPMicro,微信公眾號:先楫半導體HPMicro】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    半導體HPM6750EVKMINI評估板免費試用

    國產高性能MCU來啦,本次給大家帶來HPM6000系列旗艦產品HPM6750,它采用
    發表于 04-12 10:40

    半導體重磅推出HPM6300系列—— 高性能,低功耗,高性價比

    6700高性能的特點,在成本,功耗,DSP等各個方面做了進一步的優化,并推出了QFP封裝,進一步擴大MCU產品在市場上的覆蓋范圍。”
    發表于 05-07 17:16

    半導體HPM6700系列正式合入OpenHarmony社區主干

    RISC-V MCU HPM6000系列的旗艦產品,該產品填補了我國在高端工業級MCU領域的空白,為礦業、工業控制、汽車電子、物聯網、新能源和邊緣計算等應用提供了可靠保障。其采用
    發表于 11-11 10:03

    實現創新升級替代,半導體助力中國MCU “快道超車”

    更加智能、復雜的運算。MCU的主頻快速提升,從一兩百兆提升到800MHz及以上,甚至跨入GHz領域。的半導體的HPM6000 系列在40
    發表于 04-10 18:39

    請問HPM6000系列MCU如何使用硬件DSP單元?

    HPM6000系列MCU如何使用硬件DSP單元?
    發表于 05-26 06:18

    請問HPM6000系列MCU如何使用硬件浮點數單元?

    HPM6000系列MCU如何使用硬件浮點數單元?
    發表于 05-26 06:49

    半導體HPM6750EVKMINI開發板評測

    “2021年12月17日,首屆滴水湖中國RISC-V產業論壇在上海臨港舉行。會上,上海半導體科技有限公司CEO 曾勁濤介紹了公司HPM6000系列RISC-V通用
    的頭像 發表于 06-20 09:14 ?4790次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體<b class='flag-5'>HPM</b>6750EVKMINI開發板評測

    HPM6000系列MCU怎么玩?

    產品,集成 2 個 RISC-V 處理器,其中HPM6700系列兩個的最高主頻都可以達到816MHz。本文通過對
    的頭像 發表于 05-10 14:25 ?1687次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM6000</b><b class='flag-5'>系列</b><b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>怎么玩?

    如何玩轉HPM6000系列MCU

    本文通過對HPM6000系列的使用方法、工程編譯與調試、
    發表于 05-10 14:25 ?854次閱讀
    如何玩轉<b class='flag-5'>HPM6000</b><b class='flag-5'>系列</b><b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>?

    HPM6000系列微控制器 CMSIS DAP調試器使用指南

    在上海提供的HPM系列MCU評估套件上,多數集成了基于FTDI的FT2232芯片的板載調試器,方便了開發人員直接調試并評估
    的頭像 發表于 06-19 17:02 ?3968次閱讀
    <b class='flag-5'>HPM6000</b><b class='flag-5'>系列</b>微控制器 CMSIS DAP調試器使用指南

    HPM6000系列 ADC 相關硬件設計教程

    本文將為大家展示國產芯片HPM6000系列ADC性能出色的測試結果并為您提供了與HPM6000系列微控制器的模數轉換器ADC相關的外部電路設計建議。在
    的頭像 發表于 07-22 11:18 ?1337次閱讀
    <b class='flag-5'>HPM6000</b><b class='flag-5'>系列</b> ADC 相關硬件設計教程

    HPM6000系列微控制器的BOOT 模式的說明以及相應的外部電路設計建議

    1.簡介HPM6000系列MCU目前提供了不同的啟動方式,方便客戶在研發生產等不同階段使用。本文提供了HPM6000
    的頭像 發表于 07-21 15:15 ?1746次閱讀
    <b class='flag-5'>HPM6000</b><b class='flag-5'>系列</b>微控制器的BOOT 模式的說明以及相應的外部電路設計建議

    應用貼士 | HPM6000系列 Security Flash介紹

    本期介紹的是HPM6000系列中securityflash方面內容。希望可以幫助用戶了解為了用戶信息安全方面所做的設計。SecurityFlash模塊概述首先進行一些名詞解釋:在線
    的頭像 發表于 09-29 10:48 ?1091次閱讀
    應用貼士 | <b class='flag-5'>HPM6000</b><b class='flag-5'>系列</b> Security Flash介紹

    玩轉MCU(上) HPM6000系列怎么玩?答案超乎你想象!

    產品,集成2個RISC-V處理器,其中HPM6700系列兩個的最高主頻都可以達到816MHz。本文通過對
    的頭像 發表于 05-12 10:08 ?3255次閱讀
    玩轉<b class='flag-5'>MCU</b><b class='flag-5'>雙</b><b class='flag-5'>核</b>(上) <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM6000</b><b class='flag-5'>系列</b><b class='flag-5'>雙</b><b class='flag-5'>核</b>怎么玩?答案超乎你想象!

    玩轉HPM6000系列(下)

    在《玩轉MCU(上)》文章里,我們給大家介紹了HPM6000
    的頭像 發表于 05-15 10:22 ?1387次閱讀
    玩轉<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM6000</b><b class='flag-5'>系列</b><b class='flag-5'>雙</b><b class='flag-5'>核</b>(下)
    主站蜘蛛池模板: 亚洲最大日夜无码中文字幕| 久久精品国产欧美日韩99热| 好男人WWW免费高清视频在线| 伦理 电影在线观看百度影音| 少妇邻居内射在线| 伊人久久电影院| 高清AV熟女一区| 麻豆人妻无码性色AV| 邪恶肉肉全彩色无遮盖| ae58老司机福利| 精品欧美一区二区三区久久久| 日本全彩黄漫无遮挡| 在线播放免费人成毛片视频| 国产精品久久欧美一区| 欧美乱妇狂野欧美在线视频| 一本色道久久88综合日韩精品 | ankha成人| 久久精品99热超碰| 学生无码AV一区二区三区| 宝贝你骚死哥了好爽| 麻花豆传媒剧国产免费mv观看| 亚洲不卡视频在线观看| 东北成人社区| 欧美日韩国产高清综合二区| 在线 中文字幕| 国家产午夜精品无人区| 十九岁在线观看免费完整版电影| 99在线精品免费视频| 久久亚洲免费视频| 亚洲欧美自拍明星换脸| 国产精品免费一区二区三区视频| 日本 稀土矿| 99久久国产免费福利| 久草在线草a免费线看| 羞羞答答影院在线| 国产成久久免费精品AV片天堂| 欧美人妇无码精品久久| 2012中文字幕在线动漫电影| 久久99精品视频| 亚洲免费在线观看| 国产小视频在线高清播放|