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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    开发环境说明
    " f) P: j# {# F1 U  Y表 1. I1 Q+ F: w% E
    开发板型号
    6 }5 w, E2 |  q. u1 O$ |2 U
    是否支持本实验/ m& X0 M" \; `' H9 w
    TLZ7x-EasyEVM, b) ^* L" n" Y  B, a( M& T" S( _
    支持, l5 P$ H4 n+ j" H, w/ k
    TLZ7xH-EVM
    8 S9 ^3 B0 C4 N3 l" T
    支持
    1 B- p4 \1 w  d* a/ \0 n

    - n: S% u4 r- M4 L% H. v本文以TLZ7x-EasyEVM开发板为例,核心板SoC芯片型号为XC7Z020,演示使用SD卡启动Zynq裸机程序的方法。1 [4 h: y  C, \
    基于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程序。
    , q% d* Q5 H; G5 v 从SD卡启动SoC裸机程序说明分别参照《基于TcL脚本生成Vivado工程及编译》、《基于TcL脚本生成xsdk工程及编译》文档,编译All-Programmable-SoC-demos例程。
    5 V" d  g9 V5 ?将SD存储卡格式化为FAT32格式,或者直接使用SD系统启动卡的boot分区,SD系统启动卡boot分区即为FAT32格式。将PS端的xxx.elf程序和PL端xxx.bin程序复制到SD卡,另外将BOOT.BIN和u-boot.bin两个文件也添加复制到SD卡。& C+ [4 r- |& Q* r) \4 h
    以光盘"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"。
    4 U8 M1 a. ^. ^7 X7 E/ B& ^9 F
    3 i3 P5 c( s- z# ~: W表 2
    9 M8 S& p9 p: U4 |+ {! c6 v
    对应文件名  I/ w" b4 |' t1 j4 ]' u( l
    职责说明* X) z9 N; D( z9 R( ?' H" W2 G
    FSBL\image\embeddedsw-[Git系列号]-[版本号\BOOT.BIN
    & @) A# U1 y' M+ M. x9 C
    初始化DDR等外设,加载U-Boot镜像文件
    0 x7 D9 L" ^) l9 d) \6 H, V
    U-Boot\U-Boot-2017.01\image\u-boot.bin- _' Q" e4 B8 D1 f
    加载运行裸机程序
    + v2 c% N: t, j. t9 ^
    xxx.elf4 k( w" K7 m3 m0 Y$ l  }
    PS端裸机程序
      i0 u" m2 u( {: o
    xxx.bin. b4 D8 G6 r$ B6 O4 t: ^0 o4 I
    PL端程序,SoC例程依赖此文件5 w, \5 |, C- M/ a& ~

    2 i# A, }$ j3 ~4 W3 r& g2 ]图 1* h0 I9 `0 P( L$ \: n- Y+ Z9 c

    3 X) V4 S+ s. q& P2 D0 }/ X设置u-boot环境变量将开发板拨码开关拨到101001(1~6),此模式为SD卡启动模式。开发板上电启动,快速按任意键进入U-Boot命令行修改环境变量。  V0 G7 h3 r! J3 W& L& B

    8 {5 ^3 s+ ^0 _) k图 2
    " T! Z2 n- z% [) F8 T6 |. E* D" m. \  v- l; @
    在U-Boot命令行下执行如下指令,设置需要加载的PL端xxx.bin程序,PL端程序名应根据实际情况修改,如果是Baremetal(NoOS)例程则无需执行此命令。
    5 l3 f6 [! B: o7 l* aUboot# setenv bitstream_image axi_gpio_xc7z020.bin6 Z! F$ f4 _9 s
    执行如下指令,设置需要加载的PS端xxx.elf程序,PS端程序名应根据实际情况修改。
    7 C% B5 p' H7 U: v2 A) o( R. sUboot# setenv app_image axi_gpio.elf
    % o, x4 {1 a4 y! k& ~% u9 ?, F/ g执行如下指令设置启动方式为appboot,并保存设置好的环境变量。
      b! I( I  [8 j( h3 {6 rUboot# setenv sdboot 'run appboot'
    9 ]# a9 Y) u4 `Uboot# saveenv6 B: t8 z% q; g/ p

      D$ u/ F  q$ U, A9 j图 3
    ! \5 a  T, z/ L+ _7 S. @+ D
    " u* ^4 K# X2 K7 R( d; d7 K
    8 Q4 t* L. Z3 h7 e7 Y1 e5 B; T5 o
    从SD卡启动裸机程序开发板断电,重新上电启动后,调试终端打印信息如下图所示。打印"## Starting application at 0x00100000 ..."信息后,开发板开始运行裸机程序。本次操作运行的是tl-axi-gpio-led-demo的裸机程序,运行程序后会打印"AXI GPIO TEST",并且可以看到底板的LED2在闪烁。
    # Q0 y5 d6 `# {  W" e/ B. }) K

    ; O, Q$ r1 Y: y2 P8 u图 4! ]" ]0 x. B' ]+ _% Z+ O6 e& R

    ) p7 T7 J: i+ T( U恢复U-Boot环境变量经过前面步骤修改过环境变量后,U-Boot启动时将会读取相应的裸机程序。如需正常启动Linux系统,在U-Boot命令行下执行如下指令恢复默认的环境变量。
    9 B5 h/ J+ y! w  o- v; q. ]Uboot# env default -a9 a9 {1 M! ]6 Q3 c; o  |
    Uboot# saveenv
    - `. R. G9 s1 x* V9 b. e0 j% \
    7 m. `2 z5 \/ W8 ]! t
    图 5
    7 l5 W& u7 [. I" N0 o1 v% e: O3 X' S9 u) ^* z* G

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-25 01:04 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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