精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

LPC5500雙核基本架構!LPC5500雙核面貌特征

UtFs_Zlgmcu7890 ? 來源:lp ? 2019-03-26 16:30 ? 次閱讀

這次奉上與LPC5500“核心”相關的“硬核”技術——雙核,以饗讀者。誠然,MCU雙核已不是什么新鮮玩意兒。但是,LPC5500博采了LPC4300和LPC54110這兩個系列所長,使得雙核更簡單實用。

LPC5500雙核基本架構

雙核并不高深,所謂雙核就是兩個CPU——中央處理單元,也就是一個MCU芯片內置了兩個CPU。

和之前支持雙核的LPC系列一樣,針對于MCU嵌入式應用,LPC5500依然采用簡單的非對稱架構,即一個主CPU,一個從CPU,這類似于有些產品采用主MCU和從MCU的設計。只是支持雙核的MCU,是共享此MCU所有的存儲器和外設接口資源。

共享就帶來競爭的問題,處理不當則影響性能。LPC5500有配套的系統架構來使得此共享可轉化為并行的,從而盡量避免競爭,來保證性能不被影響。

應對競爭架構上的考慮,如下圖所示,主要有兩條:

內部AHB總線是多層矩陣架構;

分離出多塊獨立的SRAM

圖中所示:紅色框是多層AHB矩陣總線;綠色框是多塊分立的存儲塊。主CPU和從CPU的代碼數據可存放在不同存儲塊中,它們和圖中左下角大量外設接口并行的掛在矩陣總線上。

這樣,藍色框中的雙核CPU0和CPU1,可以同時并行地對存儲塊和外設接口進行訪問,即程序可以同時運行。如此,則雙核的威力能夠得以充分的發揮。

至此,我們初步認識了LPC5500雙核,了解了其基本框架。但是,這好比我們只是遠遠的看見了一個人,大概知道其身形,他具體容貌怎樣的呢?讓我們一起往下看

LPC5500雙核面貌特征

上面提到,LPC5500雙核分為主從,主CPU命名為CPU0,從CPU命名為CPU1。它們都是基于ARM Cortex-M33的。

它們的基本配置構成如下:

1、CPU0 (r0p3版):

頻率最高可達100MHz

TrustZone、DSP、浮點單元和存儲保護單元(MPU)

內置嵌套向量中斷控制器(NVIC)

串行線調試接口(SWD)

系統嘀嗒定時器(System tick timer)

內置嵌套向量中斷控制器(NVIC)

串行線調試接口(SWD)

系統嘀嗒定時器(System tick timer)

2、CPU1 (r0p3版):

頻率最高可達100 MHz

內置嵌套向量中斷控制器(NVIC)

串行線調試接口(SWD)

系統嘀嗒定時器(System tick timer)

顯然,作為從的CPU1比主CPU0少了TrustZone、浮點單元(FPU)等,這使得主CPU0天然地計算處理能力更強。

但是賦予主CPU0這些亮點,不是讓它做顏值擔當,而是任務擔當的。這讓我們自然想到雙核的典型應用——相信這也是大家很關心的。

LPC5500雙核典型應用

LPC5500的雙核典型應用,即基本應用思路,與之前LPC4300和LPC54110一樣。

主CPU用來做處理計算任務(比如算法),從CPU負責外設實時控制和數據傳輸。

這樣,能充分利用雙核達到更好性能。參見下圖:

哦,LPC5500雙核很“酷”的樣子,有點“喜歡”上它了,可是,相愛容易相處難啊?!

不要擔心,難,那是因為不懂得如何“相處”。

接下來,讓我們來聊聊如何和LPC5500雙核“相處”——雙核的實現,這主要涉及到以下內容:雙核啟動;雙核通訊;雙核調試。

1雙核啟動

對于單核MCU,上電啟動過程簡單明了,如單身狗的生活簡單自由,該干啥干啥,不能指望也無需考慮他人。

兩人世界就需要協商著行動了,LPC5500采取了和最早LPC4300系列類似的雙核啟動機制,即出廠默認并固定一個核為主,另一個為從,不能更改,“專制”卻簡單易用。

隨后的LPC54110系列則實行“民主”機制,兩個核可以輪流坐莊,即用戶可以在啟動過程中選擇其中之一為主核,這樣提供了靈活性,但略微復雜。

