嵌入式开发流程 
硬件部分:step1-step4,Vivado 软件部分:step5,SDK 功能验证:step6
ZYNQ嵌入式最小系统构成: (1)ARM Cortex-A9 为核心 (2)DDR3 为内存 (3)UART 串口传输信息 
任务:使用串口打印“Hello World”
硬件设计:step1:创建工程(略)step2:使用 IP Integrator 创建 Processing System 创建block design
添加PS(ZYNQ7 Processing System)
配置ZYNQ7 Processing System模块,关掉不需要的接口和功能 打开UART0
查看UART0的MIO引脚信息
配置UART0波特率(默认)
配置 PS 的 DDR3 控制器
配置PS的时钟
移除PS 中与 PL 端交互的接口(搭建最小系统)
移除Clock_Reset和AXI接口
观察PS模块接口减少了4个接口,点击Run Block Automation生成具体引脚
验证当前设计
step3:生成顶层 HDL 模块
Create HDL Wrapper,使用 Verilog HDL 对设计进行封装, 主要完成了对 block design 的例化
勾选了“ Let Vivado manage wrapper and auto-update”, 这样我们在修改了 Block Design 之后就不需要再重新生成顶层模块, Vivado 工具会自动更新该文件。
step4:生成 Bitstream 文件并导出到 SDK 为用到PL部分无需生成 Bitstream 文件,只需将硬件导出到 SDK 即可。 导出硬件
无需比特流
后缀名.hdf 的文件即硬件定义文件。 打开SDK
进入到软件部分
软件设计
硬件描述文件system.hdf的标签页显示了整个 PS 系统的地址映射信息。 
step5:在 SDK 中创建应用工程 新建一个 SDK 应用工程 
应用工程:hello_world 板级支持包(BSP)工程:hello_world_bsp 工具会自动编译生成elf文件和.mss(微处理器软件说明)文件 微处理器软件说明.mss包含 BSP 的操作系统信息、 硬件设计中各个外设的软件驱动等信息。
源码共3句话
函数init_platform:使能caches和初始化uart 函数cleanup_platform :取消使能caches 这俩函数无效果,但因平台的通用性和可移植性保留这两个函数 函数printf():“ xil_printf.h”中Xilinx 定义的一个用于打印字符串的函数 程序保存后会自动编译
点击“ Build All”或Ctrl+B可主动编译工程 
下载验证
在SDK终端中添加板子端口 下载程序后可看到hello world的打印信息 