寫的是Zynq 7000系列的,arm有兩個核。主要有AMP和SMP兩種方式,SMP是兩個核運行一個操作系統(tǒng),跑LINUX的話,使能SMP,資源會自動分配給兩個核運行。AMP是兩個核獨立運行,每個核可以運行操作系統(tǒng)也可以裸機運行。
兩個CPU的啟動方式是CPU0先運行,然后根據(jù)需要啟動CPU1。
ZYNQ會先運行一個fsbl程序,再運行應(yīng)用程序。因此啟動CPU1的工作可以在fsbl中做,也可以在應(yīng)用程序中做。
1 在FSBL中啟動CPU1
FSBL程序可以在VITIS這個軟件中生成。
在FSBL中添加以下程序來啟動CPU1
Xil_Out32(0XFFFFFFF0, CPU1程序地址);
dmb();
sev(); //喚醒 CPU1
此段程序加在FSBL程序的HandoffAddress = LoadBootImage()之后,LoadBootImage()的作用的是將程序拷貝到ddr中,先將程序拷貝到ddr中,程序才能跳轉(zhuǎn)運行。
1.1 CPU0運行裸機程序

fsbl啟動兩個CPU的應(yīng)用程序
1.2 CPU0運行操作系統(tǒng)(Linux)

uboot就是CPU0的應(yīng)用程序
2 應(yīng)用程序啟動CPU1
2.1 CPU0運行裸機程序

在CPU0的應(yīng)用程序中喚醒CPU1,程序一樣,如下:
Xil_Out32(0XFFFFFFF0, CPU1程序地址);
dmb();
sev(); //喚醒 CPU1
2.2 CPU0運行操作系統(tǒng)(Linux)

可以在UBOOT中喚醒CPU1,也可以在運行內(nèi)核后喚醒CPU1。
-
Linux
+關(guān)注
關(guān)注
88文章
11806瀏覽量
219493 -
SMP
+關(guān)注
關(guān)注
0文章
82瀏覽量
20952 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7431瀏覽量
129592 -
Amp
+關(guān)注
關(guān)注
0文章
101瀏覽量
48638 -
Zynq
+關(guān)注
關(guān)注
10文章
632瀏覽量
49562
發(fā)布評論請先 登錄
ZYNQ多核處理器硬件上的劃分
多核處理器的優(yōu)點
Zynq-7000系列打得火熱,異構(gòu)多核技術(shù)需求怎么解決
DSP+ZYNQ多核例程使用手冊-XQTyer【開源】
Enea發(fā)布OSE多核版
多核處理器架構(gòu)及調(diào)試
簡單的放大器運行Linux在Zynq SoC處理器的裸機系統(tǒng)
多核處理器架構(gòu)及調(diào)試方案
處理器關(guān)于多核概念與區(qū)別 多核處理器工作原理及優(yōu)缺點
如何在Zynq Cortex A9處理器之間執(zhí)行處理器間通信
淺議多核處理器技術(shù)
ZYNQ雙核ARM分別運行不同的操作系統(tǒng)(基于OpenAMP)
XQ6657Z35-EVM 的DSP + ZYNQ核心板,SRIO通訊
Zynq的AMP多核處理
評論