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

2023-05-16

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

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

之后点下图出来tcl consol:

在TCL Console里面输入 

source ./openwifi.tcl

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

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

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

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

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

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

VIVADO菜单执行:

之后确认

之后打开SDK,如下操作。

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

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

 

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

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.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于sdrpi的openwifi实践1:编译openwifi-hw 的相关文章

  • 【Apple Studio Display】苹果显示器无法连接Dell 5488

    Apple Studio Display 苹果显示器无法连接Dell 5488 xff08 1 xff09 Dell 5488 could not use the Apple studio display via the type c ca
  • 【macbook air M1】采用Rosetta方式运行,在macbook M1 Air上比macBook Pro M1,速度慢一些的原因?

    My application use rosetta run on macbook air M1 slowly than run on macbook M1 Why xff1f It 39 s possible that you 39 re
  • python serial模块

    安装注意 xff1a 1 easy install 是无法安装 提示找不到serial 2 可以通过exe文件安装 xff0c 不过网上的exe多数是针对win32操作系统的 3 最保险的安装方式 https pypi python org
  • libcurl长连接高并发高性能

    libcurl长连接高并发高性能 自己开发了一个股票智能分析软件 xff0c 功能很强大 xff0c 需要的点击下面的链接获取 xff1a https www cnblogs com bclshuai p 11380657 html 目录
  • 树莓派3B使用mavlink串口连接PIXHAWK_V5

    参考网址 xff1a http ardupilot org dev docs raspberry pi via mavlink html https dev px4 io en robotics dronekit html https do
  • C++ 通过TCP Socket实现简单Http服务器

    实现一个简单的Http服务器 xff0c 基于windows 平台 总共五个文件 HttpServer hpp HttpServer cpp Utils hpp Utils cpp main cpp Utils hpp span class
  • Java并发编程--自旋锁的实现和使用

    1 自旋锁介绍 自旋锁是这样一类锁 xff1a 当线程等待加锁时 xff0c 不会阻塞 xff0c 不会进入等待状态 xff0c 而是保持运行状态 大致的思路是 xff1a 让当前线程不停地的在循环体内执行 xff0c 当循环的条件被其他线
  • [Ubuntu] 可用云盘-尝试记录

    Ubuntu可用云盘 xff1a https github com Aruelius cloud189 说明 xff1a 这是一个调用天翼云API的开源命令行工具 xff0c 基于Python编写 xff1b 天翼云官方没有客户端支持Lin
  • 【无人机】基于遗传算法实现无人机编队位置规划附matlab代码

    1 内容介绍 现代社会的无人机成本造价低 不易损耗 轻巧灵便 易躲藏 能精确打击 目标这些特点 xff0c 使其在一些高危任务中发挥了不可替代的作用 5 无人机的用处主要有两种 xff1a 民用和军事 在民用方面 xff0c 我们可以运用无
  • 【路径规划】基于DWA实现机器人动态避障附matlab代码

    1 内容介绍 DWA 算法是基于机器人运动学与动力学理论的一种局部避障算法 xff0c 它将对机器人的位置控制转换为对机器人的速度控制 DWA 算法可以概括为三步 一是根据机器人自身的限制以及环境制约将速度的采样空间约束在一定范围内 二是根
  • 飞控pixhawk硬件框架

    本文转载于 xff1a https blog csdn net csshuke article details 78952026 xfeff xfeff 1 Phxhawk连接线路 2 Phxhawk硬件芯片列表 处理器 STM32F427
  • PCB_layout_misc

    AD的规则设置参考 https blog csdn net geek monkey article details 80249217 一些PCB厂家的工艺 嘉立创https www jlc com portal vtechnology ht
  • 怎样把经纬度坐标转换为空间直角坐标

    怎样把经纬度坐标转换为空间直角坐标 假设你的空间直角坐标以地球球心为原点 原点到北极为正z轴 原点到经纬度 0 0 为正x轴 那么纬度a 北正南负 经度b 东正西负 的空间直角坐标为 x 61 Rcos a cos b y 61 Rcos
  • APM添加参数

    APM添加参数 参考 https ardupilot org dev docs code overview adding a new parameter html 添加应用参数模块 例如 battery Parameters h k par
  • pixhawk6x/5x 电源插座/插头的型号

    型号 xff1a molex CLIK Mate 5024430670 5024390600
  • intellij idea: git tag操作 及 master branch相互合并操作

    git tag和git branches区别 xff1f tag就像是里程碑标志的一个点 branch是一个新的征程的一条线 tag是静态的 是只读的 不能修改 而branch是要往前走的 稳定版本备份用tag 新功能开发多人用branch
  • C++之STL和Boost

    最近一年我电话面试了数十位 C 43 43 应聘者 xff0c 惯用的暖场问题是 工作中使用过 STL 的哪些组件 xff1f 使用过 Boost 的哪些组件 xff1f 得到的答案大多集中在 vector map 和 shared ptr
  • ubuntu 下安装intel realsense驱动

    在安装之前一定要确保系统是ubuntu 14 04 3 64位 xff01 在安装之前一定要确保系统是ubuntu 14 04 3 64位 xff01 在安装之前一定要确保系统是ubuntu 14 04 3 64位 xff01 重要的事情说
  • windows下安装numpy,scipy遇到的问题总结

    最近开始研究3D手势识别 xff0c 下载的源码包是基于python的 xff0c 需要用到扩展包numpy scipy等 xff0c 安装过程汇总遇到的问题总结如下 xff1a 1 安装numpy 下载numpy编译包 xff0c 进入该

