PULPino在zedboard上的下载、测试
来源:互联网 发布:datediff mysql 编辑:程序博客网 时间:2024/06/08 19:23
PULPino是一个开源的微型控制系统,基于一个32位RISC-V核心,由瑞士苏黎世联邦理工学院与意大利博洛尼亚大学联合开发。核心IPC接近1,完全支持基整数指令集(RV32I),压缩指令(RV32C)和部分支持乘法指令集扩展(RV32M)。在https://github.com/pulp-platform上有全部源代码,包括:处理器、外设、总线、编译器等,下面是我在zedboard上下载、测试PULPino的过程。试验环境是Ubuntu14.04,64bit。
1、下载、编译GCC编译器
PULPino中引入了一些扩展指令,所以需要修改原来RISC-V提供的编译器,方法很简单,首先
然后在终端中使用source ~/.bashrc,使得新的设置生效。此时在终端中输入riscv32-unknown-elf-,然后按两下tab键,就会出现所有的GCC工具。
2、安装vivado 2015.1
因为PULPino提供的工程是在vivado 2015.1中测试的,所以这里也下载这个版本,避免出现莫名其妙的问题,下载、解压后,输入
安装完成后,从xilinx官网获取licence,下载导入。修改bashrc(使用命令gedit ~/.bashrc),将xilinx可执行文件的路径添加到PATH,如下:
此时输入vivado可以直接打开vivado,但是会提示一些文件夹的权限不足,按照提示修改即可。
3、需要PyYAML,使用 sudo python ./setup.py install 进行安装即可。
4、下载pulpino源码
在终端中输入如下指令:
很快,大约13.11MB,进入所在目录,运行./update-ips.py,这个命令会将各个IP的代码从github上clone到ipx目录下。5、编译pulpino
在编译的最后需要用到gmake,所以在编译前先建立一个gmake的软连接,如下: 进入pulpino的fpga目录,输入make all,会自动编译需要下载到FPGA的bit文件、rootfs、devicetree、fbsl、uboot等,都会在pulpino/fpga/sw/sd_image目录下出现。
在编译得到rootfile的时候可能需要给出交叉编译工具(BR2_TOOLCHAIN_EXTERNAL_PATH)的路径,输入如下路径即可
6、制作zedboard启动的SD卡
需要将上面得到的bit文件、rootfs、devicetree、fbsl、uboot等复制到SD卡中,在复制之前,需要格式化SD卡,将其分为两个分区,一个boot分区,一个root分区,分区制作的方法在www.wiki.xilinx.com/Prepare+Boot+Medium中有详述,按照其中的步骤一步步来即可。这里也简单提一下,不清楚的可以参考那篇文章。我是通过USB读卡器读写SD卡的,插上读卡器之后,使用命令
会在最后列出SD对应的盘符,我的是sdb,所以使用如下指令擦除第一个sector,将其中的X换为b,在后面不再强调这一点使用如下指令查看SD卡的情况:输出类似如下:使用上面结果第一行的SD卡总大小除以8225280,得到扇面数,也就是8068792320 / 8225280 = 980,这个值在下面会用到,接下来进行分区: 拔出SD卡,再插入计算机,此时在/dev目录下应该出现了sdb1、sdb2,使用如下命令格式化这两个分区:然后加载这两个分区 将pulpino/fpga/sw/sd_image目录下的BOOT.bin、uImage、devicetree.dtb三个文件复制到/mnt/boot,也就是SD的Boot分区,将rootfs.tar解压缩到/mnt/root,也就是root分区,解压指令如下: SD卡就制作完成了。7、安装minicom,这是一个linux下使用的串口工具,使用如下命令即可安装:
8、将zedboard接电源,并且将J14 UART口接计算机,网口接到hub,要求有DHCP功能,家用的无线路由器都有这个功能。波动开关,加电。
9、此时在终端中使用ls /dev可以发现又一个新设备ttyACM0,这个对应的就是zedboard,打开minicom,如下:
其余保持不变,返回后,点击回车,即可连上,如下:
输入reset,重新启动zedboard。登录时用户名是root,没有密码。
10、设置zedboard的SSH
在zedboard上新建一个用户,与主机的用户名相同,我这里就是leisl,
改为如下:
此时就可以正常使用ssh访问zedboard了,也可以使用scp传递文件了。11、进入pulpino/fpga/sw/apps/spiload,输入make,得到spiload,上传到zedboard
12、编译应用程序
首先安装cmake、libswitch-perl
执行这个配置文件。接下来可以编译应用程序,在build目录下,输入make led_demo,将pulpino/build/apps/fpga/led_demo/slm_files目录下的spi_stim.txt上传到开发板,如下:
然后在ssh或者minicom中执行./spiload ./spi_stim.txt,可以发现亮了7个红色LED灯。但是实际上这个程序要丰富的多,LED灯应该是类似于跑马灯那样点亮的,而不是一下子点亮,需要修改pulpino/sw/apps/fpga/led_demo目录下的main.c,将其中waste_time函数中的循环次数变大,改为1000000,重新到build目录下编译,然后上传,运行,可以发现跑马灯的效果。
13、编译应用程序helloworld
首先需要修改一下helloworld,具体原因不知道,但是如果不做这个修改,不会显示helloworld,修改pulpino/sw/apps/helloworld目录下的main.c文件,如下:
然后进入build目录,输入make helloworld,将pulpino/build/apps/helloworld/slm_files目录下的spi_stim.txt上传到开发板,具体步骤参考上面的,然后再minicom中执行,有个地方需要注意,spiload要加上参数-t,表示在这几秒之内pulpino通过UART输出的信息都显示在屏幕上,就可以发现helloworld了。
其余的试验还没有做,有兴趣的朋友可以试试,到时告诉我测试步骤、测试结果啊。
- PULPino在zedboard上的下载、测试
- PULPino在zedboard上的下载、测试
- ROS在Zedboard上的移植
- HOG在ZedBoard上的实现
- ZedBoard的简单测试
- Zedboard上的NTShell移植 以及 双串口软件测试
- 基于ZedBoard的Webcam设计(五):x264编码在zedboard上的实现(软编码)
- 基于ZedBoard的Webcam设计(五):x264编码在zedboard上的实现(软编码)
- 在zedboard上移植opencv
- zedboard--qt在zedboard的运行(十四)
- x264编码在zedboard上的实现(软编码)(四)
- zedboard--运行在demo系统上的helloworld驱动(十八)
- ZedBoard学习手记(九) 在ZedBoard上运行QT图形软件
- 在zedboard板子上运行人脸检测例子
- ZYNQ QNX开发——在ZedBoard上运行QNX
- zedboard--zedboard的qt测试和usb视频采集和显示(十六)
- ZedBoard上移植OpenCV
- 把OpenCV移植到ZedBoard上的那些事
- LeetCode.385 Mini Parser
- Zookeeper集群的安装与配置
- 反射
- iOS页面消息角标展示数字
- 知识付费市场巨大,拿什么内容付费工具去实现知识变现?
- PULPino在zedboard上的下载、测试
- Ecplise安装FindBugs插件
- 代码三神器?
- echarts的x轴y轴的颜色改变
- python3机器学习——sklearn0.19.1版本——数据处理(二)(多项式、pipeline、分类模型评价标准)
- WebApi 的Action跳不进去
- 基于cyptopp库的rsa加解密详解
- 矩阵中的路径
- 10.2 数字与静态