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

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

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

如何實現(xiàn)雙核的AMP啟動

lhl545545 ? 來源:ZYNQ ? 作者:ZYNQ ? 2022-09-14 09:07 ? 次閱讀

之前章節(jié)中涉及到PS端的裸機程序都是在CPU0上運行的,弄的差點就忘了ZYNQ是擁有兩個A9硬核的強勁芯片,所以我們必須要學會怎么讓兩個CPU核心同時運行,不然就和之前開發(fā)單片機有什么區(qū)別呢?本章我們就來探索如何實現(xiàn)雙核的AMP啟動(PS:博主以前是開發(fā)單片機和FPGA過來的)。

ZYNQ雙核啟動方式簡介

非對稱多處理器啟動(AMP啟動)

這個模式啟動可以用語使用多個CPU核的系統(tǒng)上,比如像ZYNQ這樣的多核芯片上,在這種模式下,每個CPU核可以運行自己的操作系統(tǒng),比如可以CPU0跑裸機而CPU1跑FreeRTOS系統(tǒng),再比如CPU0跑FreeRTOS系統(tǒng)而CPU1跑LINUX系統(tǒng);而CPU之間的通訊是通過共享內(nèi)存的方式進行的。

對稱多處理器啟動(SMP啟動)

在該啟動模式下所有的CPU必須是完全相同的構(gòu)架,并且所有CPU必須運行單個操作系統(tǒng)一起運行,這個操作系統(tǒng)把進程任務分派到各個CPU上,并且加以協(xié)調(diào)。和AMP一樣,CPU之間是通過共享內(nèi)存來做通信,以及任務執(zhí)行的協(xié)調(diào)。所以SMP的啟動方式不適合在裸機以及RTOS環(huán)境下實現(xiàn)。

兩種啟動方式的比較

下圖描述了AMP和SMP的不同,以及他們在ZYNQ平臺上的對應關(guān)系:0914e9b8-33c3-11ed-ba43-dac502259ad0.png其性能的不同如下所示:098285e0-33c3-11ed-ba43-dac502259ad0.png

AMP啟動的實現(xiàn)

我們本節(jié)工程是基于 ZYNQ進階之路7 章節(jié)的內(nèi)容實現(xiàn)的,在ZYNQ進階之路7 章節(jié)中我們輸出了兩路PWM波實現(xiàn)呼吸燈的功能,在本章節(jié)中我們分別使用CPU0和CPU1控制兩個LED等實現(xiàn)兩個呼吸燈的功能,我們再通過邏輯在PL端增加兩個端口輸出PWM控制LED,這兩個LED實現(xiàn)和前面兩個LED同步呼吸的功能。首先打開 ZYNQ進階之路7 中的工程如下所示:099e5306-33c3-11ed-ba43-dac502259ad0.png新建verliog文件輸入以下代碼,代碼中的50M時鐘我們使用PL端的50M晶振提供,所以和PS端屬于異步時鐘,因為PS端提供給PL端的時鐘也為50M,所以這里我們對其進行簡單的跨時鐘域處理,多周期同步,對兩個PWM信號進行打兩個時鐘節(jié)拍的方式實現(xiàn)同步,這種方式能解決一些簡單的異步時鐘域問題:09cfd2be-33c3-11ed-ba43-dac502259ad0.png將PWM.v文件加入Diagram窗口中:

0a4086bc-33c3-11ed-ba43-dac502259ad0.png將信號線引出到指定接線上:0a8ee334-33c3-11ed-ba43-dac502259ad0.png對引腳進行綁定:0ab29540-33c3-11ed-ba43-dac502259ad0.png然后生成硬件bit文件,導出硬件,打開SDK進行軟件編程:0b187d4c-33c3-11ed-ba43-dac502259ad0.png然后分別創(chuàng)建CPU0和CPU1的兩個工程,在下圖中選擇:0b49cb36-33c3-11ed-ba43-dac502259ad0.png創(chuàng)建后如下圖所示,其中1為CPU0的工程,2為CPU2的工程:0b890904-33c3-11ed-ba43-dac502259ad0.png在CPU0的工程中輸入如下代碼:0bbef50a-33c3-11ed-ba43-dac502259ad0.png在CPU1工程中輸入如下代碼:0be7a586-33c3-11ed-ba43-dac502259ad0.png修改CPU0的DDR3基地址:0c149f96-33c3-11ed-ba43-dac502259ad0.png修改CPU1的DDR3基地址(注意兩個CPU的地址不能發(fā)生沖突):0c504b36-33c3-11ed-ba43-dac502259ad0.png右鍵點擊CPU1工程,選擇BSP setting選項:0c70370c-33c3-11ed-ba43-dac502259ad0.png在此處添加如下附加信息:0ca0d5f6-33c3-11ed-ba43-dac502259ad0.png然后就可以將兩個工程編譯后,在run config中設(shè)置如下選項:0d7216c0-33c3-11ed-ba43-dac502259ad0.png然后點擊run即可將程序下載到芯片中了,這是可以看到4個LED一兩個一對的方式實現(xiàn)呼吸燈功能了。在下一章節(jié)我們將講解如何將雙核程序固化到SPI flash中。  

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

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211746
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6822

    瀏覽量

    123331
  • Amp
    Amp
    +關(guān)注

    關(guān)注

    0

    文章

    81

    瀏覽量

    47160

