找回密码
 注册
关于网站域名变更的通知
查看: 250|回复: 1
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    奋斗
    2020-3-25 15:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-8-24 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    开发环境说明
    4 N5 h; C' I, ^3 X. \表 1
    9 F& r! ]2 Q* @; K! \
    开发板型号
    0 P' Q. R3 `2 p# `- h# b/ ]6 O
    是否支持本实验
    - @5 O, ~4 ~7 [# U, m! }9 e7 m
    TLZ7x-EasyEVM- L0 F$ p% {. O4 H" u  I8 s! C! @1 a
    支持
    4 y, J, R4 \' W
    TLZ7xH-EVM
    2 R3 @, _8 Y* \$ ^/ a
    支持
    6 d6 M" j! t; U  f

    ( J  K" `1 }+ n# X0 o本文以TLZ7x-EasyEVM开发板为例,核心板SoC芯片型号为XC7Z020,演示使用SD卡启动Zynq裸机程序的方法。5 P$ R1 g4 h; W& v0 g9 e% S6 V; a3 D
    基于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程序。
    4 }* p9 Y/ [6 P) O3 H 从SD卡启动SoC裸机程序说明分别参照《基于TcL脚本生成Vivado工程及编译》、《基于TcL脚本生成xsdk工程及编译》文档,编译All-Programmable-SoC-demos例程。& [! ?* `, a$ ]9 h7 P$ p  q
    将SD存储卡格式化为FAT32格式,或者直接使用SD系统启动卡的boot分区,SD系统启动卡boot分区即为FAT32格式。将PS端的xxx.elf程序和PL端xxx.bin程序复制到SD卡,另外将BOOT.BIN和u-boot.bin两个文件也添加复制到SD卡。
    : d. r0 a) p% T8 |以光盘"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"。- {3 z4 y: M% ?: ]& [( I8 ^) [
    1 a' E& m0 k/ G  {8 K
    表 2, _8 n: N6 j) X3 r/ _- D
    对应文件名
    $ V- x8 P$ B* U5 C  m; F! W2 p+ i
    职责说明
    4 M2 u* T5 V4 q, w
    FSBL\image\embeddedsw-[Git系列号]-[版本号\BOOT.BIN
    & Y# t+ a4 r0 |% k" C
    初始化DDR等外设,加载U-Boot镜像文件
    $ v0 {$ b: E# b- F8 u6 \, O9 ~% N
    U-Boot\U-Boot-2017.01\image\u-boot.bin
    $ J2 j& c2 d  x8 O. a5 W9 d  q& X
    加载运行裸机程序$ H% l! @# U$ G9 C2 P  X* p
    xxx.elf. J6 z# h) o9 _' ?; }* V
    PS端裸机程序
    , M& O6 G, _2 L( Q5 t/ P2 B
    xxx.bin
    $ m) J/ x6 Z. W7 I3 ~& Z0 J
    PL端程序,SoC例程依赖此文件8 b+ j; f! D' M3 j* N

    / A! ]. E+ L' T- O2 c. _( Y图 1
    : j9 e1 k& s  }4 ^5 t% W. J; @: s( ~& |. n& r9 e( N% p+ D8 ]
    设置u-boot环境变量将开发板拨码开关拨到101001(1~6),此模式为SD卡启动模式。开发板上电启动,快速按任意键进入U-Boot命令行修改环境变量。
    ) @( k; w4 {3 J

    2 ]2 _+ b2 a. E2 i' f, R/ F# H图 2
    $ N  A, V+ i5 g" n2 c& z+ v8 T; ^+ p" i0 ], h& K1 W
    在U-Boot命令行下执行如下指令,设置需要加载的PL端xxx.bin程序,PL端程序名应根据实际情况修改,如果是Baremetal(NoOS)例程则无需执行此命令。2 L- t9 ?( |- z5 @- d
    Uboot# setenv bitstream_image axi_gpio_xc7z020.bin2 `* V4 b2 r1 I  `! T: E3 Y: p
    执行如下指令,设置需要加载的PS端xxx.elf程序,PS端程序名应根据实际情况修改。
    * k, J6 M/ g1 H" u& {9 vUboot# setenv app_image axi_gpio.elf
    # J9 S0 [) w% u; Q# n$ ?执行如下指令设置启动方式为appboot,并保存设置好的环境变量。- i9 v0 a) [! ?6 R7 h
    Uboot# setenv sdboot 'run appboot'- A% U- o6 F' x) n& o/ P  y/ x
    Uboot# saveenv
    , l4 j$ ~) V2 e3 D

    - |1 z& S& h% ^" [1 ?图 3, E! M0 ?7 z1 Y
    & I$ l1 q! _" P  B
    / V- ~2 l) }7 I1 d
    从SD卡启动裸机程序开发板断电,重新上电启动后,调试终端打印信息如下图所示。打印"## Starting application at 0x00100000 ..."信息后,开发板开始运行裸机程序。本次操作运行的是tl-axi-gpio-led-demo的裸机程序,运行程序后会打印"AXI GPIO TEST",并且可以看到底板的LED2在闪烁。" \: I/ R* S3 K" d) V3 Q5 k) `0 t

    ; l# _& |1 H3 b图 4
    * u& Y7 B1 Q0 s/ c
    2 x4 X3 Z# V; ^" u9 I恢复U-Boot环境变量经过前面步骤修改过环境变量后,U-Boot启动时将会读取相应的裸机程序。如需正常启动Linux系统,在U-Boot命令行下执行如下指令恢复默认的环境变量。) _8 H/ e' Q5 @- ]0 g  K
    Uboot# env default -a
    6 Y# w' r, Q) d# Z5 |  ^! _) IUboot# saveenv& k/ Z6 B: f( f

    - u. f+ b" J4 E+ \. V8 C图 5* I% N3 E5 k- ^% W( P, z5 y
    % D% S( d. C  A' T+ U' F

    该用户从未签到

    2#
    发表于 2020-8-24 16:04 | 只看该作者
    来学习一下
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-28 18:21 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表