petalinux-应用程序调试

petalinux-应用程序调试,第1张

$cd project-spec/meta-user/recipes-apps/vcu-qt/files

$mkdir develop

$cp vcu_qt.zip develop

$cd develop

$unzip vcu_qt.zip

$vi src/main.cpp    #在main()中增加一行qDebug("vcu-qt starting\n")保存退出

$rm vcu_qt.zip &&zip -r vcu_qt.zip *    #重新打包

$cp vcu_qt.zip ../

$petalinux-build -c vcu-qt        #回工程主目录进行编译

$cp build/tmp/deploy/rpm/aarch64/vcu-qt-1.0-r0.aarch64.rpm /tmp/    #拷贝到临时目录

$unpack.sh /tmp/vcu-qt-1.0-r0.aarch64.rpm    #解rpm包

$cat unpack.sh

#!/bin/bash

# unrpm.sh :解包一个rpm归档文件

# Usage: `basename $0` target-file

TEMPFILE=$$.cpio  ##TEMPFILE必须是一个唯一的名字,$$是这个脚本的进程ID

file=$1

E_NOFILE=71

E_NORPM=72

if [ ! -f "$file" ]then

        echo "Should use a existing file"

        exit $E_NOFILE

fi

res=`file "$file" | grep -o "rpm"`

if [ -z "$res" ]then

        echo "Should use a rpm file"

        exit $E_NORPM

fi

rpm2cpio <$file >$TEMPFILE

cpio --make-directories -F $TEMPFILE -i

rm -f $TEMPFILE

exit 0

用户可轻松将这款高稳健 *** 作系统安装到目标FPGA平台上,以供嵌入式设计项目使用。

从最初不起眼的胶合逻辑开始,FPGA已经历了漫长的发展道路。当前FPGA的逻辑容量和灵活性已将其带入了嵌入式设计的中心位置。目前,在单个可编程芯片上可实现一个完整系统,这种架构有助于软硬件的协同设计,并能将软硬件应用进行集成。

这些基于FPGA的嵌入式设计种类需要稳健的 *** 作系统。PetaLinux应运而生,已成为众多嵌入式设计人员青睐的对象。它以开源免费的方式提供,支持包括赛灵思MicroBlaze®

CPU和ARM®处理器在内的多种处理器架构。要将PetaLinux移植到特定的FPGA上,必须针对目标平台定制、配置和构建内核源代码、引导载入程序、器件树和根文件系统。

对于PES大学和C-DOT的一个设计项目而言,我们的研发团队准备移植PetaLinux并在采用Kintex®-7 XC7K325T FPGA的赛灵思KC705评估板上运行多个PetaLinux用户应用。结果证明整个过程相当便捷。

选择PetaLinux的原因

在详细介绍具体做法之前,有必要花点时间来探讨针对基于FPGA的嵌入式系统提供的 *** 作系统选项。PetaLinux是FPGA上最常用的 *** 作系统,另外还有μClinux

和Xilkernel。μClinux为Linux发行版,是一款包含小型Linux内核的移植型Linux *** 作系统,适用于无存储器管理单元(MMU)的处理器[1]。μClinux配备有各种库、应用和工具链。Xilkernel就其本身而言,是一款小型、高稳健性、模块化内核,能够提供高于μClinux

的定制性能,有助于用户通过定制内核来优化其设计尺寸与功能[2]。

同时,PetaLinux也是一款完整的Linux发行版及开发环境,适用于基于FPGA的片上系统(SoC)设计。PetaLinux包含预配置二进制可引导映像、面向赛灵思器件的完全可定制Linux

以及配套提供的PetaLinux软件开发套件(SDK)[3]。其中SDK包括用于自动完成配置、构建和部署过程中各种复杂工作的工具和实用程序。赛灵思提供可免费下载的PetaLinux开发包,其中包括针对各种赛灵思FGPA开发套件而设计的硬件参考项目。同时包含在内的还有适用于赛灵思FPGA的内核配置实用程序、交叉编译器等软件工具、硬件设计创建工具以及大量其它设计辅助功能。

据报道,Xilkernel 的性能优于μClinux[4],而PetaLinux的性能又优于Xilkernel

[5]。由于这个原因,特别是由于已针对我们赛灵思目标板提供的软件包原因,我们为我们的项目选择了PetaLinux。移植PetaLinux的另一大优势是用户可以轻松实现远程编程。这就意味着用户可使用远程接入方式,通过远程登录,采用新的配置文件(或比特流文件)加载FPGA目标板。

有两种方法可以创建用于构建PetaLinux系统的软件平台:在Linux终端上使用PetaLinux命令或通过下拉菜单使用GUI。

开始安装

下面详细介绍我们项目团队安装PetaLinux的方法。第一步,我们下载了PetaLinux软件包12.12版以及用于Kintex-7目标板的电路板支持包(BSP)。然后运行了PetaLinux

SDK安装程序,并在控制台上使用下列命令把SDK安装到了/opt/Petalinux-v12.12-final目录下:

@ cd /opt

@ cd /opt/PetaLinux -v12.12-final-full.tar.gz

@ tar zxf PetaLinux-v12.12-final-full.tar.gz

随后,我们把从赛灵思网站获得的PetaLinux SDK许可证复制并拷贝到.xilinx和.Petalogix文件夹中。接下来,我们使用下列命令获取适当设置,设置了SDK的工作环境:

@ cd /opt/PetaLinux-v12.12-final

@ source settings.sh

为验证工作环境是否设置正确,我们使用了以下命令:

@ echo $PETALINUX

如果环境设置正确,将显示PetaLinux的安装路径。在本案例中,PetaLinux的安装路径是 /opt/PetaLinux-v12.12-final。

如果想在FSBL里面加载bitstream的话,必须关闭FPGA Manager!

GPIO *** 作,MIO从0-53,EMIO从54开始

petalinux-build -c fsbl

petalinux-build -c u-boot

petalinux-package --boot --u-boot --format BIN

然后把BOOT.BIN写入到SD卡中即可启动U-Boot

这里就使用网线直连的方式来启动,也可以使用dhcp命令来自动获取ip

记得saveenv,然后ping一下之前的NFS服务器ip,就可以使用了

bdinfo查看到DRAM bank

petalinux-build -c device-tree

petalinux-build -c kernel

nfs 800000 192.168.123.196:/home/imcort/Documents/nfs/zImage

nfs 0 192.168.123.196:/home/imcort/Documents/nfs/system.dtb

bootz 800000 - 0

u-boot只需要保留最基本的设备驱动即可

setenv bootcmd 'dhcpnfs 800000 192.168.123.196:/home/imcort/Documents/nfs/zImagenfs 0 192.168.123.196:/home/imcort/Documents/nfs/system.dtbbootz 800000 - 0'

saveenv


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12162426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存