原文標題:ZYNQ進階之路--AMP模式 雙核同時運行

文章出處:【微信號:ZYNQ,微信公眾號:ZYNQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RTOS實現(xiàn)MCU消息通信

    之間怎么通信?其實,通信的方式和方法有很多種。本文就給大家描述一下:使用FreeRTOS消息緩沖區(qū),實現(xiàn)簡單的非對稱多處理(AMP)核心到核心通信,結(jié)合STM32H7(M4和M7)
    發(fā)表于 06-07 14:45 ?1196次閱讀
    RTOS<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>雙</b><b class='flag-5'>核</b>MCU消息通信

    單片機是什么

    ,而且還可以通過軟件在不影響主程序的前提下實現(xiàn)高速PWM和UART功能。上圖為該單片機的內(nèi)部構(gòu)架示意圖,從圖可見該單片機內(nèi)部有兩個,分別為FPP0和FPP1,每個
    發(fā)表于 11-03 13:10

    nios ii例子

    nios ii例子nios ii例子NIOS II 構(gòu)建的簡單例子,希望對大家有所幫
    發(fā)表于 08-12 15:18

    非對稱MCU基礎(chǔ)知識及間通信

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

    請問ccs怎樣實現(xiàn)調(diào)試?

    TI的技術(shù)專家:你好。我用的是F28M36x系列DSP,請問如何在CCS中同步調(diào)試程序?謝謝解答!
    發(fā)表于 10-08 11:02

    基于DSP的視頻解碼芯片驅(qū)動研究與實現(xiàn)

    基于DSP的視頻解碼芯片驅(qū)動研究與實現(xiàn)
    發(fā)表于 05-28 09:11

    如何在CubeIDE中為處理器創(chuàng)建靜態(tài)庫?

    如何為處理器創(chuàng)建靜態(tài)庫?在 CubeIDE 下以“New Project”啟動時,“Static Library”點不可用,例如,當使用 STM32H745 (M4 &amp;
    發(fā)表于 12-05 06:51

    什么是處理器

    什么是處理器 什么是處理器呢?處理器背后的概念蘊涵著什么意義呢?簡而言之,
    發(fā)表于 10-12 09:47 ?1.7w次閱讀

    什么是cpu

    cpu 就是2個核心,核心(Die)又稱為內(nèi)核,是CPU最重要
    發(fā)表于 12-17 11:01 ?1280次閱讀

    DSP MCU,什么是SP MCU

    DSP MCU,什么是SP MCU 各種數(shù)字消費產(chǎn)品特別是便攜式數(shù)字產(chǎn)品的功能已由單一走向多元化,因而原有的半導體解決方案已不能
    發(fā)表于 03-26 15:00 ?1022次閱讀

    什么是處理器?

      簡單來說,處理器就是在一個硅片上集成兩個CPU。那么什么是處理器呢?處理器背后的
    發(fā)表于 10-08 18:21 ?980次閱讀

    非對稱MCU基礎(chǔ)知識及間通信

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

    非對稱MCU基礎(chǔ)知識及間通信

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

    ZYNQ開發(fā)運行原理及過程

    ZYNQ是一個可擴展平臺,就是有FPGA作為外設(shè)的A9處理器,它的啟動流程與FPGA完全不同,而與傳統(tǒng)的ARM處理器類似,ZYNQ的啟動配置需要多個處理步驟。
    的頭像 發(fā)表于 12-05 10:48 ?5912次閱讀

    正點原子i.MX 93開發(fā)板,A55+M33+NPU,路RS485&amp;amp;FDCAN&amp;amp;千兆網(wǎng),異/AI/工業(yè)開發(fā)!

    正點原子i.MX 93開發(fā)板,A55+M33+NPU,路RS485&amp;FDCAN&amp;千兆網(wǎng),異
    的頭像 發(fā)表于 05-08 15:00 ?775次閱讀
    正點原子i.MX 93開發(fā)板,<b class='flag-5'>雙</b><b class='flag-5'>核</b>A55+M33+NPU,<b class='flag-5'>雙</b>路RS485&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;FDCAN&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;千兆網(wǎng),異<b class='flag-5'>核</b>/AI/工業(yè)開發(fā)!