petalinux开发手册

294次阅读
没有评论

SOC简介

来源:https://www.amd.com/zh-cn/products/adaptive-socs-and-fpgas/soc.html

SOC:System On Chip,也称为All Programmable SOC,称为全可编程片上系统。

petalinux开发手册

Xilinx的SOC有4个系列:

  • ZYNQ-7000,此系列是Xilinx于2015年发布的第一代SOC架构的芯片,也是世界上首个SOC芯片系列
  • ZYNQ UltraScale+ MPSoC,性能强劲
  • ZYNQ UltraScale+ RDSoC,性能强劲
  • Versal ACAP,Xilinx最新发布的芯片,性能也最强

SOC内部集成了单/多个ARM处理器核心与1个FPGA,将软件可编程的硬核处理器与硬件可编程的FPGA集成在一个芯片中。软硬件均可编程也是SOC被称为全可编程片上系统的原因。

SOC中的ARM处理器被称为PS(Processing System,处理系统),而FPGA被称为PL(Progarmmable Logic,可编程逻辑)。SOC = PS + PL,其中,PS为主,与单独的ARM芯片(如ST公司的STM32系列)一样,PS配备了多个外设,如串口,CAN口,GPIO等,PL部分可以看做是PS的一个”可编程外设”。

petalinux

PetaLinux 是由赛灵思(Xilinx,现为AMD旗下)开发的嵌入式Linux开发工具套件,专为其FPGA和SoC(如Zynq、Zynq UltraScale+、MicroBlaze等)设计,用于快速构建、定制和部署嵌入式Linux系统。以下是其核心特点和应用场景:

1、主要功能

  • 自动化构建:基于Yocto Project,提供预配置的模板和脚本,简化Linux系统的交叉编译、根文件系统生成和镜像打包。
  • 硬件适配:自动集成Xilinx硬件设计(如Vivado导出的XSA文件),生成匹配的Linux内核、设备树和驱动。
  • 定制化支持:可定制U-Boot、Linux内核、设备树、根文件系统(支持BusyBox或第三方如Buildroot)。
  • 工具链集成:包含交叉编译工具链(如ARM架构的GCC)、调试工具(如GDB)及性能分析工具。

2、核心组件

  • U-Boot:引导加载程序,支持硬件初始化。
  • Linux内核:预配置Xilinx内核,含专用驱动(如PL端IP核驱动)。
  • 设备树(DTS):自动生成硬件描述文件,简化外设配置。
  • 根文件系统:支持EXT4、RAMFS等格式,可添加用户态软件包。

编译环境搭建

安装必要的软件

sudo apt-get install -y tofrodos iproute2 gawk gcc g++ git make net-tools libncurses5-dev \
tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat \
xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential \
libsdl1.2-dev libglib2.0-dev screen pax gzip automake

配置

Petalinux 工具需要主机系统的/bin/sh是 bash,而 ubuntu 默认的/bin/sh 是 dash

输入:sudo dpkg-reconfigure dash ,然后选择<No>

petalinux开发手册

执行安装指令

#2018版本以后的 ,–dir 后替换为自己的目录
./petalinux-v2020.3-final-installer.run –dir /demo_path/petalinux/2020.3
#2018版本以前的,替换为自己的目录
./petalinux-v2018.3-final-installer.run /demo_path/petalinux/2018.3

运行上述命令后,需要等待一段时间,当出现“Press Enter to display the license agreements”字样的时候,如下图所示

petalinux开发手册

从显示的意思可以知道,让我们按下回车键显示软件许可协议,那就按下呗。

petalinux开发手册

这些内容如果你感兴趣可以看看,此处我们就不详细看了,直接按下 Q 键退出,回到之
前的界面之后会出现一个选择项,询问我们是否接受 xilinx 最终用户协议。

petalinux开发手册