為了簡單起見,如今新的LPC5500雙核使用固定的主從模式。

LPC5500上電時,自然地按照主從,主核CPU0如單核一樣直接啟動,從核CPU1則hold住不動——這由硬件自動完成。

主核啟動后負責初始化運行環境,然后配置好從核的啟動地址(即從核代碼映像運行的起始地址),最后釋放從核CPU1——這些由軟件完成。這時,主從雙核就分別如同單核一樣同時運行它們各自的代碼了。

要讓雙核“和諧”運作,關鍵是要讓兩個核的代碼映像存儲和運行空間獨立互不干擾(參見前面關于多層總線矩陣和多塊存儲塊的介紹),這點具體實現方法是靈活的,比單核來得復雜些。這里就不具體展開,有需要的可找相關資料學習,比如,我們有篇應用筆記通過測試雙核coremark分數,提供了一種達到最好性能的實現方法。不關心這些細節也不用擔心,NXP已經提供了相關SDK庫可直接借用。

2雙核通訊

當兩個核都運行起來后,它們可以像兩個不同行業的人,各自做著自己的本職工作,默默為社會貢獻自己的力量,老死不相往來。但大多數應用中,兩個核除了各司其職,還需要互相通訊,協同工作。

LPC5500提供了一套簡單的硬件通訊機制,叫內部CPU郵箱通訊機制,可以適用于大多數嵌入式系統雙核的通訊應用。

這套機制從LPC54110系列繼承而來,最早的LPC4300系列雙核通訊幾乎完全靠軟件來實現,占用資源,且給使用帶來不少難度。目前這套機制,簡單易用,但不死板,留給用戶一定靈活發揮空間。

它主要提供了兩種寄存器,一種是32位的CPU中斷寄存器,兩個CPU都能訪問它,32位中只要有一位不為零,就能產生中斷請求,且每一位可代表一個不同狀況,比如事件或者狀態,這完全可由用戶自己定義。

這樣CPU間就可相互實時通訊了,比如一個CPU完成某項任務,寫入一個非0值到此寄存器,發出中斷信號,另一CPU中斷后讀取此值,來決定后續工作。

通訊的一大需求就是同步,這就需要另一個叫做互斥寄存器的來完成,它只有第0位(bit0)可用,復位后默認值為1。當讀此寄存器時,讀出數值的同時這位自動被清0;當寫它時,這位將再次被置為1。

此正是互斥量的特性,以用于實現CPU間對任何共享資源的握手同步。例如,當一個CPU要訪問某共享資源時,先讀此寄存器,若讀到的是1,表示資源可用,同時1被自動清為0;若讀到0,則表示資源被占用;在CPU用完共享資源時,即寫此寄存器,使其置1,表示釋放了資源為可用。

這套郵箱機制簡單框架圖如下:

順便提下,我們在LPC5500 SDK包中還提供了一套開源多核軟件開發包,包括庫和大量例程。通過庫的API提供了支持用戶實現復雜的多核通訊機制。

這套多核SDK的庫代碼包含在LPC5500SDK包以下路徑:

middlewaremulticore

例程則在:

oardslpcxpresso55s69multicore_examples

3雙核調試

LPC5500的雙核都支持SWD調試模式,就調試的級別來說,它們是”平等”的。實際實現時,每個核一般有自己的工程,它們各自的調試和單核無異。

但在兩個核有關聯時(即前面提到的雙核啟動和雙核通訊過程),調試要有所注意,關鍵就是要真正理解了這兩個過程機制,依據這兩個機制的特點進行調試,則基本沒什么問題。

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

    關注

    146

    文章

    17002

    瀏覽量

    350328
  • 存儲器
    +關注

    關注

    38

    文章

    7453

    瀏覽量

    163608
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10826

    瀏覽量

    211160

