基于sdrpi的openwifi实践1:编译openwifi-hw

www.github.com/open-sdr/openwifi-hw是openwifi的硬件项目(hw应该就取haraware之意思),包含就是支持多个板子的项目以及openwifi作者写的一系列的简洁好用工具软件。我在做sdrpi之前都是按照自己的一套路来编译需要的hdl项目(比如这个博客我还是用我老方法编译hdl),后来因为在openwifi的github上开了sdrpi的branch,我就要按照官方接受那步骤来做。我按照openwifi-hw主页介绍的步骤操作了一下,觉得非常简单,简直无法再精简简练了。openwifi作者想得真是用心周到。下面文字我就按照openwifi-hw的README步骤详细走一遍,每步都有截图和大家对照分享。

这需要在安装好vivado 2018.3的环境下进行试验。对于习惯使用windows系统的顾客,可以用vmware虚拟机装个ubuntu系统,之后在上面装好vivado2018.3,并设置好license. 购买过我们板子的顾客可以从我们提供的连接里面直接获取此装好软件设置好license的虚拟机连接。

OK,让我们开始动手做。

1,现在官方openwifi-hw已经加入了对sdrpi的支持。我们递归克隆下来:

git clone --recursive  https://github.com/open-sdr/openwifi-hw

这里一定要加 --recursive,这样可以克隆下来所有包含的子模块。如果多次下载不成功发生中断,则可以参考此博客使用脚本自动尝试下载直到成功。

2,下载完毕之后,执行下列脚本:

cd ./openwifi-hw
git checkout sdrpi
export XILINX_DIR=/tools/Xilinx
./prepare_adi_lib.sh $XILINX_DIR
export BOARD_NAME=sdrpi
./prepare_adi_board_ip.sh $XILINX_DIR $BOARD_NAME
./get_ip_openofdm_rx.sh
cd boards/$BOARD_NAME/
../create_ip_repo.sh $XILINX_DIR


以上命令可以一条一条拷贝执行,也可以保存在一个.sh文件里面比如pre_hdl.sh,之后设置可执行属性:

chmod a+x ./pre_hdl.sh

之后运行这个脚本

./pre_hdl.sh

基于sdrpi的openwifi实践1:编译openwifi-hw_第1张图片

看到如下界面说明一切正常,需要继续等待。

基于sdrpi的openwifi实践1:编译openwifi-hw_第2张图片

之后点下图出来tcl consol:

基于sdrpi的openwifi实践1:编译openwifi-hw_第3张图片

在TCL Console里面输入 

source ./openwifi.tcl

就是执行./openwifi.tcl这个脚本。输入后回车开始运行。

基于sdrpi的openwifi实践1:编译openwifi-hw_第4张图片

之后项目开始生成了,我们可以查看hdl代码和block design框图,以及zynq的配置情况,当然有足够把握也可以修改。

基于sdrpi的openwifi实践1:编译openwifi-hw_第5张图片

之后我们点generate bitstream就可以直接生成bit流文件。点击后会出来多个提示,直接都点确认OK就好。

基于sdrpi的openwifi实践1:编译openwifi-hw_第6张图片

之后就是十多分钟的等待,最终弹出如下界面表示成功,没有其他操作就直接点CACEL.

基于sdrpi的openwifi实践1:编译openwifi-hw_第7张图片

生成的BIT流是:openwifi-hw/boards/sdrpi/openwifi_sdrpi/openwifi_sdrpi.runs/impl_1/system_top.bit

生成bit流之后我们希望能继续生成fsbl。

VIVADO菜单执行:

基于sdrpi的openwifi实践1:编译openwifi-hw_第8张图片

之后确认

基于sdrpi的openwifi实践1:编译openwifi-hw_第9张图片

之后打开SDK,如下操作。

基于sdrpi的openwifi实践1:编译openwifi-hw_第10张图片

新建一个APP项目名为zynq_fsbl,之后设置项目类型为fsbl.

基于sdrpi的openwifi实践1:编译openwifi-hw_第11张图片

基于sdrpi的openwifi实践1:编译openwifi-hw_第12张图片

Next后选在Avaliable Templates选择Zynq_FSBL后FINISH。

基于sdrpi的openwifi实践1:编译openwifi-hw_第13张图片

 

之后等待二三十秒等待编译结束,在生成的文件是:

openwifi-hw/boards/sdrpi/openwifi_sdrpi/openwifi_sdrpi.sdk/zynq_fsbl/Debug/zynq_fsbl.elf

上述文字的产物我们得到了两个文件一个是.bit文件,一个是.elf文件。

其中bit文件就是ZYNQ内部的FPGA的配置。

elf是可执行文件主要包含了两部分内容,A,基本的PS的配置(比如串口用的哪一个,DDR内存用的是什么规格以及对应参数设置等等)。B,第一阶段启动代码First Stage BootLoader,也就是选择从sd卡的BOOT.BIN里面加载PS的程序和PL的配置文件,或者从FLASH存储器加载这些内容。

我这里给出三个压缩包,分别是

A:今天刚从github下载的没有经过上述操作处理的项目,

B:经过了上述一系列操作的项目,

C:最终我们需要的.bit文件和.elf文件的压缩包。

分别三个网盘连接:

链接A:https://pan.baidu.com/s/1GXHh09GC7jSIyZ2GClpdYg 
提取码:80y6 
链接B:https://pan.baidu.com/s/1BkqXtZaf8RGk7YJ4wUiAPw 
提取码:r2nk 
链接C:https://pan.baidu.com/s/1Mo8BGbtmldaC3tyXCuI-vg 
提取码:0qr8  

大家有什么不明白的问题可以留言或者评论区询问。对于有我联系方式的顾客,也可以随时联系我。我们网店是tqtt.taobao.com.

你可能感兴趣的:(SDRPI,软件无线电,linux,运维,服务器)