我的环境是Windows10+WSL2+Petalinux,不想搞一套Ubuntu的独立系统。关于如何搭建,可以参考我的另外一个笔记。

在windows开始菜单右边的搜索框里输入ubuntu或wsl,或者powershell里面输入bash,根据自己喜好选择

Petalinux学习笔记一(流程)

1,创建工程

先source petalinux的设置脚本

$source /opt/Xilinx/p201/settings.sh

以模板创建空工程,或者以BSP来创建工程。我这里用Xilinx ZCU104开发板,用104的BSP建工程。详细见UG1157

Petalinux学习笔记一(流程)

$petalinux-create -t project -s /opt/xilinx/p201/bsp/z104.bsp

  1. 导入硬件XSA文件,2019.1以前是HDF文件,配置一下uart,sd,ethernet

$petalinux-config –get-hw-description=../

Petalinux学习笔记一(流程)

Petalinux学习笔记一(流程)

默认以太网是打开dhcp client的,如果没有,建议打开,每退出一层菜单,需要连续按两次ESC键,配置完,退出最后菜单时候,提示保存配置,选YES

配置rootfs,这里我们把python选上

$petalinux-config -c rootfs

Petalinux学习笔记一(流程)

配置内核

记得提前打开Xlaunch,因为配置内核的时候会调用gnome-terminal打开窗口

$petalinux-config -c kernel

$petalinux-build

Petalinux学习笔记一(流程)

由于用的是BSP创建工程,我们早期修改安装目录的petalinuxbsp.conf里面的DL_DIR,SSTATE_DIR不会被传递过来,这个国内网络有时可能要个把小时不止,马上终止掉,修改本工程目录下的petalinuxbsp.conf

Petalinux学习笔记一(流程)

重新再来,发现快多了!重点检查一下网络接口配置,默认是选上的。

Petalinux学习笔记一(流程)

Build工程

       可以发现,WSL2用全了主机的线程,我的计算机是4核8线程的APU.

$petalinux-build

Petalinux学习笔记一(流程)

5, 下载上板测试

由于WSL2目前还不支持串口,USB,所以没法直接通过JTAG下载,如果你是跑的VM或者实体ubuntu,那可以用如下命令下载UBOOT或KERNEL

       $peatlinux-boot –jtag –uboot  

       $petalinux-boot –jtag –kernel

6,打包boot.bin

       所有生成的最终文件都在images/linux目录下,工具也会自动拷贝一份到/tftpboot下

$petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --pmufw images/linux/pmufw.elf  --fpga images/linux/system.bit  --u-boot 

UG1157关于package有如下例子:

Petalinux学习笔记一(流程)

Petalinux学习笔记一(流程)

可以看到,我们package了fsbl,pmufw,bl131,dtb,u-boot,当然也可以加—kernel把内核也打包进来。

7,分区SD卡

       用Windows10自带磁盘管理比较难实现ubuntu里面的fdisk功能,但是Windows还带有命令行的分区工具diskpart,运行它。

Petalinux学习笔记一(流程)

输入help可以查看有哪些命令可用

Petalinux学习笔记一(流程)

先list一下磁盘,我这里SD卡是磁盘6,大家一定要小心,选错盘,数据丢了是很难找回来的啊!先把SD分区全清掉

Petalinux学习笔记一(流程)

创建2个主分区,一个4GB,一个32GB

Petalinux学习笔记一(流程)

**分区一

Petalinux学习笔记一(流程)

退出diskpart, 格式化,Petalinux需要boot分区是FAT32格式

Petalinux学习笔记一(流程)

把刚才生成的BOOT.BIN文件跟image.ub拷贝到SD卡,插卡到板上,设置好ZCU104的配置开关为SD启动,打开Hyperterminal,设置好串口

Petalinux学习笔记一(流程)

U-BOOT起来后,网络正常的话,那以后调试就很方便了。

打开TFTP软件,这个软件是可以开DHCP SERVER服务的,都设置好。

Petalinux学习笔记一(流程)

Petalinux学习笔记一(流程)

bootp image.ub 从tftpboot目录传内核文件到内存,bootp会自动去获取ip地址

Petalinux学习笔记一(流程)

 

Petalinux学习笔记一(流程)

在超级终端上,输入bootm,从内存启动(刚才load进来的image.ub)。关于uboot的命令,可以自行网络搜索一下。

       如果要更新SD卡的BOOT.BIN文件,也可以在UBOOT下操作,先通过TFTP获取BOOT.BIN文件,记得要先把BOOT.BIN拷贝到tftpboot目录。

tftpboot BOOT.BIN    或  bootp BOOT.BIN

记住tftp最开始会显示拷贝到内存的地址,比如0x8000000,结束的时候会显示文件长度,比如98105462 (5D8 F876 HEX)

       输入命令,把BOOT.BIN写入SD卡分区1

       fatwrite mmc  0  0x8000000  BOOT.BIN   0x5D8F876

       成功后会显示写入长度(十进制)

相关文章:

  • 2021-12-23
  • 2021-11-03
  • 2021-10-27
  • 2021-09-15
  • 2021-08-22
  • 2021-08-02
  • 2022-01-24
  • 2021-06-26
猜你喜欢
  • 2021-06-20
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2022-12-23
  • 2021-11-23
  • 2021-04-19
相关资源
相似解决方案