基于cy7c68013的逻辑分析仪nanoDLA全套软件linux下编译测试

0. 环境

- win10
- ubuntu22
- nanoDLA 

提前获取到源码:-> 浏览器打开 https://github.com/wuxx/nanoDLA -> Download as zip.

硬件就直接用taobao买到的,原理图是

1. win10出厂测试


1.1 安装pulseview


nanoDLA-master\software\pulseview-0.4.1-64bit-static-release-installer.exe

1.2 安装驱动


插入 nanoDLA -> 识别出未知设备 -> 
-> 打开 Zadig -> Options -> List All Devices -> 选择 nanoDLA对应的 Unknown Device -> 选择 WinUSB驱动 -> 点击 Install Driver 

1.3 手上测试

nanoDLA连接USB转TTL模块测试,注意软件默认的采样频率无法正确解析出9600的波特率,这里调大到250kHz. 

2. ubuntu22编译固件


2.1 解压源码

unzip nanoDLA-master.zip
cd nanoDLA-master

2.2 编译fxload

cd tools/fxload-2008_10_13
make clean
make

2.3 编译 fx2eeprom

cd tools/fx2eeprom
make

切换用户到root(dev/usb需要设置权限,我直接root了)

sudo -s

设置环境变量

export PATH=/home/xxjianvm/work/nanoDLA/nanoDLA-master/tools/fxload-2008_10_13:${PATH}

编译逻辑分析仪固件

cd ..
cd fx2eeprom

查看 nanoDLA对应的lsusb

# lsusb
Bus 002 Device 004: ID 1d50:608c OpenMoko, Inc. Fx2lafw


2.4 下载固件

修改 makefile

gedit MakeFile


VID = 04b4
PID = 8613#VID = 0925
#PID = 3881#sigrok-fx2-8ch
#VID = 1d50
#PID = 608c


修改为:

#VID = 04b4
#PID = 8613#VID = 0925
#PID = 3881#sigrok-fx2-8ch
VID = 1d50
PID = 608c


并把

cat ../../firmware/fx2lafw-sigrok-fx2-8ch-new.iic 


修改为:

cat ../../firmware/fx2lafw-sigrok-fx2-8ch-c0.iic 

下载:

$ make
$ make load && make write_fx2lafw

3. 测试


拔出设备再次接入电脑的usb。按照第一章节的win10进行测试。

4. 编译 fx2lafw(逻辑分析仪固件)


4.1 sdcc


浏览器打开 https://sourceforge.net/projects/sdcc/files/
下载得到 sdcc-3.9.0-amd64-unknown-linux2.5.tar.bz2
放到 ~/work/nanoDLA/sdcc-3.9.0-amd64-unknown-linux2.5.tar.bz2

解压

$ tar -jxvf sdcc-3.9.0-amd64-unknown-linux2.5.tar.bz2


设置环境变量

$ export PATH=/home/xxjianvm/work/nanoDLA/sdcc-3.9.0/bin:${PATH}

4.2 编译

$ sudo apt install autoconf
$ cd sigrok-firmware-fx2lafw-0.1.7
$ ./autogen.sh
$ ./configure
$ make

得到 hw/sigrok-fx2-8ch文件下的固件,详细路径是:

/home/xxjianvm/work/nanoDLA/sigrok-firmware-fx2lafw-0.1.7/hw/sigrok-fx2-8ch/fx2lafw-sigrok-fx2-8ch.fw

4.3 下载测试

$ cd nanoDLA-master/tools/fx2eeprom


修改Makefile

../../firmware/fx2lafw-sigrok-fx2-8ch-c0.iic


替换为

/home/xxjianvm/work/nanoDLA/sigrok-firmware-fx2lafw-0.1.7/hw/sigrok-fx2-8ch/fx2lafw-sigrok-fx2-8ch.fw


下载

$ export PATH=/home/xxjianvm/work/nanoDLA/nanoDLA-master/tools/fxload-2008_10_13:${PATH}
$ make load && make write_fx2lafw

顺利:

write on-chip, addr 0x0d03 len   17 (0x0011)
... WROTE: 3359 bytes, 41 segments, avg 81
reset CPU
Makefile:24: 002 005
cat /home/xxjianvm/work/nanoDLA/sigrok-firmware-fx2lafw-0.1.7/hw/sigrok-fx2-8ch/fx2lafw-sigrok-fx2-8ch.fw | ./fx2eeprom w 0x1d50 0x608c 16 > write.bin
Written 16 bytes
root@vmxxjian:/home/xxjianvm/work/nanoDLA/nanoDLA-master/tools/fx2eeprom#

5. 编译 PulseView

5.1 libserialport

$ sudo apt-get install git-core gcc make autoconf automake libtool
$ git clone git://sigrok.org/libserialport
或者
$ git clone https://github.com/sigrokproject/libserialport
$ cd libserialport
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

5.2 libsigrok

$ sudo apt-get install git-core gcc g++ make autoconf autoconf-archive \automake libtool pkg-config libglib2.0-dev libglibmm-2.4-dev libzip-dev \libusb-1.0-0-dev libftdi1-dev libieee1284-3-dev libvisa-dev nettle-dev libavahi-client-dev \libhidapi-dev check doxygen python3-numpy python3-dev python-gi-dev python3-setuptools-git swig default-jdk
$ git clone git://sigrok.org/libsigrok        # https://github.com/sigrokproject/libsigrok$ cd libsigrok
$ ./autogen.sh
$ ./configure
$ make -j4
$ sudo make install

5.3 libsigrokdecode

