查看: 15289|回复: 3

ZedBoard官方例程测试

[复制链接]
  • TA的每日心情
    开心
    2014-5-14 13:12
  • 签到天数: 180 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-1-24 17:55:49 | 显示全部楼层 |阅读模式
    分享到:
    [size=13.333333969116211px]Zedboard是第一款面向开源社区的Zynq-7000系列开发板,而Zynq-7000系列FPGA,也称为完全可编程(All Programable)SoC,是Xilinx一个有重大意义的产品系列。

    [size=13.333333969116211px]

    在FPGA里集成高性能的处理器内核一直是众多FPGA厂商以及客户的需求,Zynq-7000的面世标志着Xilinx在SoC集成度上的一个突破,实现了双核Cortex-A9 MPcore和最新的28nm 7系列可编程逻辑的紧密集成。

    Zedboard的一个简单框图,板上的外围功能都是围绕Zynq芯片

    Zynq芯片的配置

    因为是最新的芯片和开发套件,资料还是比较少的,而且基本都是大部头的英文。要用FPGA进行开发,首先要了解FPGA的配置过程。传统的SRAM型FPGA都是通过JTAG接口、外置非易失性存储器(PROM、FLASH)或者外部处理器一次性将程序下载到FPGA中配置。而Zynq芯片则不同,其内部集成了处理器硬核和可编程逻辑,所以它的配置启动是分阶段的。

    • Stage 0:bootROM过程,Zynq芯片PS部分有片上ROM和RAM,在芯片上电或者复位后,其中一个处理器会执行片上ROM的代码进行初始化,判断启动设备(boot device),将启动设备上的FSBL(first boot loader)代码拷贝到片上RAM内。
    • Stage 1:启动设备包括SPI FLASH、SD和JTAG,FSBL代码是用户自己定制的,拷贝到片上RAM后执行。包括初始化PS部分配置、配置PL部分逻辑、加载和执行SSBL(second boot loader)或应用程序。
    • Stage 2:上一阶段后硬件已经配置完成。这一阶段是可选的,完成Linux系统启动过程(U-BOOT)。

    通过Zynq芯片的启动过程可以看到上电或者复位后片内处理器首先启动,然后根据MODE引脚判断启动方式,Zedboard的启动可以通过Quad-SPI FLASH、SD卡或者JTAG接口,如下表:

    管脚
    MIO6
    MIO5
    MIO4
    MIO3
    MIO2
    跳线
    JP11
    JP10
    JP9
    JP8
    JP7
    JTAG Mode
    Cascade JTAG
    0
    Independent JTAG
    1
    Boot Device
    JTAG
    0
    0
    0
    Quad-SPI
    1
    0
    0
    SD card
    1
    1
    0
    PLL Mode
    PLL used
    0
    PLL bypass
    1

    接通Zedboard电源,程序启动,因为是一个非常简单程序,所以启动配置过程非常快,蓝色LED(LD12)变亮说明Zynq芯片配置完成,程序执行后按照(10101010)逻辑点亮用户LED。

    上图看到跳线J6必须短接,MODE跳线选择SD启动。

    用putty来监视串口,串口参数设为波特率115200、数据位8、停止位1、校验无。

    准备好以后,可以接通电源,从SD卡启动过程可以分为:

    • 上电后,片上ROM程序执行,初始化后判断从SD卡启动。
    • 从SD卡拷贝FSBL到片上RAM执行,FSBL配置FPGA,蓝色LED(LD12)变亮说明配置完成。
    • 从SD读取SSBL,开始Uboot过程(启动Linux),启动过程中VGA输出了一个Demo演示图像。
    • 串口监视程序会显示Linux启动过程(需要上电前打开putty窗口),启动完成后,板上OLED会显示一个Digilent demo图像。

    Linux系统启动后,现在可以上面做一些演示的实验以体验下Zynq芯片的应用。

    1)控制GPIO

    在/usr/bin目录下有一些脚本文件用来控制或读取一些外设的状态。

    脚本read_sw用来读取板上8个开关的状态,在命令行输入read_sw会显示输出开关的状态值(16位进制和10进制)。

    脚本write_led用来控制板载8个用户LED灯(LD0~LD7)的显示,输入write_led 后面加一个数值(可以是16位进制或者10位进制数,最大255),例如write_led 0xFF与write_led 255效果一样,都是点亮8个LED。

    2)OLED

    系统启动时在OLED有一个默认的Digilent公司logo显示,可以通过脚本unload_oled和load_oled挂载和关闭OLED显示。

    VGA显示一个默认的条纹码图像

    3)网口

    Linux系统启动是初始化了Zedboard上的网口,设定固定IP192.168.1.10。演示系统的网络参数不能修改,因此并不能真正连到互联网远程访问。输入ifconfig查看Zedboard此时网络设置:

    设置好了,在主机浏览器输入192.168.1.10,可以看到一个Http页面:

    确定后进入登陆窗口,用户root,密码root,这样我们就能够访问Zedboard上的Linux了。

    在Linux下还有一些实验,可以参考Zedboard的入门手册。

    小结

    了解了Zynq芯片的配置启动过程,演示了从Quad-SPI FLASH启动和通过SD卡启动Zedboard过程,完成了在Linux下的一些演示实验。后续会介绍通过JTAG启动Zedboard以及用ISE开发程序流程。

    参考资料




    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2020-3-19 13:22
  • 签到天数: 805 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-1-24 22:03:08 | 显示全部楼层
    了解一下                        
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 2044 天

    连续签到: 3 天

    [LV.Master]伴坛终老

    发表于 2014-8-18 18:37:37 | 显示全部楼层
    ZedBoard官方例程测试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-15 22:23:47 | 显示全部楼层
    我们按照小菜儿大大的学习指南先做了第一个HELLOworld实验之后
    按照步骤进行SD卡引导
    上电之后没反应  蓝灯也没亮  终端不打印任何信息
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-9-22 14:27 , Processed in 0.133450 second(s), 21 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.