日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

雙核MCU開發(fā)其實也不難!

5RJg_mcuworld ? 來源:未知 ? 作者:胡薇 ? 2018-10-16 18:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

多核的微控制器(MCU)向來是設計上的一大挑戰(zhàn),尤其是多核異構的設計。恩智浦半導體早在2011年年底,就率先推出了基于Cortex-M4F和Cortex-M0的雙核MCU——LPC43xx/43Sxx系列, 主頻高達204MHz。憑借其超強的處理性能,很快受到業(yè)界的好評。四年之后,MCU雙核精簡版本LPC5411x系列,在廣大LPC發(fā)燒友的期待中,終于露出了一代天驕的本色。

雙核MCU:LPC5411x

這款LPC5411x系列MCU集成了Cortex-M4F和Cortex-M0+雙內(nèi)核,主頻高達100MHz 。因為Cortex-M4F內(nèi)核采用Harvard架構,3級流水線,支持SIMD,支持單精度浮點運算,單個時鐘周期就能完成一條乘累加(MAC)指令,所以其處理性能強悍,一般用于處理復雜的計算或算法。而Cortex-M0+內(nèi)核結(jié)構簡單,只有2級流水線,能效高,一般用于實時控制、外設管理、數(shù)據(jù)通信等任務。

在LPC5411x產(chǎn)品中Cortex-M4F是主核,而Cortex-M0+是從核。從核的主要任務是協(xié)助主核處理非計算性的雜務,充分解放主核的運算能力,這樣可以達到整個系統(tǒng)的最優(yōu)性能。

為了實現(xiàn)整體性能最優(yōu),LPC5411x采用了多層AHB矩陣式總線架構,以及多個RAM分塊。下圖是LPC5411x的內(nèi)部功能框圖,可以看到內(nèi)部的AHB矩陣式總線架構,Cortex-M4F和M0+都是總線上的master,可以訪問所有的片上資源??偩€訪問的優(yōu)先級可以通過寄存器設定。

Cortex-M4F核在AHB總線上有3個接口:I-code, D-code和System總線。而Cortex-M0+只有一個System總線接口。不同的RAM塊可以被不同的AHB master同時訪問。

雙核MCU的存儲區(qū)分配

I-code總線用于從CODE內(nèi)存分區(qū)取指令, 地址范圍是:0x0000-0000~0x1FFF-FFFF。D-code總線用于從CODE內(nèi)存分區(qū)取操作數(shù),地址范圍是:0x0000-0000~0x1FFF-FFFF。

當以上兩條總線同時訪問同一內(nèi)存單元時,D-code總線訪問優(yōu)先級比I-code高,所以D-code先訪問。對地址范圍從0x2000-0000~0xDFFF-FFFF的訪問是通過System總線進行的,可用于訪問操作數(shù)、指令等,數(shù)據(jù)訪問的優(yōu)先級高于取指令及中斷向量。

各個存儲區(qū)所在的地址區(qū)域如下表:

存儲區(qū) 地址區(qū)域 大小
Flash 0x0000-0000 ~
0x0003-FFFF
256KB
Boot ROM 0x0300-0000 ~
0x0300-7FFF
32KB
SRAMX 0x0400-0000 ~
0x0400-7FFF
32KB
SRAM0 0x2000-0000 ~
0x2000-FFFF
64KB
SRAM1 0x2001-0000 ~
0x2001-FFFF
64KB
SRAM2 0x2002-0000 ~
0x2002-7FFF
32KB

為優(yōu)化系統(tǒng)整體處理能力,需要讓這兩個CPU內(nèi)核同時以最快速度執(zhí)行各自指令, 比如Cortex-M4F上能執(zhí)行單周期的的MAC指令,同時Cortex-M0+上能執(zhí)行單周期的32位乘法。

因此,存儲區(qū)的合理分配策略是,F(xiàn)lash和RAMX以及SRAM0需要分配給Cortex-M4F內(nèi)核,分別用于存放指令代碼和操作數(shù)(見上圖紅/黃框部分)。而SRAM1/SRAM2這兩塊需要分給Cortex-M0+(見上圖綠色框部分)。 需要注意的是,只要其中一個RAM塊分配給某個CPU核,這個RAM塊就不能分配給另一個CPU核, 否則這兩個CPU核同時訪問同一塊區(qū)域時,就會出現(xiàn)總線爭用,而導致另一個CPU核訪問出現(xiàn)等待周期,從而降低整個系統(tǒng)處理效率。

雙核運行的功耗如何?

在回答這個問題之前,讓我們看一下其實測的CoreMark動態(tài)功耗圖吧:

以代碼放在Flash中運行并且主頻為48MHz為例,Cortex-M4F動態(tài)功耗大約為96uA/MHz,而Cortex-M0+為75uA/MHz。兩者之和為171uA/MHz,也就是說雙核同時運行時的功耗為8.2mA。這個功耗比許多其他廠家的單Cortex-M4F核的MCU還低,但性能要強很多。

當然如果你比較關心功耗,可以根據(jù)應用實際情況讓一個CPU內(nèi)核進入低功耗模式,另一個CPU內(nèi)核工作,等到一定條件時再喚醒另一個核。

