日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Zynq的AMP开发流程说明(基于OCM)

發布時間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zynq的AMP开发流程说明(基于OCM) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一.平臺說明

二.軟件安裝

三.基本開發流程

3.1.AMP模式介紹

3.2.開發流程框圖

四.具體開發流程

4.1.下載官方Demo源碼

4.2.Vivado工程創建(Windows 64位環境)

4.2.1.工程創建

4.2.2.配置ARM系統:

4.2.3.工程編譯并導出

4.3.Petalinux工程(Ubuntu 16.04環境)

4.4.SDK工程(Windows 64位環境)

4.4.1.CPU1程序(app_cpu1.elf)創建:

4.4.2.softUart.elf創建(使用petalinux更方便):

4.5.生成SD卡下載文件(Windows 64位環境)

五.SD卡啟動配置

1.SD 系統啟動卡說明

2.SD系統啟動卡制作步驟

六.板卡雙核系統驗證

6.1.poke和peek命令

附錄


一.平臺說明

1、硬件平臺:ZYNQ7z202clg400-2的創龍核心板

2、軟件平臺:

Windows 64位環境下:

Vivado 2017.04版本+SDK 2017.04版本

??? Linux環境下(Ubuntu 16.04):

Petalinux 2017.04版本

二.軟件安裝

Vivado+SDK+Petalinux是xilinx針對SOC FPGA芯片而設計的專用開發方式。Vivado進行ARM系統配置和FPGA硬件電路設計,SDK進行用戶應用程序設計,Petalinux進行linux的uboot、kernrl和rootfs的集成式設計。

軟件安裝:

(1)Vivado+SDK安裝流程:《Vivado2017.4安裝教程》

(2)Petalinux安裝教程:《Petalinux2017.4安裝教程》

三.基本開發流程

3.1.AMP模式介紹

從軟件的角度來看,多核處理器的運行模式有三種:

AMP(非對稱多進程):

多個核心相對獨立的運行不同的任務,每個核心可能運行不同的操作系統或裸機程序,但是有一個主要核心,用來控制整個系統以及其它從核心。

SMP(對稱多進程):

一個操作系統同等的管理各個內核,例如PC機。

BMP(受約束多進程):

與SMP類似,但開發者可以指定將某個任務僅在某個指定內核上執行 。

默認情況下,ZYNQ僅運行一個CPU,這里主要研究AMP模式下,即兩個CPU同時運行,其中CPU0運行linux系統,CPU1運行裸機程序。

3.2.開發流程框圖

四.具體開發流程

4.1.下載官方Demo源碼

本文檔采用官方提供的Demo進行AMP模式的開發和測試,資源鏈接:

https://xilinxwiki.atlassian.net/wiki/spaces/A/pages/18841653/XAPP1078+Latest+Information

下載文件:xapp1078_2014.04.zip

目錄介紹:

??? xapp1078_2014.04---------------- design:設計所需的所有源文件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|---------------- docs:相關源文件的使用介紹????????

AMP開發視頻講解:https://www.youtube.com/watch?v=xoNRZ1Q_h1k

4.2.Vivado工程創建(Windows 64位環境)

4.2.1.工程創建

Vivado可使用2種方法創建用戶工程:圖形組件手動搭建或是采用tcl命令創建,這里通過修改Demo提供的tcl文件,創建能夠在Vivado 2017.04運行的ZYNQ7z020clg400-2系列工程(注意:修改部分見文檔中備注)

4.2.2.配置ARM系統:

??? 根據創龍核心板進行最小系統配置,配置內容包括:時鐘系統、外設與引腳復用、外部DDR、PS-PL中斷等部分。需要修改的部分主要有:

??? 時鐘系統:與創龍保持相同配置

??? DDR:與創龍保持相同配置,為512M

外設與引腳復用:與創龍保持相同配置

PS-PL中斷等部分:保持Demo配置,使能fpga對cpu1的中斷

4.2.3.工程編譯并導出

工程創建完成后,經Vivado綜合實現可生成后續使用文件:

文件名稱

作用

文件位置

design_1_wrapper.bit

FPGA的燒寫文件

/(工程文件夾)/(工程名).runs /impl_1文件夾下

design_1_wrapper.hdf

系統硬件描述文件

/(工程文件夾)/(工程名).sdk文件夾下

SDK工程目錄

包含SDK軟件設計所需的源文件

/(工程文件夾)/(工程名).sdk文件夾

?

4.3.Petalinux工程(Ubuntu 16.04環境)

??? Petalinux使用Vivado生成的hdf文件,進一步配置并生成linux系統相關文件:uboot、kernel和rootfs等。具體流程如下:

Step1:拷貝hdf文件:將Vivado工程下的hdf拷貝到hwdef目錄下

??? mkdir /home/用戶/Desktop/hwdef

Step2:設置Petalinux運行環境:

??? source <Petalinux安裝目錄>/settings.sh

Step3:創建Petalinux工程

??? cd /home/用戶/Desktop

??? petalinux-create -t project -n plnx-project --template Zynq

Step4:導出hdf文件并配置

??? petalinux-config --get-hw-description=../hwdef?

出現如下配置界面:

配置系統從SD卡啟動:

Linux Components Selection

[*] First Stage Bootloader:默認配置,生產FSBL文件

Auto Config Settings

保持默認配置

Subsystem AUTO Hardware Settings

Memory Settings --->檢查是否與Vivado中配置一樣(0x18000000)

Serial Settings --->系統默認為串口1,波特率115200

SD/SDIO Settings ---> 設置主SDSD0

Advanced bootable images storage Settings中:

boot image settings --->選擇SD

uboot-env選擇flash?????????????????????????????????????????????????????????????????????????

kernel image settings --->選擇SD?

jffs2 rootfs:選擇flash

dtb image:選擇sd????????????????????????????????????????????????????????????????????????????????????

DTG Settings

Kernel Bootargs:內核啟動參數

console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait rootfstype=ext4 mem=384M maxcpus=1

(注意:這里限制了系統使用內存為384M,剩余128M留給CPU1的裸機程序)

u-boot Configuration

保持默認配置

Image Packaging Configuration

Root filesystem type --->選擇SD類型

Firmware Version Configuration

固件版本控制,可修改,保持默認配置

Yocto Settings

保持默認配置

Step5:配置 u-boot

??? petalinux-config -c u-boot

出現如下配置界面:

進行如下配置:

Architecture select (ARM architecture)

系統構架選擇,默認ARM

ARM architecture

構架配置選項,保持默認配置

General setup

通用配置,保持默認配置,可修改

Boot images

Boot鏡像,保持默認配置

Boot timing

Boot時間,保持默認配置

Boot media

Boot介質,配置從SD卡啟動

delay in seconds before automatically booting

Boot自啟動時間,默認4s,可修改

Console

Console控制臺配置,保持默認

Default fdt file

默認FDT文件,無

Disable support for parallel NOR flash

NOR flash支持,無支持

add U-Boot environment variable vers

U-Boot環境變量添加,無

Display information about the CPU during start up

啟動階段顯示CPU信息,可選

Display information about the board during start up

啟動階段顯示板卡信息,可選

SPL / TPL

SPL / TPL支持,保持默認配置

Command line interface

命令行配置,用戶可進一步配置

Device Tree Control