这个显然是没得选,必须接受,否则无法进行下面的安装;输入 Y 按回车接受。除了xilinx 最终用户协议之外,还有两个协议也需要大家接受,会依次显示在终端上,同理也是输入 Y 按下回车接受。
接受所有协议之后便会进行下面的安装步骤了,直到安装完成

petalinux指令解析

项目创建与初始化

  • petalinux-create
    创建 PetaLinux 项目或组件:
    • petalinux-create -t project --template <TYPE> --name <NAME>
      创建项目(TYPE 可选 zynqzynqMPversal 等)。
    • petalinux-create -t component --name <NAME>
      创建自定义组件(如驱动、应用)。
  • petalinux-init
    初始化 PetaLinux 环境(通常已集成在 petalinux-create 中)。

项目配置

  • petalinux-config
    启动顶层项目配置菜单(基于 Kconfig):
    • petalinux-config:配置系统参数(如内核、根文件系统、设备树)。
    • petalinux-config -c kernel:配置 Linux 内核。
    • petalinux-config -c rootfs:配置根文件系统(添加/删除软件包)。
  • petalinux-config --get-hw-description <PATH>
    从 Vivado 导出的硬件描述文件(.xsa 或 .hdf)加载硬件配置。

构建系统

  • petalinux-build
    编译整个项目(内核、设备树、根文件系统、U-Boot 等)。
    • petalinux-build -c <COMPONENT>:单独编译某个组件(如 -c kernel)。
    • petalinux-build clean:清理构建输出。

生成镜像

  • petalinux-package
    打包生成可部署的镜像文件:
    • petalinux-package --boot --fsbl <FSBL.elf> --fpga <FPGA.bit> --u-boot
      生成 BOOT.BIN(包含 FSBL、FPGA 比特流、U-Boot)。
    • petalinux-package --prebuilt:打包预构建的镜像。
    • petalinux-package --sysroot:生成 SDK 所需的 sysroot。

提取和修改源码

  • petalinux-devtool
    设备树和内核模块开发工具:
    • petalinux-devtool modify dtg:编辑设备树生成器(DTG)模板。
    • petalinux-devtool modify kernel:修改内核源码。

调试与运行

  • petalinux-boot
    通过 QEMU 或硬件启动系统:
    • petalinux-boot --qemu --kernel:在 QEMU 中启动内核。
    • petalinux-boot --jtag --kernel:通过 JTAG 启动。
  • petalinux-util
    实用工具(如串口终端、Flash 编程)。

SDK 生成

  • petalinux-build --sdk
    生成 SDK(用于交叉编译应用或驱动)。
  • petalinux-package --sysroot
    导出 sysroot 供外部开发使用。

其他常用命令

  • petalinux-info
    显示当前项目的配置信息(如硬件平台、版本)。
  • petalinux-upgrade
    升级项目到新版本的 PetaLinux。
  • petalinux-install
    安装工具链或依赖包(较少手动使用)。

工程创建

petalinux-create --type <TYPE> --template <PLATFORM> --name <PROJECT_NAME>

参数说明

  • <TYPE>
    项目类型(可选):
    project | apps | modules
  • <PLATFORM>
    开发平台(可选):
    • versal(Versal ACAP)
    • zynqMP(Zynq UltraScale+ MPSoC)
    • zynq(Zynq-7000 设备)
    • microblaze(MicroBlaze 处理器)
  • <PROJECT_NAME>
    自定义工程名称

示例

# 创建 Zynq-7000 项目
petalinux-create --type project --template zynq --name zynq_project
# 创建 Zynq UltraScale+ 项目
petalinux-create --type project --template zynqMP --name zynqMP_project

工程配置

配置导入

2019 年前的petalinux版本使用system.hdf 文件,而以后的版本使用system.xsa 文件。.hdf和.xsa由逻辑通过vivado配置生成。

petalinux-config --get-hw-description=soc_top.xsa

正文完
 0
评论(没有评论)
验证码