Step1: 材料准备

硬件准备:

一块Digilent Zybo开发板;

一张8GB以上的Micro SD卡

一个SD卡读卡器

一根Micro USB数据线;

一根以太网线;


软件准备:

Vivado 2015.4

xillinux-1.3.img.gz

xillinux-eval-zybo-2.0a.zip

PuTTY或者Xshell(Windows系统)

Win32DiskImager(Windows系统)

Step2: 下载所需要的文件

下载地址:

Vivado 2015.4:https://www.xilinx.com/support/download.html 

xillinux-1.3.img.gz:http://xillybus.com/downloads/xillinux-1.3.img.gz 

xillinux-eval-zybo-2.0a.zip:http://xillybus.com/downloads/xillinux-eval-zybo-2.0a.zip 

Win32DiskImager(Windows系统):https://sourceforge.net/projects/win32diskimager/ 


* 实际测试中,Xillybus制作的Vivado工程可以在2017年以前的版本,即除2017.1和2017.2版本上进行综合、布线、生成比特流(Bitstream)文件(*.bit)。Digilent官方提供的支持是以2015.4为基础的。因此在这里使用2015.4版本

Step3: 解压xillinux-1.3.img.gz

得到xillinux-1.3.img文件,如上图所示(点击图片可放大)

Step4: 将MicroSD卡进行格式化

格式化成FAT32文件系统格式,如上图所示(点击图片可放大)

Step5: 将镜像烧写到SD卡中

打开Win32DiskImager,选定xillinux-1.3.img镜像,选定SD卡盘符,点写入进行烧写


如上图所示(点击图片可放大)

Step6: 解压xillinux-eval-zybo-2.0a.zip

解压xillinux-eval-zybo-2.0a.zip,将bootfiles文件夹内的boot.bin和devicetree.dtb拷贝到SD卡第一个分区

Step7: 解压xillydemo-vivado.tcl生成工程

打开Vivado,选择Tools -> Run Tcl Script,选择解压xillinux-eval-zybo-2.0a.zip目录下blockdesign中的xillydemo-vivado.tcl生成工程

Step8: 生成bitstream

点击生成bitstream,等待生成bitstream后,在工程目录下找到xillydemo.bit,同样拷贝到SD卡第一个分区

Step9: 将SD卡插入Zybo开发板上,打开Zybo

将SD卡插入Zybo开发板上,确认VGA旁边的JP5跳线连接在SD上,连接网线到路由器上,连接Micro USB线到电脑上,打开Zybo

Step10: 确定串口端口号,使用PuTTY/Xshell进行连接

查看设备管理器以确定Zybo使用的串口端口号,使用PuTTY或者Xshell进行连接

Step11: 对文件系统部分进行扩展

对文件系统部分进行扩展,以防止下边使用过程中SD卡空间不够用(见图1)。


重启之后,使用resize2fs扩展文件系统(见图2)。

Step12: 对 Xillinux(Ubuntu 12.04 LTS)进行更新

在确定联网的情况下使用sudo apt-get update; sudo apt-get upgrade; 对Xillinux(Ubuntu 12.04 LTS)进行更新

Step13: 如果遇到身边没有路由器,只有电脑能够上网,怎么办?

将网线连接在笔记本电脑上

1. Windows上:

1) 将以太网的TCP/IPv4协议IP地址设置成192.168.137.1,子网掩码设置成255.255.255.0

2) 设置好自己常用的DNS服务器地址,例如


阿里云DNS:223.5.5.5,223.6.6.6;

360DNS:123.125.81.6,101.226.4.6

114DNS:114.114.114.114,114.114.115.115

Google DNS:8.8.8.8,8.8.4.4

blob.png


3) 将能够连接Internet的连接共享给连有Zybo的以太网连接

blob.png


4)确保网络防火墙允许192.168.137.0~192.168.137.255网段的数据能够通过

blob.png


5)在Zybo上设置/etc/network/interfaces文件如下:

blob.png


6)在Zybo上设置/etc/resolv.conf,添加常用的DNS服务器,同时将网关192.168.137.1添加到其中

blob.png


7)重启网络服务,这样,就可以使用Windows为Zybo共享网络了

blob.png


2. Linux上:Zybo保持默认设置,Linux上编辑有线连接,将IPv4设置中的方法改成与其它计算机共享,保存即可共享网络

blob.png

*实际测试还是与路由直接连接的时候速度最快,所以尽量使用路由进行连接


3. 除了串口连接,还有什么方法可以连接Zybo上的Linux

可以使用OpenSSH通过网络进行Linux的访问:首先先安装OpenSSH的服务器端,sudo apt-get install openssh-server(如果Zybo需要访问其他Linux,需要安装OpenSSH的客户端,sudo apt-get install openssh-client)

blob.png


OpenSSH访问必须需要密码,所以需要passwd命令设置密码:

blob.png


然后使用PuTTY或者Xshell通过输入IP地址,输入用户名和密码,通过OpenSSH进行访问

blob.png


blob.png

Step14: 安装python

安装python:sudo apt-get install python3 python3-dev python3-dbg(在Ubuntu 12.04 LTS上,Python最高支持3.2版本)

Step15: 创建一个python脚本,添加以下内容

#!/usr/bin/python3
#-*- coding:utf-8 -*-
 
import time
import sys
import os
 
dir = 0
pwm = 0
 
try:
       while True:
              os.system('echo 1 > /sys/class/leds/mmc_led/brightness')
              time.sleep(0.01 * pwm / 100)
              os.system('echo 0 > /sys/class/leds/mmc_led/brightness')
              time.sleep(0.01 * (100 - pwm) / 100)
 
              if dir == 0:
                     pwm = pwm + 10
              else:
                     pwm = pwm - 10
 
              if pwm > 100:
                     dir = 1
                     pwm = 100
              if pwm < 0:
                     dir = 0
                     pwm = 0
except KeyboardInterrupt:
       os.system('echo 0 > /sys/class/leds/mmc_led/brightness')
       exit()


*对于Linux系统下设备的读写控制,可以参考这篇博客:https://falsinsoft.blogspot.co.il/2012/11/access-gpio-from-linux-user-space.html 

*Linux系统下所有的设备都是基于Linux树状结构进行设备挂载,基于文件读写的方式进行操作。向控制结点通过pipe管道写入数据,使得LED被点亮

*下面是测试的时候的视频:WP_20170805_00_36_34_Pro.mp4

*python通过os.system(‘’)调用系统命令进行LED的控制

Step16: 执行脚本

执行脚本,可以观察到,MIO7对应的LED呈现呼吸灯状态(demo视频见http://www.digilent.com.cn/project/details/169.html) 

评论