信号分析软件|开源软件PulseView源码安装macOS版本
PulseView是sigrok项目的开源前端GUI软件,可以查看、分析来自于UART、I2C等协议的信号数据,在调试设备时非常有用。

官网https://sigrok.org/wiki/Mac_OS_X提供了下载链接https://sigrok.org/download/binary/pulseview/PulseView-NIGHTLY.dmg。但是,在我的电脑上(MacOS 14.5)安装后无法正常打开,所以尝试通过源码编译安装该软件,所幸过程比较顺利,编译出的可执行文件能正常运行(如上图即为软件打开后的界面)。
参照帮助页面https://sigrok.org/wiki/Mac_OS_X以下段落:

首先,安装依赖:
brew install libzip libftdi libusb libtool glibmm doxygen autoconf-archive sdcc python3 boost qt pkg-config cmake glib autoconf automake swig check
如果这步没有问题,可以继续往下。
获取安装源码:git clone https://github.com/sigrokproject/sigrok-util.git。不能用帮助页面提供的地址(无法打开)。
源码获取成功后,进入sigrok-util/cross-compile/macosx目录,运行./sigrok-native-macosx。
这个时候很有可能出现llvm、python@2、python@3无法找到的问题。
以我的环境为例,使用brew搜索python:brew search python,结果显示并没有python@2、python@3:

所以,对sigrok-native-macos做了修改,修改后完整代码:
set -e# 安装目录,可以按需调整PREFIX=$HOME/sr_macosx# 下载源码和编译构建的目录,可以按需修改BUILDDIR=./build# 选择可以安装到的python版本,设置软件安装后的python路径PYPATH=$PREFIX/lib/python3.14/site-packages# 根据cpu核数设置编译时的并行数,加快编译过程PARALLEL="-j "`sysctl -n hw.ncpu`# 使用llvm编译(所以要用brew安装llvm)export CC=llvm-gccexport CXX=llvm-g++# 这个没有开启,使用brew无法安装到,执行该脚本后发现,即便不运行这个命令,也不影响结果#SB="scan-build -k -v"# QT的版本,brew search qt的结果中没有qt@5.5,但有qt@5。QTVER=qt@5# 设置Qt5可执行文件的目录,用于cmake查找Qt5的库export PATH="$(brew --prefix $QTVER)/bin:$PATH"P="$PREFIX/lib/pkgconfig"# 原代码文件中有python@2,去掉for FORMULA in libffi python@3 "$QTVER"; doP="$P:$(brew --prefix "$FORMULA")/lib/pkgconfig"done# 增加传递给configure的参数C="$C --prefix=$PREFIX"# 重建构建目录rm -rf $BUILDDIRmkdir $BUILDDIRcd $BUILDDIRGIT_CLONE="git clone --depth=1"# 以下安装:libserialport$GIT_CLONE $REPO_BASE/libserialportcd libserialport./autogen.shmkdir buildcd build../configure $C$SB make $PARALLEL $Vmake install $Vcd ../..# 以下安装:libsigrokmkdir -p $PYPATH$GIT_CLONE $REPO_BASE/libsigrokcd libsigrok./autogen.shmkdir buildcd buildPKG_CONFIG_PATH=$P ../configure $C$SB make $PARALLEL $VPYTHONPATH=$PYPATH $SB make install $V$SB make check $Vcd ../..# 以下安装:libsigrokdecode$GIT_CLONE $REPO_BASE/libsigrokdecodecd libsigrokdecode./autogen.shmkdir buildcd buildPKG_CONFIG_PATH=$P ../configure $C$SB make $PARALLEL $Vmake install $V$SB make check $Vcd ../..# 以下安装:sigrok-firmware$GIT_CLONE $REPO_BASE/sigrok-firmwarecd sigrok-firmware./autogen.shmkdir buildcd build# Nothing gets cross-compiled here, we just need 'make install' basically.../configure $Cmake install $Vcd ../..# 构建:sigrok-firmware-fx2lafw$GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafwcd sigrok-firmware-fx2lafw./autogen.shmkdir buildcd build# 在host上构建fx2lafw固件,不需要交叉编译../configure $Cmake $PARALLEL $Vmake install $Vcd ../..# 构建:sigrok-cli$GIT_CLONE $REPO_BASE/sigrok-clicd sigrok-cli./autogen.shmkdir buildcd buildPKG_CONFIG_PATH=$P ../configure $C$SB make $PARALLEL $Vmake install $Vcd ../..# 构建: PulseView$GIT_CLONE $REPO_BASE/pulseviewcd pulseviewmkdir buildcd buildPKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..$SB make $PARALLEL $Vmake install $V$SB make test $Vcd ../..
记得:如果启用了llvm,则要安装brew install llvm。
该脚本安装了库libserialport、libsigrok、libsigrokdecode,固件sigrok-firmware、sigrok-firmware-fx2lafw,以及GUI软件PulseView、命令行软件sigrok-cli。
sigrok在github上的项目视图:

该脚本执行成功后,切换到$HOME/sr_macosx目录:

至此,PulseView软件安装完成。
PulseView软件安装成功只是第一步(最简单的一步),采集不同总线/协议的数据,要准备相应的设备,在主机上安装设备的驱动,比如nanoDLA(https://github.com/wuxx/nanoDLA),某宝上有售,价格实惠。

由于mac系统没有串口,通常都是用USB转一道,将其它总线协议转换成USB协议数据,例如,设备串口URAT信号数据作为负载通过USB与上位机通信,上位机上需要有一个驱动程序,将这个设备虚拟成URAT设备,应用程序就可以用打开URAT设备的方式与下位机通信。
参考:
https://sigrok.org/wiki/Mac_OS_X
https://github.com/sigrokproject
https://github.com/wuxx/nanoDLA
夜雨聆风