目录
一.平台说明
二.软件安装
三.基本开发流程
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安装教程》
从软件的角度来看,多核处理器的运行模式有三种:
AMP(非对称多进程):
多个核心相对独立的运行不同的任务,每个核心可能运行不同的操作系统或裸机程序,但是有一个主要核心,用来控制整个系统以及其它从核心。
SMP(对称多进程):
一个操作系统同等的管理各个内核,例如PC机。
BMP(受约束多进程):
与SMP类似,但开发者可以指定将某个任务仅在某个指定内核上执行 。
默认情况下,ZYNQ仅运行一个CPU,这里主要研究AMP模式下,即两个CPU同时运行,其中CPU0运行linux系统,CPU1运行裸机程序。
本文档采用官方提供的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
Vivado可使用2种方法创建用户工程:图形组件手动搭建或是采用tcl命令创建,这里通过修改Demo提供的tcl文件,创建能够在Vivado 2017.04运行的ZYNQ7z020clg400-2系列工程(注意:修改部分见文档中备注)。
根据创龙核心板进行最小系统配置,配置内容包括:时钟系统、外设与引脚复用、外部DDR、PS-PL中断等部分。需要修改的部分主要有:
时钟系统:与创龙保持相同配置
DDR:与创龙保持相同配置,为512M
外设与引脚复用:与创龙保持相同配置
PS-PL中断等部分:保持Demo配置,使能fpga对cpu1的中断
工程创建完成后,经Vivado综合实现可生成后续使用文件:
文件名称 |
作用 |
文件位置 |
design_1_wrapper.bit |
FPGA的烧写文件 |
/(工程文件夹)/(工程名).runs /impl_1文件夹下 |
design_1_wrapper.hdf |
系统硬件描述文件 |
/(工程文件夹)/(工程名).sdk文件夹下 |
SDK工程目录 |
包含SDK软件设计所需的源文件 |
/(工程文件夹)/(工程名).sdk文件夹 |
Petalinux使用Vivado生成的hdf文件,进一步配置并生成linux系统相关文件:uboot、kernel和rootfs等。具体流程如下:
Step1:拷贝hdf文件:将Vivado工程下的hdf拷贝到hwdef目录下
mkdir /home/用户/Desktop/hwdef
Step2:设置Petalinux运行环境:
source
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);
|
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 |
系统扩展工具配置:可增加,如lrzsz,make等 |
apps |
Xilinx提供的2个APP
|
user packages |
用户app,无 |
PetaLinux RootFS Settings |
Root password:设置root用户密码,默认为root |
Step8:编译工程并生成系统文件
petalinux-build
工程编译完成后,产生的所有可执行文件均在/工程目录/image/linux下:
通过Vivado打开SDK(不要独立打开),在SDK中设计CPU0和CPU1的应用程序:
Step0:Xilinx Tools-->Repositories-->New //导入sdk_repo(重要,包必须正确)
Step1:File-->New-->Board Support Package //生成bsp
如下显示中出现:“standalone”,说明sdk_repo导入生效
在编译选项中增加:-g -DUSE_AMP=1 -DSTDOUT_REDIR=1
Step2:File-->New-->Application Project //生成cpu1的app程序
Step3:Next-->Empty Application
Step4:app_cpu1-->sr+右键-->Import //导入官方cpu1的app源文件
查看lscript.ld文件:512M外部DDR时的CPU1应用程序链接地址配置。
Step5:SDK自动生成可执行文件app_cpu1.elf
Step1:File-->New-->Application Project
Step2:点击Next-选中空的应用
Step3:softUart -->src右键-->Import:导入softUart.c文件
Step4:SDK自动生成可执行文件softUart.elf
使用SD卡启动系统时,需要如下的相应下载文件:
文件名 |
文件功能 |
来源 |
BOOT.bin |
由如下文件合并而成:
|
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
Step3:SDK -->xilinx-->launch shell //打开命令行界面,并用cd命令切换到bootgen目录
Step4:执行createBoot.bat即可生成BOOT.BIN文件
SD 卡启动是开发板系统启动方式的一种。SD 系统启动卡共有 FAT32、EXT4 两个格
式分区。其中 FAT32 格式分区在 Windows 系统下可见,EXT4 格式分区在 Windows 系统
下不可见,两分区在 Linux 系统下均可见。FAT32 格式分区存放 Bootloader、内核、设备
树、PL 端 bit 文件等,EXT4 格式分区存放文件系统。
开发板出厂时已经提供一个正常使用的 Linux SD 系统启动卡。以下步骤是 Linux SD
系统启动卡的制作过程。
详见《3-1-Linux SD系统启动卡制作方法.pdf》。
poke命令:向指定地址写入数值data
格式:poke data address
Peek命令:读取指定地址的内容
格式:peek address
(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》