查看: 556|回复: 0

ZYNQ学习笔记(一):HelloWorld实现

[复制链接]

主题

好友

435

积分

秀才

  • TA的每日心情
    郁闷
    2014-7-1 10:15
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-8-14 21:54:14 |显示全部楼层
    拿过ZYNQ开发板,里面给了很多部件,果断从网上下载了手册,N多手册和原理图。
    要比Spartan-6复杂多了,耐心地看了看,知道ZYNQ系列分为PS(系统)以及PL(逻辑)部分。
    之前,自己一直在做MIPS处理器的实现,其实对很多概念也没什么大的认识,对于FPGA的认识其实就是数字电路+Verilog。
    其实,我个人认为FPGA的学习与研究千万不能冒进,就是要肯下功夫慢慢来,只要 时间够了,一切问题都可以迎刃而解。
    今天,自己主要做两方面事情:利用Xilinx SDK编写HelloworldC程序,并运行在ZYNQ的操作系统下运行。
    其次,使用SDK编写Helloworld工程,配置ARM环境。
    (一)利用SDK编写arm-cross-compile程序
    今天才发现14.1以上的SDK貌似都可以直接编写arm-cross-compile程序。果断试一下:
    打开SDK,新建工程,选择C/C++ —— C Project,如下图所示
    单击next,添加工程名hello,在Static Library下选择Xilinx ARM Linux Executable,如下图所示:

    单击Finish,工程建立完毕。向工程添加C文件,单击File ——new —— Source File,输入文件名main.c(含后缀名)。如图:

    在工程WorkSpace内单击main.c,并添加如下内容后保存:
    #include <stdio.h>
    int main(){    printf("Hello ZYNQ.");    return 0;}

    在WorkSpace内右键单击工程名,选择Build Configuration—— Set Active —— 选择Release,因为文工程不需要Debug,直接Release即可。如图所示:

    然后Build进入工程文件夹内,在Release文件夹下,找到Hello.elf文件,该文件即为程序执行所需文件,将该文件拷贝到U盘中。
    然后需要安装驱动程序CyUSB2Serial_v3.0.11.0.zip,并将Xilinx官网ZedBoard_OOB_Design.zip内容拷贝到SD卡上。调整ZYNQ开发板跳线帽位置,如下图所示:
    将JP2短接表示U盘作为从设备,一切就绪后,充电,打开超级终端(hypertrm),选择COM口,修改每秒位数115200。如图:

    一段时间后,进入Linux终端界面,输入ls /dev,如图所示:

    其中sda/sda1即为U盘内容,需要对U盘进行挂载,依次输入如下命令:
    mount /dev/sda1 /mnt
    cd /mnt
    ls
    如图所示,其中hello.elf即为执行文件,
    输入./hello.elf执行。如图所示:
    Hello ZYNQ。即为输出内容,可见该文件已经在ARM环境下运行,输入
    cd ..
    umount /mnt
    卸载U盘,关闭电源。
    (二)建立Helloworld工程。
    启动PlanAhead(以前一直以为这个是鸡肋,现在才知道它才是精华),进入新建工程向导。
    选择工程名和路径。单击Next,选择RTL Project,单击Next,如图所示:
    一路Next,直到Default PartFamily选择zynq-7000Package选择clg484Speed选择-1,如图:
    单击Next,单击Finish
    生成工程文件,单击Project ManagerAdd Source,选择Add or Create Embedded Sources,如图。
    单击Next,单击Create Sub-Design,添加module名称,选择module,单击Finish
    等若干时间,Add Embedded Source。登录XPS时,弹出如下提示,单击Yes
    登录XPS界面后,单击Import,选择配置xml文件,单击OK,提示后单击Yes,如图所示。
    完成后,关闭XPS,回到PlanAhead。在Design Source下右键Module,单击Create TOP HDL,如图:
    完成后生成.v文件。单击File—— Export —— Export Hardware for SDK,如图:
    勾选Launch SDK,单击OK。如图:
    登录SDK后,单击File —— Application Project。输入Project名,如图所示:
    单击Next,选择Hello world,单击Finish,如下图所示:
    完成后,生成若干文件,在src内找到Helloworld.c文件,如下图所示:
    选中工程单击Build Project。Build结束后,单击Xilinx Tools —— Configure JTAG Settings,将Type类型修改为Digilent USB Cable,因为一会儿将使用USB线作为下载线,此处如果选择Auto,本人的环境是默认为Xilinx Hardware Server,所以一直不能下载,此处建议显示设置,单击OK,如图。
    右键工程,选择Run As —— Run Configuration,双击Xilinx C/C++ application(GDB),如图:
    一切准备就绪后,修改ZYNQ开发板跳线帽,如图:
    并将prog mini-usb端连入PC用于下载程序,将uart mini-usb端连入PC,用于传输Hello world,连接好后,打开电源,打开超级终端,设置波特率115200
    单击run,数秒后,在超级终端可接受字符串,如图所示:
    关闭电源,实验结束。
    回复

    使用道具 举报

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

    关闭

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

    手机版|电路城

    GMT+8, 2019-7-20 01:35 , Processed in 0.140330 second(s), 14 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部