雙核之間怎么通信?

下面這張圖說明了倆核之間的通信機制。

當一個CPU內(nèi)核準備好數(shù)據(jù)之后,通過互鎖信號放在共享RAM中,再通過郵箱機制產(chǎn)生中斷事件,通知另一個CPU內(nèi)核來處理。另一個CPU內(nèi)核處理完數(shù)據(jù)后,清理相應的中斷標志。通過這種方式可以實現(xiàn)實時性很強的雙核通信和數(shù)據(jù)交換。也可以不用互鎖信號和共享RAM,直接通過郵箱機制傳遞最多32位的數(shù)據(jù)。

另外一種簡單的方法叫作消息隊列機制:直接在共享RAM中創(chuàng)建循環(huán)緩沖器用于消息隊列。當一個CPU內(nèi)核準備好數(shù)據(jù)之后,就把數(shù)據(jù)發(fā)送到這個隊列最后面(隊尾),而另一CPU內(nèi)核每次從這個隊列的最前面取數(shù)據(jù)。對每個隊列的訪問是單向的,即一個CPU核只能寫,而另一個CPU內(nèi)核只能讀。要實現(xiàn)雙向,必須創(chuàng)建至少兩個隊列。 這種方法可以不用互鎖信號,但可以使用中斷機制通知另一個CPU核,以便實現(xiàn)實時通信和數(shù)據(jù)交換。

雙核的開發(fā)很難嗎?

針對雙核以及多核體系架構,恩智浦提供了多核SDK開發(fā)庫(稱為MCSDK), 以及豐富的例程,包含在相應多核平臺的MCUXpresso SDK 開發(fā)包中。 下圖顯示了MCSDK的架構:

eRPC即嵌入式遠程過程調(diào)用(Embedded Remote Procedure Call),是一套實現(xiàn)調(diào)用另一核上遠程服務的透明函數(shù)調(diào)用接口。MCMGR即多核管理器(Multicore Manager),是包含所有CPU內(nèi)核信息及啟動從核的函數(shù)調(diào)用接口。RPMsg-Lite即遠程處理器消息機制精簡版(Remote Processor Messaging – Lite),包含了所有處理器間通信的函數(shù)庫。

這套庫支持市面上所有主流ARM Cortex-M軟件開發(fā)工具,包括IAR、KEIL、GCC,以及MCUXpresso IDE。

有了這套多核SDK開發(fā)庫,用戶可以不用關心硬件底層的通信機制,直接使用相應的例程和調(diào)用接口,幾分鐘內(nèi)便可以實現(xiàn)雙核間的通信和數(shù)據(jù)交換代碼。

下面這個例子說明如何使用RPMsg-Lite,從一個CPU內(nèi)核發(fā)送數(shù)據(jù)到另一內(nèi)核:

rpmsg_lite_send(my_rpmsg, my_ept, REMOTE_EPT_ADDR, (char *)&msg,sizeof(msg), …);

其中my_rpmsg是rpmsg_lite_remote_init()或rpmsg_lite_master_init()調(diào)用所創(chuàng)建的RPMsg實例;如果是主CPU內(nèi)核,就用rpmsg_lite_master_init()初始化, 否則就是遠程CPU內(nèi)核,用rpmsg_lite_remote_init()初始化

my_ept是此消息管道的端點,由rpmsg_lite_create_ept()調(diào)用創(chuàng)建的:

my_ept = rpmsg_lite_create_ept(my_rpmsg, LOCAL_EPT_ADDR, …);

msg是真正要交換的消息。

REMOTE_EPT_ADDR,LOCAL_EPT_ADDR分別是此消息管道的遠程端點和本地端點的邏輯地址。

怎么調(diào)試雙核應用程序?

在回答這個問題之前,先看一下硬件調(diào)試接口圖:

上圖說明,LPC5411x 系列支持對雙核同時調(diào)試 ,就像調(diào)試單個CPU內(nèi)核程序一樣簡單。

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

    關注

    147

    文章

    19165

    瀏覽量

    404895
  • 雙核
    +關注

    關注

    0

    文章

    40

    瀏覽量

    15623

