ZYNQ_linux学习笔记(待整理)

  • ZYNQ=PL(FPGA)+PS(2*Cortex-A9 ARM内核)
  • 运行Linux的要求:有MMU(可以进行物理地址到虚拟地址的映射和翻译,Cortex-A9有MMU)
#查找win和Ubuntu的共享文件夹
cd /mnt/hgfs

#ls后白色的可执行文件代表我们没有执行权限,可以
chmod a+x 文件名
#之后变成绿色,有执行权

#每次打开新终端时会执行一个脚本,通过下面命令可以编辑该脚本,插入自己期望的命令
vi ~/.bashrc
  • petalinux设计流程
    在这里插入图片描述

1、在Windows平台创建工程,导出hdf文件
2、创建工程

	petalinux-create -t project --template zynq -n ALIENTEK-ZYNQ

3、将hdf导入工程(会自动弹出字符图形化配置界面,可以设置串口调试助手)

petalinux-config --get-hw-description ../hdf/Navigator_7020.sdk/

4、配置

petalinux-config -c u-boot //配置u-boot
petalinux-config -c kernel //配置内核
petalinux-config -c u-boot //配置根文件系统

5、编译工程
可以编译整个petalinux工程(包括U-boot、kernel、设备树、rootfs、fsbl、bit流)
也可以单独编译上述各项

petalinux-build//编译整个工程
petalinux-build-c kernel //编译内核

编译后在工程目录下的Linux文件夹中可见images文件夹,其中包含

  • zynq_fsbl.elf:ARM内核启动执行PS的代码,将FLASH,或者SD卡的第一阶段的bootloader拷贝到DDR3执行,完成FPGA配置(如果没有BIT流就不用配置),初始化MIO,初始化DDR3,初始化时钟,然后加载uboot到DDR3。
  • uboot.elf:第二阶段bootloader,负责将image.ub加载到DDR3。
  • Image.ub:petalinux的image,包括ramdisk,设备树等

5.1、制作启动镜像文件:boot.bin(多个镜像文件整合)
对于zynq:boot.bin = fsbl镜像文件+bitstream文件(不用PL就不需要)+用户程序镜像文件(SDK中的c代码)

petalinux-package --boot --fsbl --fpga --u-boot --force
--boot 生成启动镜像
--fsbl 用于指定fsbl镜像文件路径  zynq_fsbl.elf
--fpga 指定bitstream文件路径	system.bit
--u-boot 指定u-boot文件路径(用户程序镜像)u-boot.elf
--force 强制覆盖本路径下的生成文件

对于zynq启动嵌入式Linux需要image.ub(rootfs+kernel+设备树)和boot.bin (rootfs+fsbl+bit流)

5.2 制作SD启动卡
将镜像文件image.ub和boot.bin 拷贝到SD卡的FAT32分区,插入板载的TF卡槽

df -h //查看sd卡
umount /media/zynq/boot      //卸载sd卡  umount /挂载点
(1)创建个FAT分区
	sudo fdisk /dev/sdx  
(2)格式化
	sudo mkfs.vfat -F 32 -n boot /dev/sdb1
(3)拷贝image.ub和boot.bin
	cp -a image.ub boot.bin /media/zynq/boot
(4)同步、卸载
	sync 
	umount /media/zynq/boot

6、启动开发板
将SD卡插入卡槽,开启串口终端软件(MobaXterm)
完全启动后会进入Linux系统 打印Linux命令行
若板子没有正常启动进入Linux系统,而是停留在了U-boot阶段(打印显示zynq >)此时执行下列命令回复U-boot环境变量,在执行boot命令启动内核。

env default -a

默认的用户名和密码都是root

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43445577/article/details/113175799