本篇主要是用米尔科技的Z-trun Board通过串口打印数据出来,只是使用了PS部分来完成了这个功能,并没有使用PL部分。
(1)打开vivado 软件新建一个项目,选择RTL项目
都是按照默认选项点击下一步即可,芯片选型如下:
图1:芯片选择
(2)添加 IP 如下图所示
图2:添加IP
点击 Add IP ,如图3所示:
图3:Add IP
双击下图的 标示,添加CPU 如图4所示
图4:添加CPU
(3)设置CPU
点击Run Block Automation
图5:Run Block Automation
进入设置界面,只留下FIXED_IO.
PS-PL Configuration->General->Enable Clock Resets->去勾选FCLK_RESET0_N
PS-PL Configuration->GP Master AXI Interface->去勾选 M AXI GP0 interface
Clock Configuration->PL Fabric Clocks->去勾选FCLK_CLK0
DDR Congiguration->去勾选Enable DDR
设置SD和UART引脚
MIO Configuration->Bank1 IO Voltage LVCMOS 1.8V.
MIO Configuration->IO Peripherals->选上SD 0, SD 0的引脚配置:
MIO Configuration->IO Peripherals->选上UART 1, UARRT 1的引脚配置:
点击OK返回Diagram界面, 把DDR接口删掉,配置之后的界面
如下图所示:
图6:IO配置
(4)生成设计文件
右击system项->Generate Output Products->直接点Generate,
右击system项->Create HDL Wrapper 选下面一项,点OK
如图7所示
图7:生成设计文件
(5)导出硬件设计文件到SDK
导出前要确保Block Design是打开的
File->Export->Export Hardware->直接点OK,这样会把硬件文件system_wrapper.hdf导到demo.sdk文件夹下,SDK工程 也在该目录下
(6)启动SDK
File->Launch SDK-> 点OK
在SDK中->File->New->New Application Project->设置如下,点next->选demo (如图8所示)
图8:Demo工程
将ps7_init.c和ps7_init.h copy到demo/src目录下
修改demo/src/platform.c
init_platform函数,将ps7_init()函数和 头文件#include "ps7_init.h" 注释去掉
编译代码
修改Helloworld.c 文件即可。如下所示:
-
#include <stdio.h>
-
#include "platform.h"
-
-
void print(char *str);
-
-
int main()
-
{
-
init_platform();
-
-
print("<a href="http://www.eeboard.com\n\r" )"="">www.eeboard.com\n\r")</a>;
-
-
cleanup_platform();
-
return 0;
-
}</stdio.h>
生成BootImage :右击helloword工程->Create boot Image->Create Image
如图9所示:
图9:生成启动镜像
将生成的BOOT.bin 复制到使用过HP USB Disk Storage Format Tool格式化成启动盘的SD卡根目录下,插入到Z-trun Board上。
将Z-turn Board的 JP跳槽设置成从SD卡启动
将Z-turn Board的 USB-UART和电脑连接,启动即可看到串口打印的消息如图10所示:
图10:串口打印消息