原文標題:如果你的設計正好需要雙核MCU,請看本文 !

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    非對稱MCU基礎知識及間通信

    的控制/狀態(tài)通信。然后,對內(nèi)核互斥、初始化流程等一些重要的細節(jié)展開了論述。最后提出了任務分工的兩種應用模型,并分別舉例。 背景與基本概念 在開發(fā)MCU應用系統(tǒng)時,如果單顆
    發(fā)表于 05-15 14:26

    基于MCU提高系統(tǒng)性能

    界面等。這類方案的存在諸多缺點,首先兩顆 MCU 增加了 PCB 的面積,而且 MCU 之間的通訊的可靠性和數(shù)據(jù)吞吐率受到限制,另外,功耗將顯著增加,程序
    發(fā)表于 07-04 07:49

    如何采用非對稱MCU提高系統(tǒng)性能?

    本文系統(tǒng)地介紹了 C2000 Concerto 系列非對稱 MCU 的基礎知識和重要特點。
    發(fā)表于 04-02 06:02

    非對稱MCU的基礎知識與重要特點

    通信。然后,對內(nèi)核互斥、初始化流程等一些重要的細節(jié)展開了論述。最后提出了任務分工的兩種應用模型,并分別舉例?! ”尘芭c基本概念在開發(fā)MCU應用系統(tǒng)時,如果單顆
    發(fā)表于 11-01 06:29

    MCU Pico的相關資料分享

    PIO架構,能否開創(chuàng)MCU市場全新領域,STM,兆易創(chuàng)新,STC,全志,樂鑫等一票國產(chǎn)MCU能否跟上?樹莓派發(fā)布基于M0的MCU近日,樹
    發(fā)表于 11-04 08:51

    DSP MCU,什么是SP MCU

    DSP MCU,什么是SP MCU 各種數(shù)字消費產(chǎn)品特別是便攜式數(shù)字產(chǎn)品的功能已由單一
    發(fā)表于 03-26 15:00 ?1169次閱讀

    非對稱MCU基礎知識及間通信

    本文從對比兩顆分立MCU與單芯片MCU開始(以LPC4350為例),展開介紹了非對稱
    發(fā)表于 03-26 15:31 ?4257次閱讀
    非對稱<b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>基礎知識及<b class='flag-5'>核</b>間通信

    應用非對稱MCU增強系統(tǒng)性能

    本文從對比兩顆分立MCU與單芯片MCU開始(以LPC4350為例),展開介紹了非對稱
    發(fā)表于 04-11 10:05 ?1421次閱讀
    應用非對稱<b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>增強系統(tǒng)性能

    就是任性——LPC Xpresso54102開發(fā)板評測

    隨著科技的進步,逐漸被淘汰已是時間上的問題,四乃至八核心CPU已不再是什么新奇的事物,不過在微控制器領域,
    發(fā)表于 08-25 11:44 ?11次下載

    非對稱MCU基礎知識及間通信

    本文從對比兩顆分立MCU與單芯片MCU開始(以LPC4350為例),展開介紹了非對稱
    的頭像 發(fā)表于 03-13 15:47 ?5878次閱讀
    非對稱<b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>基礎知識及<b class='flag-5'>核</b>間通信

    非對稱MCU基礎知識及間通信

    通信。然后,對內(nèi)核互斥、初始化流程等一些重要的細節(jié)展開了論述。最后提出了任務分工的兩種應用模型,并分別舉例?! ”尘芭c基本概念在開發(fā)MCU應用系統(tǒng)時,如果單顆
    發(fā)表于 10-26 09:21 ?11次下載
    非對稱<b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>基礎知識及<b class='flag-5'>核</b>間通信

    樹莓派不講武德,自研MCU Pico,STM32哭暈在廁所!

    PIO架構,能否開創(chuàng)MCU市場全新領域,STM,兆易創(chuàng)新,STC,全志,樂鑫等一票國產(chǎn)MCU能否跟上?樹莓派發(fā)布基于M0的MCU近日,樹
    發(fā)表于 10-28 20:20 ?14次下載
    樹莓派不講武德,自研<b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b> Pico,STM32哭暈在廁所!

    先楫HPM6000系列MCU怎么玩?

    多核的微控制器(MCU)向來是設計上的一大挑戰(zhàn),尤其是多核異構的設計。而MCU作為其中的精簡版本,憑借其超強的處理性能和便捷開發(fā)的特性,
    的頭像 發(fā)表于 05-10 14:25 ?2861次閱讀
    先楫HPM6000系列<b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>怎么玩?

    如何玩轉(zhuǎn)HPM6000系列MCU

    本文通過對先楫HPM6000系列的使用方法、工程編譯與調(diào)試、通信方式和資源分配等內(nèi)容的介紹,全方位給大家介紹
    發(fā)表于 05-10 14:25 ?1530次閱讀
    如何玩轉(zhuǎn)HPM6000系列<b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>?

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

    多核的微控制器(MCU)向來是設計上的一大挑戰(zhàn),尤其是多核異構的設計。而MCU作為其中的精簡版本,憑借其超強的處理性能和便捷開發(fā)的特性,
    的頭像 發(fā)表于 05-12 10:08 ?4844次閱讀
    玩轉(zhuǎn)<b class='flag-5'>MCU</b><b class='flag-5'>雙</b><b class='flag-5'>核</b>(上) 先楫HPM6000系列<b class='flag-5'>雙</b><b class='flag-5'>核</b>怎么玩?答案超乎你想象!
    河间市| 淮安市| 江川县| 虞城县| 闵行区| 济源市| 昌宁县| 浙江省| 澳门| 长宁县| 游戏| 张北县| 东兰县| 普兰店市| 汉沽区| 平和县| 陵水| 兴隆县| 呼玛县| 平南县| 应用必备| 凤阳县| 会泽县| 高碑店市| 邹城市| 庄浪县| 海晏县| 贞丰县| 儋州市| 漳州市| 高清| 鹤峰县| 新丰县| 舒兰市| 宕昌县| 都昌县| 张家川| 全南县| 佛山市| 犍为县| 阳泉市|