取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
Highlighted
Observer
Observer
712 次查看
注册日期: ‎09-18-2018

ZCU102 Petalinux

跳至解决方案

       我想在zcu102上借助petalinux运行我的设计。按照UG1144,我下载zcu102 BSPfile,这里遇到了第一个问题:ug显示有两种zcu102的BSP file(图1),我应该如何判断哪种是我需要的?我最终下载了Production Silicon。

       接着我利用BSPfile创建了project,并读入了hdf进行了config,使用了默认配置。在进行build时,do-deploy环节遇到了错误,petalinux-build中断(图2/3)。

       Build的目的是产生device tree、fsbl等镜像,那么我是否可以直接利用BSP/pre-built目录下的镜像加上我设计的bitsteam来package生成BOOT.bin和image.ub呢?于是我使用如下命令来做package。

         petalinux-package --boot --fpga ../imp_output/zynq_wrapper.bit

                                       --fsbl pre-built/linux/images/zynqmp_fsbl.elf

                                       --pmufw pre-built/linux/images/pmufw.elf

                                       --u-boot pre-built/linux/images/u-boot.elf

                                       --atf pre-built/linux/images/bl31.elf

                                       --cpu a53-0

        上述package命令运行后,产生了warning,图4,似乎是没有用上cpu。我的vivado工程中使用了zynq_ultra_ps_e IP,我应该如何指明具体使用哪个CPU?

        忽略了上述warning,我把BOOT和image下载到SD卡,启动了板子,linux系统运行了。我想在板子上运行一个C编译的elf文件,我使用./test.elf命令,显示-sh No such file or directory,图5。我之前用zc702时,链接好动态编译库后即可运行elf文件,这次我同样链接了动态编译库。

 

        我总结下我的问题:问题1:zcu102的BSP file应该如何选择?

                                      问题2:我是否可以直接利用BSP/pre-built目录下的镜像加上我设计的bitsteam来package生成BOOT.bin和image.ub?如果可以,那这种方式对bitstream有何要求?

                                     问题3:我上述package时的warning如何解决?

                                     问题4:为什么在板子上的linux系统下无法执行elf文件?

 

          问题比较多,麻烦各位帮忙解决下,谢谢!

 

标记 (1)
bsp.png
do-deploy.png
do-deploy2.png
package.png
sh.png
0 项奖励
1 解答

已接受的解答
Highlighted
Moderator
Moderator
695 次查看
注册日期: ‎05-23-2018

Hi, @chaoyangzhu 


问题1:zcu102的BSP file应该如何选择?

es版本指的是Engineering Sample,需要特定的license才可以使用。正常下载production silicon版本即可。


问题2:我是否可以直接利用BSP/pre-built目录下的镜像加上我设计的bitsteam来package生成BOOT.bin和image.ub?如果可以,那这种方式对bitstream有何要求?


可以使用这种方式。


问题3:我上述package时的warning如何解决?


第一个warning是bootgen从2016.4到2017.1版本时做出的改变,消除该warning可以参考以下代码。

deprecated usage:
the_ROM_image: 
{
[fsbl_config] a53_x64
[bootloader] fsbl.elf
[destination_cpu=a53-0] hello.elf
}
new usage:
the_ROM_image: 
{
[bootloader,destination_cpu=a53-0] fsbl.elf
[destination_cpu=a53-0] hello.elf
}

第二个warning是远程boot所报warning,如果您的镜像是从开发板直接启动,该warning可以忽略。


问题4:为什么在板子上的linux系统下无法执行elf文件?


最后一个问题请再确认一下相关目录下文件是否存在并且是否是可执行的。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------

在原帖中查看解决方案

3 回复数
Highlighted
Moderator
Moderator
696 次查看
注册日期: ‎05-23-2018

Hi, @chaoyangzhu 


问题1:zcu102的BSP file应该如何选择?

es版本指的是Engineering Sample,需要特定的license才可以使用。正常下载production silicon版本即可。


问题2:我是否可以直接利用BSP/pre-built目录下的镜像加上我设计的bitsteam来package生成BOOT.bin和image.ub?如果可以,那这种方式对bitstream有何要求?


可以使用这种方式。


问题3:我上述package时的warning如何解决?


第一个warning是bootgen从2016.4到2017.1版本时做出的改变,消除该warning可以参考以下代码。

deprecated usage:
the_ROM_image: 
{
[fsbl_config] a53_x64
[bootloader] fsbl.elf
[destination_cpu=a53-0] hello.elf
}
new usage:
the_ROM_image: 
{
[bootloader,destination_cpu=a53-0] fsbl.elf
[destination_cpu=a53-0] hello.elf
}

第二个warning是远程boot所报warning,如果您的镜像是从开发板直接启动,该warning可以忽略。


问题4:为什么在板子上的linux系统下无法执行elf文件?


最后一个问题请再确认一下相关目录下文件是否存在并且是否是可执行的。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------

在原帖中查看解决方案

Highlighted
Observer
Observer
678 次查看
注册日期: ‎09-18-2018

谢谢你的回答。

关于你提到的第三个问题的解决方案,我在petalinux工程目录下搜索了bootgen,发现在/build目录下有一个bootgen.bif文件,该文件内代码如图。你的意思是修改bootgen.bif文件内的代码吗?我尝试着修改了bootgen.bif文件内的代码,但是运行petalinux-package命令后,代码又还原了。你能否进一步帮助我?

我使用SD卡启动,按你所说第二个package warning应该是和ftp启动有关,我可以忽略。

关于第四个问题,我确认目录下有我想要执行的文件,并且权限也是可执行的。

bootgen1.png
0 项奖励
Highlighted
Observer
Observer
666 次查看
注册日期: ‎09-18-2018

问题四解决了,是编译的动态链接库的问题。

我在编译c可执行文件是使用类似arm-none-linux-gnueabi-gcc –o test test.c,这里程序是以动态链接方式编译的。放到板子上后,内核里的链接库路径不同, 导致产生错误找不到可执行文件。

我该用静态编译后arm-none-linux-gnueabi-gcc –o test test.c -static,板子上可以运行test可执行文件了。

0 项奖励