电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1615|回复: 0
收起左侧

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

[复制链接]

678

主题

902

帖子

8293

积分

高级会员

Rank: 5Rank: 5

积分
8293
发表于 2020-8-24 15:49:35 | 显示全部楼层 |阅读模式
开发环境说明
表 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
加载运行裸机程序
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

嵌入式DSP、ARM、FPGA多核技术开发,学习资料下载:http://site.tronlong.com/pfdownload
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表