ZYNQ SOC 入门基础(一):Hello World 实验

ZYNQ是一款SOC芯片,其最突出的功能就是其内部包含了一个双核的Cortex_A9内核。从本节开始,进行ZYNQ的SOC学习。

1.1 最小系统分析
下面这张图展示了我们需要构建的最小系统。并且本节的嵌入式实验会基于这个最小系统进行添加外设。

本实验中将只会使用到PS部分资源,包括ARM Cortex—A9、DDR3内存、一个UART串口。这就是我们的最小系统。首先我们程序会加载到DDR内存中,然后CPU一条一条执行,程序的执行情况可以通过串口打印进行观察。

1.2 硬件电路分析
本实验采用MIZ7035开发板做实验。MIZ7035开发板PS端的DDR容量位1GB,PL端DDR为1GB,本实验只采用PS端的DDR.下图为MIZ7035的核心板。

1.3 创建一个VIVADO工程
step1: 在打开的VIVADO软件界面,单击Create New Project

step2:单击 Next,在弹出的窗口中输入工程名和保存路径,然后单击Next


step3:按下图进行设置

step4:选择芯片型号

step5:单击Finish完成工程的创建

step6:单击Create Block Design,输入名称system

step7:单击“+” 号,添加IP

step8:搜索“ZYNQ”,然后双击

step9:添加进来zynq cpu IP,然后单击 Run Block Automation,直接单击 ok


step10:在Block 文件中,我们进行连线,将鼠标放在引脚处,鼠标变成铅笔状后进行拖拽,连线如下图所示。连线的作用就是把PS的时钟介入PL,当然我们这里暂时还用不到PL部分的资源。

step11:双击 ZYNQ CPU IP ,对其进行设置,使其对应Miz7035的硬件设置。在此部分,我们需要做的就是修改时钟频率,内存类型和接口输出。需要注意的是如果时钟频率、内存类型与我们的硬件不一致时,SDK中的程序会崩溃,运行不下来。这在后续的调试中是一个小技巧。正确的配置是成功的必要条件。

PS时钟配置:

内存配置:(Miz7035开发板的内存型号配置为MTKM16 RE-125)

step12:设置外扩接口,之后点击OK

step13:右击 system.bd ,单击Generate Output Products

此步操作会产生执行、仿真和综合文件,可以看出最后的硬件设计步骤还是回到了我们前面的FPGA开发上来了。

step15: 右击system.bd 选择Create HDL Wrapper 者不得作用是产生顶层HDL文件,选择让vivado自动管理

step16:之后看下源码的层次结构,可以看到system_wrapper.v就是顶层文件,调用了CPU

step17: 生成比特流

step18: 查看system_wrapper.v 源码

1.4 导出SOC硬件到SDK
step1: File-> Export-> Export Hardware,包含比特流

step2: File->launch SDK,启动SDJK

1.5 Hello World 实验
step1: 打开SDK后如下图

1、硬件部分,这部分就是从VIVADO定制好的SOC硬件

2、这部分是硬件的地址空间分配

step2:z在SDK开发环境下,File-> New -> Application Project

step3:工程名为 Hello World。然后单击Next

step4:系统里面有很多的自带程序,本次就用自带的Helloworld程序做测试,单击Finsih

step5:完成后界面如下

这三部i分分别是工程的源文件、板卡支持包和硬件平台。

step6:连接开发板,上电。右击 Helloworld ->Debug as

step7: 双击下面这个位置新建

step8:然后进行如下设置

step9:用系统自带的串口调试助手,进行相关设置


step11: 单击运行输出结果。

---------------------
作者:MaoChuangAn
来源:CSDN
原文:https://blog.csdn.net/MaoChuangAn/article/details/83387217

最新文章

最新文章