$ sudo apt-get install git-core gcc make autoconf automake libtool pkg-config libglib2.0-dev python3-dev
$ git clone git://sigrok.org/libsigrokdecode        # https://github.com/sigrokproject/libsigrokdecode
$ cd libsigrokdecode
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

5.4 sigrok-cli

$ sudo apt-get install git-core gcc make autoconf automake libtool pkg-config libglib2.0-dev
$ git clone git://sigrok.org/sigrok-cli        # https://github.com/sigrokproject/sigrok-cli
$ cd sigrok-cli
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

5.5 pulseview

(4GB运存不够,需要开8GB运存,8GB也能跑满,用到一些swap区)

$ sudo apt-get install git-core g++ make cmake libtool pkg-config \libglib2.0-dev libboost-test-dev libboost-serialization-dev \libboost-filesystem-dev libboost-system-dev libqt5svg5-dev qtbase5-dev\qttools5-dev qttools5-dev-tools
$ cd ~/work/nanoDLA
$ git clone git://sigrok.org/pulseview
或者
$ git clone https://github.com/sigrokproject/pulseview
$ cd pulseview
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install

5.6 运行测试

$ sudo -s
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
$ cd /home/xxjianvm/work/nanoDLA/pulseview/build
$ ./pulseview


问题:sr: fx2lafw: Unable to send start command: LIBUSB_ERROR_TIMEOUT.
解决办法:设置虚拟机的usb兼容性为 usb3.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345333.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VGAN实现视网膜图像血管分割(基于pytorch)

背景介绍 VGAN(Retinal Vessel Segmentation in Fundoscopic Images with Generative Adversarial Networks)出自2018年的一篇论文,尝试使用生成性对抗网络实现视网膜血管分割的任务,原论文地址:https://arxiv.org/abs/1706.0931…

【K8s学习】

k8s的简单执行流程: Kubernetes Master(API Server、Scheduler等组件)负责调度Pod到合适的Node上。 当Pod被调度到某个Node时,该Node上的kubelet代理会收到指令并开始执行Pod的生命周期管理任务,包括创建、监控和终止P…

React16源码: React中的schedule调度整体流程

schedule调度的整体流程 React Fiber Scheduler 是 react16 最核心的一部分,这块在 react-reconciler 这个包中这个包的核心是 fiber reconciler,也即是 fiber 结构fiber的结构帮助我们把react整个树的应用,更新的流程,能够拆成每…

c++学习:智能指针的底层作用原理+用法

目录 智能指针作用原理 作用 原理 模仿int*类型的智能指针 模仿所有类型的智能指针(模板) 共享智能指针类 思考;如果多个智能指针同时指向同一个堆空间,怎么只执行一次析构函数进行释放空间 (共享智能指针类&…

ubuntu 20.04下 Tesla P100加速卡使用

1.系统环境:系统ubuntu 20.04, python 3.8 2.查看cuDNN/CUDA与tensorflow的版本关系如下: Build from source | TensorFlow 从上图可以看出,python3.8 对应的tensorflow/cuDNN/CUDA版本。 3.安装tensorflow #pip3 install tensorflow 新版…

MES生产执行系统在生产车间的主要作用

MES生产执行系统提供从生产订单下达到产品完成全流程的优化管理。实现现场设备、执行系统及管理系统的集成,实时监控生产管理各项绩效指标。 如果说ERP是上层决策,生产车间是下层执行,那么MES就是连接管理软件和一线生产的中间桥梁。 MES也…

gitee创建远程仓库并克隆远程仓库到电脑

1、首先点加号新建一个仓库 2、输入仓库名,路径会自动填充,填写简单的仓库介绍,先选择私有,在仓库创建之后,可以改为开源 3、打开建好的仓库 4、复制仓库链接 5、打开一个文件夹(想要存储远程仓库的地址),在…

Mac M2芯片pycharm配置conda python环境

Mac M2芯片pycharm配置conda python环境 详细步骤如下 1、pycharm界面右上方的小齿轮⚙️,进入Setting…状态 2、进入setting界面后,选择左边栏的Project-->python Interpreter,然后选择右边的Add Interpreter 3、进入Add Interpreter后&#xff0c…

四种无监督聚类算法说明

目录 一、K-Means无监督学习(K-Means)的认识-CSDN博客​​​​​​ 二、Mini-Batch K-Means -- Centroid models 三、AffinityPropagation (Hierarchical) -- Connectivity models 四、Mean Shift -- Centroid models 无监督聚类是一种机器学习技术&…

11Spring IoC注解式开发(上)(元注解/声明Bean的注解/注解的使用/负责实例化Bean的注解)

注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 注解开发的优点:提高开发效率 注解开发的缺点:在一定程度上违背了OCP原则,使用注解的开发的前提是需求比较固定,变动较小。 1 注解的注解称为元注解 自定义一个注解: package com.sunspl…

Unity中的异步编程【7】——在一个异步方法里播放了animation动画,取消任务时,如何停止动画播放

用一个异步方法来播放一个动画,正常情况是:动画播放结束时,异步方法宣告结束。那如果我提前取消这个异步任务,那在这个异步方法里面,我要怎么停止播放呢?! 一、播放animation动画的异步实现 1…

html+css+Jquery 实现 文本域 文字数量限制、根据输入字数自适应高度

先看效果&#xff1a;初始的效果&#xff0c;样式多少有点问题&#xff0c;不重要&#xff01;重要的是功能&#xff01; 输入后&#xff1a; 根据文字长度&#xff0c;决定文本域长度 限制文字数量 话不多说&#xff0c;直接上代码&#xff01; <!DOCTYPE html> <h…