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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    开发环境说明2 v# G8 p3 e% i# C0 |
    表 1
    9 ~. Q% \3 ?" m' A4 G
    开发板型号/ ^0 q4 U6 X( C5 e- r/ f  |6 h
    是否支持本实验
    ) b1 i( Y5 h% w, w
    TLZ7x-EasyEVM) k' N/ ^0 Z9 \$ n9 Z, v
    支持
    6 A! O% _# i4 |, Q# |. S
    TLZ7xH-EVM9 z! {+ ^0 a3 S2 `" v9 w- B- o
    支持7 b, ^: D2 T0 `8 C9 M) d: n

    / B* F# ^% E$ Y4 \, j本文以TLZ7x-EasyEVM开发板为例,核心板SoC芯片型号为XC7Z020,演示使用SD卡启动Zynq裸机程序的方法。' O6 v: u& [  c2 c, E
    基于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程序。
      P/ O7 K  Y% @ 从SD卡启动SoC裸机程序说明分别参照《基于TcL脚本生成Vivado工程及编译》、《基于TcL脚本生成xsdk工程及编译》文档,编译All-Programmable-SoC-demos例程。
    8 B# ^' Q8 [0 F" E  J将SD存储卡格式化为FAT32格式,或者直接使用SD系统启动卡的boot分区,SD系统启动卡boot分区即为FAT32格式。将PS端的xxx.elf程序和PL端xxx.bin程序复制到SD卡,另外将BOOT.BIN和u-boot.bin两个文件也添加复制到SD卡。
    " l0 E0 V3 P4 W: k以光盘"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"。! H: e1 ?" j. U  T, a

    ! G, Q' Y3 l* o  s/ `# a表 2
    ' e( t; l" v* q4 t9 e
    对应文件名7 t6 o) Z6 O' T- o/ m8 ^% _
    职责说明3 C) ?$ d( l8 N" W& p8 m9 y
    FSBL\image\embeddedsw-[Git系列号]-[版本号\BOOT.BIN
    - t8 I; S8 T: [  p  h( k. B
    初始化DDR等外设,加载U-Boot镜像文件/ S) Z" ]& r% q4 ]2 f1 s
    U-Boot\U-Boot-2017.01\image\u-boot.bin6 B. g0 B' q9 X
    加载运行裸机程序( q; ?* o2 C  n' A! r( s
    xxx.elf9 c6 T' \% M8 d6 x5 y& B
    PS端裸机程序
    7 ]9 L* C1 M1 U# @) I9 w
    xxx.bin
    ! b. S  O1 A9 l- n
    PL端程序,SoC例程依赖此文件6 T% I4 t' O3 U. Q  [1 f

    / b, {4 M4 T3 r* J) ?图 1
    1 W, ~7 b$ L1 `
    % `, l. }* n6 Y8 Z3 X8 z0 n$ R设置u-boot环境变量将开发板拨码开关拨到101001(1~6),此模式为SD卡启动模式。开发板上电启动,快速按任意键进入U-Boot命令行修改环境变量。6 K, k9 g1 k1 o

    ' M2 @, j. A% a3 e4 ^图 2
    / J5 P) W5 D& g; g1 X0 a" s- ?$ n* W8 N% f
    在U-Boot命令行下执行如下指令,设置需要加载的PL端xxx.bin程序,PL端程序名应根据实际情况修改,如果是Baremetal(NoOS)例程则无需执行此命令。
    + E/ g4 Y; D* \' D% d  D) MUboot# setenv bitstream_image axi_gpio_xc7z020.bin
    ! a0 B6 g4 K* C  [# ^: K2 W! Z执行如下指令,设置需要加载的PS端xxx.elf程序,PS端程序名应根据实际情况修改。5 ?( v, r* ~  F; t4 F" B
    Uboot# setenv app_image axi_gpio.elf* v* |# ]- c3 P! I& G' Q9 f
    执行如下指令设置启动方式为appboot,并保存设置好的环境变量。0 x) }9 W3 [" X& |
    Uboot# setenv sdboot 'run appboot'
    - u0 @3 ]' L) \& a2 b% ]+ yUboot# saveenv
    " F' w; A" Q7 {( h* ~- h% q% h4 {  [

    4 }: q4 k# V* t0 X图 3
    , E' S6 h# T+ o/ W+ ?$ R6 Y2 |
    , o4 E1 Q+ Z: O: n) J, }! t" A. s* f& t8 @  B' H1 `: ^: _! w6 l
    从SD卡启动裸机程序开发板断电,重新上电启动后,调试终端打印信息如下图所示。打印"## Starting application at 0x00100000 ..."信息后,开发板开始运行裸机程序。本次操作运行的是tl-axi-gpio-led-demo的裸机程序,运行程序后会打印"AXI GPIO TEST",并且可以看到底板的LED2在闪烁。
    " Q) ]/ {1 L4 i( O; }

    4 Y! V% F7 s& k- X* M; y) `图 4: ^6 e) |. q( \* J
      }- x1 q, {0 x# H8 t5 j7 X2 X, G
    恢复U-Boot环境变量经过前面步骤修改过环境变量后,U-Boot启动时将会读取相应的裸机程序。如需正常启动Linux系统,在U-Boot命令行下执行如下指令恢复默认的环境变量。) X6 I* W* n1 Y" V
    Uboot# env default -a  Q4 D! A  Z8 l7 v. k$ C; O
    Uboot# saveenv: T: W7 W# B# _& c# ~/ V# [. a* t/ R
    % J: Z# [" l# v4 K' P- e
    图 50 K' Y" M2 j9 N) D2 D3 }0 U& O
    9 S) ~8 j/ F. {& |( C2 s; c

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 23:14 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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