原文標題:【硬核干貨】LPC5500——簡便易用的雙核技術

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于恩智浦LPC5500系列MCU的OKDO E1開發板詳解

    OKDO E1 開發板作為恩智浦 LPC5500 系列開發平臺中獨特的一員,以其小巧的尺寸,高易用性收獲了許多用戶的高度關注。開發板僅 2 枚硬幣大小,卻集成了 LPC55S69 主芯片
    發表于 11-13 15:20 ?1558次閱讀

    基于Cortex M33的LPC5500系列MCU主要功能特性介紹

    (內置閃存)進行實時執行,并通過Arm TrustZone-M保護資產。此外,LPC5500系列MCU共有7個可擴展的家族,提供多種封裝和內存選項,還具有全面的MCUXpresso軟件和工具生態系統
    發表于 11-13 16:06 ?2359次閱讀
    基于Cortex M33的<b class='flag-5'>LPC5500</b>系列MCU主要功能特性介紹

    恩智浦LPC55S16 MCU獲得了PSA 2級和SESIP 2級保證認證

    LPC55S16 MCU屬于恩智浦EdgeVerse?計算和安全產品組合,是基于Arm? Cortex?-M33內核的通用LPC5500 MCU系列的成員。
    發表于 11-21 09:28 ?1742次閱讀

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

    來源 網絡本文從對比兩顆分立MCU與單芯片MCU開始(以LPC4350為例),展開介紹了非對稱MCU的基礎知識與重要特點。接下來,重
    發表于 05-15 14:26

    LPC55S69 Flashmagic不編程的原因?

    到我的主板。(這也為我的 PCB 供電)我遵循了 flashmagic 的設置:選擇 USB LPC55S69。十六進制文件。設備 LPC55S69(USB、LPC5500)接口
    發表于 03-15 07:54

    LPC55S69的性能技巧是什么?

    我 以為 我看到了關于優化 LPC55S6x 系列性能的應用說明,但我現在找不到任何東西。有這樣的資源嗎?我主要尋找的是有關內存爭用的信息。我看到兩個內核共享相同的閃存接口。從閃存運行的兩個內核可以實現什么樣的性能?第二個核
    發表于 03-31 09:07

    LPC5500 Flash過度編程是否可行?

    我了解 LPC5500 處理器具有帶 ECC 的閃存,頁面大小為 512 字節,用于擦除和編程。 在 LPC55S6x/LPC55S2x 用戶手冊的 5.7.13 ECC 部分,我發現它說 由于
    發表于 06-01 06:56

    奔騰再升級 E5500即將面世

    奔騰再升級 E5500即將面世 Nehalem
    發表于 12-24 08:55 ?978次閱讀

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

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

    中文版LPC43xx系列ARM微控制器數據手冊

    中文版LPC43xx系列ARM微控制器數據手冊
    發表于 10-09 09:29 ?0次下載
    中文版<b class='flag-5'>LPC</b>43xx系列ARM<b class='flag-5'>雙</b><b class='flag-5'>核</b>微控制器數據手冊

    安全、高能、低耗!NXP正式開始量產LPC551x

    LPC551x/S1x作為系列中的入門級產品,提供出色的能效比的同時,依然繼承了LPC5500系列的諸多安全功能。使其除了在物聯網應用中游刃有余,還能擴展應用到消費類及工業自動化領域。
    的頭像 發表于 06-03 11:25 ?4808次閱讀

    如何使用IAR從零開始搭建LPC5500核工程

    , 讓一個 150MHz 的 Cortex-M33 內核閑在那里實在浪費, 并且在一些對性能有要求的情況下, 使用同時工作確實可以簡化應用的開發過程, 并提升系統整體的工作效率 。 筆者最近就遇到了這么一個案例 。
    發表于 11-25 09:45 ?9次下載

    串口DMA發送+中斷接收的例程

    LPC5500的SDK中提供了非常豐富的串口例程(如下圖所示)。
    的頭像 發表于 07-21 09:14 ?2690次閱讀

    關于LPC5500中USB的FRAME_INT中斷

    關于LPC5500中USB的FRAME_INT中斷
    的頭像 發表于 10-30 18:26 ?506次閱讀
    關于<b class='flag-5'>LPC5500</b>中USB的FRAME_INT中斷

    LPC5500_SDK例程:串口DMA發送+中斷接收

    LPC5500_SDK例程:串口DMA發送+中斷接收
    的頭像 發表于 10-30 16:59 ?1042次閱讀
    <b class='flag-5'>LPC5500</b>_SDK例程:串口DMA發送+中斷接收