加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

Zynq的AMP多核處理

2023/07/15
3390
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

寫的是Zynq 7000系列的,arm有兩個核。主要有AMP和SMP兩種方式,SMP是兩個核運行一個操作系統(tǒng),跑LINUX的話,使能SMP,資源會自動分配給兩個核運行。AMP是兩個核獨立運行,每個核可以運行操作系統(tǒng)也可以裸機運行。

兩個CPU的啟動方式是CPU0先運行,然后根據需要啟動CPU1。

ZYNQ會先運行一個fsbl程序,再運行應用程序。因此啟動CPU1的工作可以在fsbl中做,也可以在應用程序中做。

1 在FSBL中啟動CPU1

FSBL程序可以在VITIS這個軟件中生成。

在FSBL中添加以下程序來啟動CPU1

Xil_Out32(0XFFFFFFF0, CPU1程序地址);dmb(); sev(); //喚醒 CPU1

此段程序加在FSBL程序的HandoffAddress = LoadBootImage()之后,LoadBootImage()的作用的是將程序拷貝到ddr中,先將程序拷貝到ddr中,程序才能跳轉運行。

1.1 CPU0運行裸機程序

fsbl啟動兩個CPU的應用程序

1.2?CPU0運行操作系統(tǒng)(Linux

uboot就是CPU0的應用程序

2 應用程序啟動CPU1

2.1 CPU0運行裸機程序

在CPU0的應用程序中喚醒CPU1,程序一樣,如下:

Xil_Out32(0XFFFFFFF0, CPU1程序地址);dmb(); sev(); //喚醒 CPU1

2.2 CPU0運行操作系統(tǒng)(Linux)

可以在UBOOT中喚醒CPU1,也可以在運行內核后喚醒CPU1。

 

 

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據手冊 ECAD模型 風險等級 參考價格 更多信息
AT27C512R-12PC 1 Atmel Corporation OTP ROM, 64KX8, 120ns, CMOS, PDIP28, 0.600 INCH, PLASTIC, DIP-28
$2.63 查看
SN74AHC1G14DCKT 1 Texas Instruments Single 2-V to 5.5-V inverter with Schmitt-Trigger inputs 5-SC70 -40 to 125

ECAD模型

下載ECAD模型
$0.9 查看
ABLS-LR-3.000MHZ-T 1 Abracon Corporation CRYSTAL 3.0000MHZ 18PF SMD
$3.11 查看

相關推薦

電子產業(yè)圖譜