ARM开发之hello world 串口打印
一、实验目的
新建FPGA开发工程,然后调用原语输出单端信号转差分信号逻辑输出。差分信号输出逻辑为:输入一个信号,输出互为相反的两个信号。
二、ZYNQ工程建立
三、新建bd以及ZYNQ处理器IP调用
新建bd文件
添加IP模块
双击打开配置模式,在PS-PL Configuration->general->Enable Clock Resets,(找不到请右边下拉菜单) 取消勾选 FCLK_RESET_N。Zynq提供了四个对外输出的复位信号,低有效。我们不需要,因 为我们本例程没有FPGA部分设计。然后在general->AXI non secure enablement->GP Master AXI interface下,取消掉M AXI GP0 interface。这里我们也没有任何用到连接其他 模块的总线接口,所以也不需要。
在Peripheral I/O Pins下,我么找到串口1,因为我们要用到串口打印信息,我们 勾选上,再将IO界面往右拉,确认是48,49管脚:
Clock configuration下,PL Fabric clocks,有四个对外提供的时钟。这四个也是给 FPGA提供的,我么也不需要,将其勾选掉
DDR3配置,程序运行是在DDR3上运行,所以不能配置错误。这里我们配置型号和位 宽如下图所示,型号是MT41J256M16 RE-125,位宽是16位。请一定要确认,否则程序无法 运行或下载到DDR3上。
7. 最后点击OK完成设置。回到Diagram界面,我们点击Diagram上方的Run Block Automation进行自动模块连接操作:
8. 点击OK
9. 最后,模块自动将接口信号和DDR3信号印出来,表示这些信号是连接到芯片外部。我们都知道,DDR3是一种内存芯片,是跟芯片通过数据线,地址线,控制线和时钟线连接的,通过这些信号读写。
10 .回到Sources,我们在Design_1右键,点击Generate Output Products输出生成相关文件。包括bd图表文档里面所有IP核的例化硬件代码文件,仿真相关文件等。
11.点击 Generate
12.等待生成完成之后,我们再次design_1图表文件右键点击Create HDL Wrapper自动创建工程的顶层例化文件。
13.点击OK
14. 生成了顶层的.v文件
15. 最后,我们导出硬件描述文件。这个文件在后面的软件SDK环境中需要用到,也是整个软 件代码的硬件核心文件。File->Export->Export Hardware:
四、SDK下的代码开发
1. 启动SDK,在工具栏File ->Launch SDK启动
2. 接着我们创建一个helloword的application工程。我们点击左上角工具栏File->New- >Application Project,工程名helloword,其余不变,点击Next:
3. 选择hello world,点击finish
4.自动创建了一个bsp的支持包工程
5.接着调试helloworld,将两个USB接上电脑,然后选择helloworld工程,点击虫子符号
6.选择第一个点击OK,接着点击yes
7.弹出debug界面,看到helloworld.c函数,现在还未开始运行,只是说明可以正常debug
8.接下来,我们先在我的电脑->右键属性->设备管理器查看下串口号
9.记住这个串口号,关闭设备管理器,回到我们的SDK得DEBUG 界面。我们接着使用SDK自带的串口工具。工具栏的Window->Show View->Other,我们下拉找到 Terminal选中然后点击OK:
10.右下方就出现了我们的terminal窗口界面
11.我们点击terminal上面左边第一个绿色的符号打开串口连接。第一次打开需要设置,自动弹出 设置界面,我们设置好连接方式为serial,串口号COM4,波特率115200最后点击OK:
12.串口就连接好了。我们点击工具栏下方的启动运行按钮运行。由于代码输出helloword打印 之后就退出,CPU自动会进入一个exit函数中,然后自动停止运行。点击了启动运行按钮之后,按钮自动又变回原来状态。右下方的termal就出现了我们的helloword输出。
本文 zblog模板 原创,转载保留链接!网址:http://xn--zqqs03dbu6a.cn/?id=48
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。