petalinux-create:此命令创建新的PetaLinux项目或组件。
注:有些命令我没用过,瞎翻译有可能会翻译错了,像是和fpgamanager相关的部分。
用法:
petalinux-create [options] <-t|--type <TYPE> <-n|--name <COMPONENT_NAME>
必须参数:
-t, --type <TYPE>
可选类型:
* project : PetaLinux项目
* apps : Linux用户程序
* modules : Linux用户模块
-n, --name <COMPONENT_NAME>
为组件或项目指定名称。【对创建项目而言,该选项不一定需要提供】,如果在创建项目时指定了源BSP,则不需要指定名称。
可选参数:
-p, --project <PROJECT>
指定PetaLinux项目的完整路径。此选项【不适用于项目创建】。默认值是当前的Shell工作路径。
--force
强制覆盖现有组件目录。
-h, --help
显示函数用法。
--enable
此选项适用于【除项目之外】的所有类型。启用创建的组件
--static-pn
此选项用于指定使用fpgamanager_dtg创建的包名,以便在fpgamanager_dtg_dfx中使用。注意:这仅支持versal和zynqmp。
--srcuri
此选项用于指定来自项目外部的源文件。这将把指定的文件复制到配方文件目录中,并添加到.bb文件中的SRC_URI变量中。指定多个带空格的文件。
--tmpdir
用于创建项目时,将一个本地驱动器路径指定为TMPDIR位置。
默认情况下TMPDIR不能在NFS下。默认情况下,当项目在NFS上时,petalinux将在/tmp下设置TMPDIR。您可以使用--tmpdir选项将自己的本地驱动器设置为TMPDIR PATH。
用于创建项目的可选参数:
--template <TEMPLATE>
versal-net|versal|zynqMP|zynq|microblaze
用户需要选用上述枚举指定项目模板。
-s|--source <SOURCE>
指定一个PetaLinux BSP作为项目源。
用于创建用户程序可选参数:
--template <TEMPLATE>
<c|c++|autoconf|install>
c: C语言程序(默认)
c++: C++程序
autoconf: autoconf程序
install: 仅安装数据
fpgamanager: 将.dtbo、.bin、shell.json和.xclbin文件打包到rootfs中,支持versal、zyntmp和zynq。
fpgamanger_dtg: 提取.xsa文件并将.dtbo、.bin/.pdi、shell.json和.xclbin文件打包到rootfs中,支持versal、zyntmp和zynq。
fpgamanager_dtg_dfx: 提取DFX部分的.xsa文件,并将.dtbo、.bin/.pdi和shell.json文件打包到根目录中。仅支持versal和zynqmp。
fpgamanager_dtg_csoc: 提取经典soc部分的.xsa文件,并将.dtbo、.bin/.pdi和shell.json文件打包到根目录中。仅支持versal。
-s, --source <SOURCE>
有效的源名称格式:
*.tar.gz, *.tgz, *.tar.bz2, *.tar,
*.zip, app source directory
用于创建模块的可选参数:
(无)
创建项目的例子:
使用一个PetaLinux的BSP包创建项目:
$ petalinux-create -t project -s <PATH_TO_PETALINUX_PROJECT_BSP>
使用PetaLinux的BSP包创建项目并指定TMPDIR路径:
$ petalinux-create -t project -s <PATH_TO_PETALINUX_PROJECT_BSP> --tmpdir <TMPDIR PATH>
使用模板创建项目并指定TMPDIR路径:
$ petalinux-create -t project -n <PROJECT> --template <TEMPLATE> --tmpdir <TMPDIR PATH>
使用模板创建项目:
对于microblaze项目,
$ petalinux-create -t project -n <PROJECT> --template microblaze
对于zynq项目,
$ petalinux-create -t project -n <PROJECT> --template zynq
对于zynqMP项目,
$ petalinux-create -t project -n <PROJECT> --template zynqMP
对于versal项目,
$ petalinux-create -t project -n <PROJECT> --template versal
对于versal-net项目,
$ petalinux-create -t project -n <PROJECT> --template versal-net
创建应用程序的例子:
创建并启用应用程序:
$ petalinux-create -t apps -n myapp --enable
名为"myapp"的应用将使用C语言程序模板创建在以下路径:
<PROJECT>/project-spec/meta-user/recipes-apps/myapp
使用远程源创建应用程序:
$ petalinux-create -t apps -n myapp --enable --srcuri http://example.tar.gz
$ petalinux-create -t apps -n myapp --enable --srcuri git://example.git\;protocol=https
$ petalinux-create -t apps -n myapp --enable --srcuri https://example.tar.gz
创建一个FPGA管理器应用程序,将.dtsi和.bit安装到根目录的(/lib/formance/xlinx)中:
$ petalinux-create -t apps --template fpgamanager -n gpio --enable
将创建一个名为 "gpio" 的应用程序,它使用了 fpgamanager_custom 类来构建 .dtbo、.bin 和 shell.json 文件,这些文件将被安装到目标设备上。
使用本地源文件创建应用程序:
$ petalinux-create -t apps --template fpgamanager -n gpio --enable --srcuri "<path>/pl.dtsi <path>/system.bit <path>/shell.json"
这将创建一个名为 "gpio" 的应用程序,并将 pl.dtsi、system.bit 和 shell.json 文件添加到 SRC_URI 变量中,并且这些文件会被复制到 files 目录下。
创建一个FPGAmanager_dtg应用程序来提取xsa,并将.dtsi和.bit文件安装到根目录下的(/lib/formance/xlinx)中:
$ petalinux-create -t apps --template fpgamanager_dtg -n gpio --enable --srcuri "<path>/gpio.xsa <path>/shell.json"
这将创建一个名为 "gpio" 的应用程序,该应用程序使用fpgamanager_dtg 类创建,并且将 gpio.xsa 和 shell.json 文件添加到 SRC_URI 变量中,随后这些文件会被复制到 files 目录下。
创建一个FPGAmanager_tg_dfx应用程序来提取xsa,并将.dtsi和.pdi安装到根目录的(/lib/formance/xlinx)中:
要创建fpgamanager_dtg_dfx,我们应该使用以下命令使用fpgamanager_dtg模板创建STATIC应用程序:
$ petalinux-create -t apps --template fpgamanager_dtg -n static-app --enable --srcuri "<path>/static.xsa <path>/shell.json"
使用fpgamanager_dtg_dfx创建RP/RM应用程序:
$ petalinux-create -t apps --template fpgamanager_dtg_dfx -n rprm-app --enable --srcuri "<path>/rprm.xsa <path>/shell.json" --static-pn "static-app"
上述命令将使用fpgamanager_dtg_dfx类创建"rprm app"应用程序,"static-app"将作为依赖项添加到"rprm apps"中。
创建一个FPGAmanager_dtg_csoc应用程序来提取xsa并将.dtsi和.pdi安装到根目录下的(/lib/formance/xlinx)中
使用fpgamanager_dtg_csoc创建RP/RM应用程序:
$ petalinux-create -t apps --template fpgamanager_dtg_csoc -n rprm-app --enable --srcuri "<path>/rprm.xsa <path>/shell.json"
上述命令将使用fpgamanager_dtg_csoc类创建"rprm app"应用程序。csoc应用程序将使用基本xsa作为静态xsa来生成rprm dtbo文件。
创建模块的例子:
创建一个模块并启用它:
$ petalinux-create -t modules -n mymodule --enable
名为"mymodule"的模块将被使用下述路径的模板创建:
<PROJECT>/project-spec/meta-user/recipes-modules/mymodule
使用源创建模块:
$ petalinux-create -t modules -n mymodule --enable --srcuri "<path>/mymoudle.c <path>/Makefile"