- 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