設備樹控制,保持默認配置(embeded

Networking support

Net支持,保持默認配置

Device Drivers

設備驅動,保持默認配置

File systems

文件系統,保持默認配置

Library routines

庫程序,保持默認配置

Unit tests

單元測試,保持默認配置

Step6:配置kernel

出現如下配置界面:

保持所有的默認配置并退出。

Step7:創建CPU0應用程序softuart

??? petalinux-create -t apps --template c --name softuart

軟件會創建softUart應用程序目錄并產生softuart.c文件,用官方提供的softuart.c文件將其替換,可通過配置rootfs將cpu0的應用程序直接配置進系統。

Step7:配置rootfs

出現如下配置界面:

進行如下配置:

Filesystem Packages

系統擴展工具配置:可增加,如lrzszmake

apps

Xilinx提供的2APP

[ ] gpio-Demo:不配置

[*] peekpoke:配置,用于AMP模式測試

[*] softuart:配置,用于AMP模式測試

user packages

用戶app,無

PetaLinux RootFS Settings

Root password:設置root用戶密碼,默認為root

Step8編譯工程并生成系統文件

petalinux-build

工程編譯完成后,產生的所有可執行文件均在/工程目錄/image/linux下:

4.4.SDK工程(Windows 64位環境)

通過Vivado打開SDK(不要獨立打開),在SDK中設計CPU0和CPU1的應用程序:

  • app_cpu1.elf:CPU1裸機程序,與CPU0進行通信且接受FPGA的中斷信號
  • softUart.elf:CPU0應用程序,與CPU1進行通信,并產生FPGA中斷(已通過Petalinux設計

4.4.1.CPU1程序(app_cpu1.elf)創建:

Step0:Xilinx Tools-->Repositories-->New???? //導入sdk_repo(重要,包必須正確)

Step1File-->New-->Board Support Package??????? //生成bsp

如下顯示中出現:“standalone”,說明sdk_repo導入生效

在編譯選項中增加:-g -DUSE_AMP=1 -DSTDOUT_REDIR=1

?

Step2File-->New-->Application Project?????? //生成cpu1的app程序

Step3Next-->Empty Application

Step4app_cpu1-->sr+右鍵-->Import? ???????? //導入官方cpu1的app源文件

查看lscript.ld文件:512M外部DDR時的CPU1應用程序鏈接地址配置。

Step5:SDK自動生成可執行文件app_cpu1.elf

4.4.2.softUart.elf創建(使用petalinux更方便):

Step1File-->New-->Application Project

Step2:點擊Next-選中空的應用

Step3softUart -->src右鍵-->Import:導入softUart.c文件

Step4SDK自動生成可執行文件softUart.elf

?

4.5.生成SD卡下載文件(Windows 64位環境)

使用SD卡啟動系統時,需要如下的相應下載文件:

文件名

文件功能

來源

BOOT.bin

由如下文件合并而成:

Zynq_fsbl.elf:fsbl啟動文件

system.bit:fpga燒寫文件

u-boot.elf:u-boot文件

app_cpu1.elf:cpu1裸機程序

Zynq_fsbl.elf: petalinux

system.bit:Vivado

u-boot.elf:petalinux

app_cpu1.elf:SDK

devicetree.dtb

設備樹文件

petalinux

zImage

內核文件

petalinux

rootfs

根文件系統

petalinux

上述文件中,需要使用SDK生成BOOT.bin文件,生成步驟如下:

Step1將Zynq_fsbl.elf、system.bit 、u-boot.elf 和app_cpu1.elf拷貝到如下目錄:Demo目錄\design\src\bootgen

Step2用記事本打開bootimage.bif,將合并文件的名稱進行修改,已匹配上述文件。

Step2打開Vivado -->launch SDK???????? //通過Vivado打開SDK

Step3SDK -->xilinx-->launch shell???????? //打開命令行界面,并用cd命令切換到bootgen目錄

Step4執行createBoot.bat即可生成BOOT.BIN文件

五.SD卡啟動配置

1.SD 系統啟動卡說明

SD 卡啟動是開發板系統啟動方式的一種。SD 系統啟動卡共有 FAT32、EXT4 兩個格

式分區。其中 FAT32 格式分區在 Windows 系統下可見,EXT4 格式分區在 Windows 系統

下不可見,兩分區在 Linux 系統下均可見。FAT32 格式分區存放 Bootloader、內核、設備

樹、PL 端 bit 文件等,EXT4 格式分區存放文件系統。

開發板出廠時已經提供一個正常使用的 Linux SD 系統啟動卡。以下步驟是 Linux SD

系統啟動卡的制作過程。

2.SD系統啟動卡制作步驟

詳見《3-1-Linux SD系統啟動卡制作方法.pdf》。

?

六.板卡雙核系統驗證

6.1.poke和peek命令

???????? poke命令:向指定地址寫入數值data

格式:poke???? data????????? address

???????? Peek命令:讀取指定地址的內容

格式:peek???? address

6.2. 板卡驗證

(1)拷貝文件到SD卡

???????? 第一分區:BOOT.bin、devicetree.dtb和zImage

???????? 第二分區:rootfs文件系統

(2)連接開發板和配置好串口設置,波特率:115200

(3)進去linux系統:root用戶登錄,密碼:root

操作如下:

#poke 0xfffffff0 0x18000000??? //啟動cpu1(cpu1啟動原理參看ug585)

#peek 0xffff8000???????????????????????? //查看cpu1的heart beat變量值,每秒加1

#softuart &????????????????????????????????? //后臺運行cpu0的應用程序

#poke 0x78600000 0x00000001????? //cpu0向控制fpga向cpu1發起中斷

如上圖,雙核進行正常通信且cpu1完成對fpga的中斷響應,Zynq的AMP模式驗證完畢!

?

?

附錄

1. Zynq的AMP模式開發主要有如下參考文檔:《xilinx官方參考文檔》

2.Vivado、SDK和Petalinux軟件安裝:《xilinx軟件安裝說明》

3. Petalinux的uboot、kernel和rootfs配置詳解:《Petalinux的配置界面詳解.vsd》

4. linux系統啟動SD卡制作說明:《3-1-Linux SD系統啟動卡制作方法.pdf》

5. 官方Demo的使用說明:《xapp1078_2014.04\docs\Vivado instructions.txt》

6. 官方Demo文件:《xapp1078_2014.04.zip》

總結

以上是生活随笔為你收集整理的Zynq的AMP开发流程说明(基于OCM)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。