Posts


Jan. 31, 2025

配置Neovim LSP支持交叉编译环境下的Linux内核

很长一段时间里我都在用VSCode和C/C++插件编写Linux的内核模块,使用起来也没有什么问题,但是时间一长,插件就会逐渐积累几个GB甚至几十个GB的缓存文件,而且插件运行时还会占据大量内存和CPU资源。为了节约内存,我迁移到了Vim,之后又改到了Neovim。

More...

Dec. 30, 2024

将OpenWIFI移植到ADRV9002

OpenWIFI是一套基于FPGA SDR的开源WIFI协议平台。

OpenWIFI的优势在于可以根据需要充分的定制,都够便利地实现一般WIFI网卡不具备的功能,所以在很多基于WIFI的研究中,会选择在OpenWIFI的平台上做, 比较常见的就是利用CSI进行环境探测, 另外就是把OpenWIFI作为WIFI探测设备使用,通过OpenWIFI可以直接提取IQ流,更可以直接在FPGA内计算

为了让OpenWIFI有更好的性能,我选择尝试将OpenWIFI从AD9361移植到ADRV9002上。这里实际用的硬件是一块搭载XZCU15EG芯片的开发板(天嵌通途TQ15EG)+ADRV9002的官方验证板ADRV9002BBZC。开发板是参考ZCU102设计的,它的FMC0和ZCU102完全兼容。

More...

May. 13, 2024

[交叉]编译Linux内核时缺少OpenSSL库

编译内核时提示<openssl/bio.h>缺失,原因是编译的机器上没有安装libssl库。

More...

Aug. 16, 2023

TrueNAS SCALE 23.10-BETA.1 更新体验

昨天TrueNAS SCALE发布了23.10-BETA.1版本,更新内容以新UI和各项功能的完善为主。

TrueNAS SCALE 23.10 主要更新

我在第二天就升级了新版本。就以往跨大版本升级到BETA的经验来看,预想过程一定不会顺利,而且BETA版本会有较多的明显BUG。

More...

Jun. 17, 2023

I2S从机接收Verilog模块

分享一个I2S从机接收的Verilog模块,用在了ZYNQ里,音频AD用的是WM87825,主模式24bit,I2S格式,工作得还比较稳定。

More...

Dec. 18, 2022

在TrueNAS SCALE中使用virsh命令管理KVM虚拟机

默认情况下,直接在TrueNAS SCALE里使用virsh来操作KVM的话,会报错:

root@truenas[~]# virsh list
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

这是因为TrueNAS没有在默认的位置创建unix sock文件。而是放在了/run/truenas_libvirt/libvirt-sock

More...

Nov. 22, 2022

传输线理论的实质(《射频电路设计——理论与应用》(第二版)笔记)

传输线理论的实质

频率的提高意味着波长的减小,对于射频电路来说,随之而来的是,当波长可与分离电路元件的几何尺寸相比拟时,电压和电流都将随着空间位置不同而变化,即必须把它们看成传输的波,在这种情况下,即使一个负载为0欧姆的传输线也可能在某个频率下呈断路状态。因为基尔霍夫电压和电流定律都没有考虑到这种空间变化,所以不再适用。

More...

Oct. 27, 2022

通过式短波功率计开发笔记 铁氧线圈定向耦合器设计

通过式功率计

通过式功率计的结构实际上是由一个弱定向耦合器和峰值检波器及显示功率表构成。

功率计可用于对天线或射频传输功率的测量,如检测天线隔离度,通过定向耦合器的端口功率检测,得到发射天线端口输入功率和接收天线端口输出功率,根据隔离度定义计算天线隔离度。

More...

Oct. 21, 2022

S11测量仪(便携中波广播天线调谐网络阻抗检测装置)- 基于NanoVNA设计

一、设计目的

本设计基于网络分析仪的工作原理,借鉴开源的简易矢量网络分析仪的软硬件方案,进行优化和裁剪,设计制作基于STM32F103的简易射频阻抗检测装置。

二、设计原理

2.1 矢量网络分析的基本原理

为了使整个通信系统系统能更高效率地传送、发射或接收射频功率,通信系统中的所有组件,如传输线、天线和放大器等器件必须对信号源呈现良好的阻抗匹配。当两个连接之间的输入与输出阻抗的实部与虚部都达不到理想的状态时,便出现阻抗失配[1]。

More...

Aug. 13, 2022

STM32CubeIDE使用DAP调试器时用到的.cfg配置文件

以下配置在STM32F103上经实验可用,BOOT0悬空即可。

source [find interface/cmsis-dap.cfg]

set WORKAREASIZE 0x8000

transport select &quot;swd&quot;

set CHIPNAME STM32F103RCTx
set BOARDNAME genericBoard

# Enable debug when in low power modes
set ENABLE_LOW_POWER 1

# Stop Watchdog counters when halt
set STOP_WATCHDOG 1

# STlink Debug clock frequency
set CLOCK_FREQ 8000

# Reset configuration
# use hardware reset, connect under reset
# connect_assert_srst needed if low power mode application running (WFI...)
#  reset_config srst_only srst_nogate connect_assert_srst
# set CONNECT_UNDER_RESET 0
# set CORE_RESET 0

# ACCESS PORT NUMBER
set AP_NUM 0
# GDB PORT
set GDB_PORT 3333

# BCTM CPU variables

source [find target/stm32f1x.cfg]

将上述内容保存为自己的.cfg文件。

More...