TLZ7x-EasyEVM开发板XC7Z020基于SD卡启动裸机程序

网友投稿 624 2022-05-29

开发环境说明

表 1

开发板型号

是否支持本实验

TLZ7x-EasyEVM

支持

TLZ7xH-EVM

支持

本文以TLZ7x-EasyEVM开发板为例,核心板SoC芯片型号为XC7Z020,演示使用SD卡启动Zynq裸机程序的方法。

基于SD卡启动的裸机程序主要包含两类,一是ARM(PS端)+FPGA(PL端)的All-Programmable-SoC-demos例程,二是纯PS(不依赖PL端)的Baremetal(NoOS)裸机例程。两类裸机程序的运行都需要依赖FSBL的BOOT.BIN文件和U-Boot的u-boot.bin文件引导,主要区别在于Baremetal(NoOS)裸机例程不包含PL端xxx.bin程序。

从SD卡启动SoC裸机程序说明

分别参照《基于TcL脚本生成Vivado工程及编译》、《基于TcL脚本生成xsdk工程及编译》文档,编译All-Programmable-SoC-demos例程。

将SD存储卡格式化为FAT32格式,或者直接使用SD系统启动卡的boot分区,SD系统启动卡boot分区即为FAT32格式。将PS端的xxx.elf程序和PL端xxx.bin程序复制到SD卡,另外将BOOT.BIN和u-boot.bin两个文件也添加复制到SD卡。

以光盘"All-Programmable-SoC-demos\tl-axi-gpio-led-demo"例程为例,PS端程序为"tl-axi-gpio-led-demo\sw\axi_gpio_baremetal_demo\bin\axi_gpio.elf",PL端程序为"tl-axi-gpio-led-demo\hw\bin\axi_gpio_xc7z020.bin"。

表 2

对应文件名

职责说明

FSBL\image\embeddedsw-[Git系列号]-[版本号\BOOT.BIN

初始化DDR等外设,加载U-Boot镜像文件

U-Boot\U-Boot-2017.01\image\u-boot.bin

加载运行裸机程序

TLZ7x-EasyEVM开发板XC7Z020基于SD卡启动裸机程序

xxx.elf

PS端裸机程序

xxx.bin

PL端程序,SoC例程依赖此文件

图 1

设置u-boot环境变量

将开发板拨码开关拨到101001(1~6),此模式为SD卡启动模式。开发板上电启动,快速按任意键进入U-Boot命令行修改环境变量。

图 2

在U-Boot命令行下执行如下指令,设置需要加载的PL端xxx.bin程序,PL端程序名应根据实际情况修改,如果是Baremetal(NoOS)例程则无需执行此命令。

Uboot# setenv bitstream_image axi_gpio_xc7z020.bin

执行如下指令,设置需要加载的PS端xxx.elf程序,PS端程序名应根据实际情况修改。

Uboot# setenv app_image axi_gpio.elf

执行如下指令设置启动方式为appboot,并保存设置好的环境变量。

Uboot# setenv sdboot 'run appboot'

Uboot# saveenv

图 3

从SD卡启动裸机程序

开发板断电,重新上电启动后,调试终端打印信息如下图所示。打印"## Starting application at 0x00100000 ..."信息后,开发板开始运行裸机程序。本次操作运行的是tl-axi-gpio-led-demo的裸机程序,运行程序后会打印"AXI GPIO TEST",并且可以看到底板的LED2在闪烁。

图 4

恢复U-Boot环境变量

经过前面步骤修改过环境变量后,U-Boot启动时将会读取相应的裸机程序。如需正常启动Linux系统,在U-Boot命令行下执行如下指令恢复默认的环境变量。

Uboot# env default -a

Uboot# saveenv

图 5

硬件开发

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:“民生信用卡-华为大数据联合创新实验室”荣获亚洲银行家“中国最佳AI创新实验室”奖
下一篇:跨平台移动APP开发进阶(四)AngularJS简介
相关文章