随机推荐

  • Linux大数据处理踩坑实录

    最近开发需要在linux服务器上做大数据处理 xff0c 由于对Linux开发并不是很熟悉 xff0c 因此踩了很多坑 xff0c 先作如下记录 xff1a 1 bash shell实现多进程 背景如下 需要从hadoop的hdfs上向服务
  • Deep Compression阅读理解及Caffe源码修改

    更新 xff1a 没想到这篇文章写出后有这么多人关注和索要源码 xff0c 有点受宠若惊 说来惭愧 xff0c 这个工作当时做的很粗糙 xff0c 源码修改的比较乱 xff0c 所以一直不太好拿出手 最近终于有时间整理了一下代码并开源出来了
  • Tensorflow 离线安装跳坑总结

    TensorFlow作为目前最被看好的深度学习开源框架 xff0c 又顶着Google爸爸的光环 xff0c 使得很多CNN网络的部署都基于此框架 最近开始研究GAN xff08 生成对抗网络 xff09 xff0c 鉴于大部分源码都基于T
  • ARM NEON常用函数总结

    NEON 技术是 ARM Cortex A 系列处理器的 128 位 SIMD xff08 单指令 xff0c 多数据 xff09 架构扩展 xff0c 旨在为消费性多媒体应用程序提供灵活 强大的加速功能 xff0c 从而显著改善用户体验
  • TensorRT cuda8.0 cudnn 7.0.5 tar包安装

    总体步骤参考这篇文章 https zhuanlan zhihu com p 35468450 1 准备环境 TensorRT 依赖cuda和cudnn xff0c 且根据下载的TensorRT版本 xff0c 需要严格保证cuda和cudn
  • caffe模型TensorRT部署实践(一)

    参考代码 TensorRT安装包下的samples sampleMNIST sampleMNIST cpp 1 设置使用的gpu id xff0c 如果不设置 xff0c 默认使用第0块 cudaSetDevice 3 set device
  • Ubuntu关于串口的操作(查看串口信息、串口助手、串口权限)

    一 查看本机串口信息 1 串口是否在使用 串口在 dev 目录中 xff0c 查看串口是否在使用 xff0c 可以用命令 ls l dev ttyUSB0 说明 xff1a ls l xff1a 是查看目录的命令 xff0c 直接用ls或l
  • 基于caffe的量化模型训练与部署——训练篇

    为什么需要量化 xff1f 我们知道 xff0c cnn网络的前向计算瓶颈主要集中在卷积层 xff0c 而卷积层的实质是大量的浮点数相乘 相加等运算操作 xff0c 大量的浮点数计算限制了模型在低处理器或移动端等设备中的部署 如果能将浮点运
  • get/post简单请求示例

    安装了django后使用django admin startproject demoapi创建django项目 xff0c cd demopai进入项目目录内 xff0c 创建apppython manage py startapp api
  • 什么是请求报文和响应报文?

    在了解请求报文和响应报文之前 咱们先了解下什么是HTTP协议 http协议 网络传输协议 协议 规定网络数据传输格式 http协议组成 请求报文 43 响应报文 浏览器发请求 必须是 xff1a 请求报文 服务器响应 必须是 xff1a 响
  • std::vector

    文章目录 问题处理记录std vector查找指定元素C 43 43 概念优点缺点使用 vector声明和初始化vector的基本操作二维向量vector的begin end 和 front back 的区别示例应用场景 C 43 43 中
  • 4、认识一下堆和栈

    文章目录 一 前言二 程序的内存分配方式 一 前言 因为FreeRTOS对堆和栈的理解很重要 xff0c 所以学习Freertos xff0c 先简单了解一下内存的存储方式 xff0c 堆和栈是最重要的们主要是那个返回地址 xff01 xf
  • TCP/IP详解

    前言 精通 TCP IP xff0c 熟练使用 Socket 进行网路编程 看到这句话 xff0c 有没有感到很熟悉呀 xff1f 相信很多人在投递简历的时候都看到过这条要求 xff0c 很多人会觉得我们在实际开发中一般用不到这些知识 xf
  • C语言 epoll实现IO多路复用

    友链 gcc 1 c o 1 lpthread ctrl 43 f搜索服务端代码和客户端代码获取代码 该方法也可以实现并发服务器 服务端代码 span class token comment 使用内存映射可以拷贝文件 span span c
  • 1.2 struct和class最本质区别_马鸿凯_新浪博客

    C 43 43 中的struct对C中的struct进行了扩充 xff0c 它已经不再只是一个包含不同数据类型的数据结构了 xff0c 它已经获取了太多的功能 struct能包含成员函数吗 xff1f 能 xff01 struct能继承吗
  • 在 VSCode 终端里无法使用命令

    问题原因 xff1a 导致 vscode 的终端里执行命令报错 xff0c 但在 cmd 里能正常执行 的原因是 vscode 终端不能使用命令了 解决思路 xff1a 令 vscode 终端能够使用命令 解决方案 xff1a 1 右击 V
  • 使用 FFT 进行频谱分析

    下面的示例说明了如何使用 FFT 函数进行频谱分析 FFT 的一个常用场景是确定一个时域噪声信号的频率分量 首先创建一些数据 假设是以 1000 Hz 的频率对数据进行的采样 首先为数据构造一条时间轴 xff0c 时间范围从 t 61 0
  • CRC-16 / MODBUS 校验计算方法

    CRC 16 MODBUS xff1a 1 xff09 CRC寄存器初始值为 FFFF xff1b 即16个字节全为1 xff1b 2 xff09 CRC 16 MODBUS的多项式A001H 1010 0000 0000 0001B H
  • ZYNQ下驱动ADF5355试验成功

    前两个集BLOG分别给出了ADF5355接口的VERILOG设计实现以及设置频率的C语言算法 xff0c 我今天试验了以 xff0c 试验成功了 首先很重要的是ADF5355寄存器配置的设置 xff1a 可以在这个基础上修改输入以及输入频率
  • 基于sdrpi的openwifi实践1:编译openwifi-hw

    www github com open sdr openwifi hw是openwifi的硬件项目 hw应该就取haraware之意思 xff0c 包含就是支持多个板子的项目以及openwifi作者写的一系列的简洁好用工具软件 我在做sdr