parallelcell

Zedboard测评2:Zynq交叉编译环境链的建立与C程序编写

0
阅读(8526)

不知到为啥Zedboard寄过来的时候没有带Vivado光盘,于是从Xilinx官网上下载,速度超慢,下着下着就断了,好不容易找到了个BT,挂2天了,才60%,但愿明天能把Vivado下完。

在Vivado下完之前,先把Zynq的软件编译环境安装好,可以用来重新编译基于Zynq的Linux系统,同时能写基于Zynq的C程序(其实Vivado中的SDK也能实现)。下面是具体步骤:

1. 电脑原有XP,为了安装Zynq的交叉编译链,又装了Ubuntu 12.04。

2. 在http://wiki.xilinx.com/zynq-tools这个页面找到ARM GNU Tool,注册Xilinx官网后可下载

3. 下载得到的文件是xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin,接着安装。安装之前需要在 Ubuntu下打开一个终端,输入命令 “sudo dpkg-reconfigure dash”,然后出现下图,选择“否”,退出。此步就是将dash改成bash,原理我不懂,只是安装刚下载那个文件的时候,需要改成bash才行。

4. 将“xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin"此文件拷贝到”主文件夹“下面,打开一个终端,运 行“sudo ./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin"。然后出现安装界面,一步一步向下安装即可。部分 截图如下

期 间会问你是否安装到一个路径,我默认安装到指定路径的(我的是/root/CodeSourcery /Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/)。同时,还会问道需不需要“Modify PATH”,我默认“修改”。

5.安装完以后,根据http://wiki.xilinx.com/zynq-tools这个页面最后一小段说明,需要修改环境变量,命令如下

打开一个终端,输入su,然后输入密码,进入root

再输入export CROSS_COMPILE=arm-xilinx-linux-gnueabi-

再输入export PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/:$PATH

6. 然后编译一个简单的C程序,我写的如下

然后,在终端中输入先输入su进入root,然后输入“arm-xilinx-linux-gnueabi-gcc ./hello.c -g -o hello”,将C文件编译成可执行文件hello。此时的hello就是Zynq能执行的程序了。

7. USB转UART接上Zedboard,同时用网线把你电脑与Zedboard相连。给Zedboard加电。Ubuntu下用minicom做串口调试 助手,很好用。同时Ubuntu能直接识别Cypress的这个USB2UART芯片,串口默认对应的是/dev/ttyACM0。设置好比特率后,就能 与Zedboard交互。

同时,输入“ifconfig”命令,如下图

可 以看到Zynq不是DHCP的,默认IP是“192.168.1.10”,子网掩码是“255.255.255.0”,那么需要在Ubuntu下把网卡设 置成固定IP。比如“192.168.1.1”以及对应的子网掩码。设置完以后,可能还需重启Zedboard,你的电脑和Zedboard才能通过网线 连上。在Zynq中输入“ping 192.168.1.1”,可以看到ping通了。同时,在Ubuntu下打开浏览器,输入“192.168.1.10“,可以看到下图

8.在电脑上另开一个终端,输入“ftp 192.168.1.10”,这样可以通过ftp连接到Zedboard了,这样的话就能实现电脑与Zedboard之前相互发送文件了。

用put命令,通过ftp将刚才生成的hello文件传送到Zedbord的usr文件夹下

然后在Zynq端输入,“chmod +x ./hello"把此hello文件加权限为可执行,然后再输入”./hello“,即可看到程序输出结果,如下图

总结:至此在Ubuntu中安装上了Zynq中ARM Core的交叉编译链,即“arm-xilinx-linux-gnueabi-”,可以用来重新编译基于Zynq的Linux系统。同时还能用其中的gcc工具编译基于Zynq的C代码。同时实现了通ftp在电脑与Zedboard之间互传文件,为后续调试提供了一丝方便。

这两天看了一些资料,对用软件程序控制VGA没有一丝头绪,demo中的VGA显示是完全基于PL而独立PS的,VGA接口压根就没接到PS上。有鸭梨啊!已经向Digilent和Anet的FAE发邮件询问demo实现细节等问题,期待答案!

但愿Vivado明天能下完。睡了,明天还得给导师当民工干活呢。

Baidu
map