openwifi 全双工 WiFi 传感雷达实战:基于 Self-TX 信号 CSI 的联合雷达与通信(Joint Radar and Communication)
通信网络硬件开发嵌入式【免费下载链接】openwifiopen-source IEEE 802.11 WiFi baseband FPGA (chip) design: driver, software项目地址https://gitcode.com/gh_mirrors/op/openwifi点击查看免费下载openwifi 平台的基带具备全双工Full Duplex能力——WiFi 基带能够接收自己发射的无线信号这一特性使其可以像雷达一样感知周围环境当 TX/RX 两副定向天线对准同一片空间时自发射信号的 CSIChannel State Information信道状态信息会随目标物体的位置变化而实时改变。本指南以 doc/app_notes/radar-self-csi.md 为骨架完整演示如何在 openwifi SDR 板卡上搭建自发自收的 CSI 雷达系统读者将掌握驱动/FPGA 包构建部署、侧信道 CSI 采集、802.11 数据包注入、实时 waterfall 可视化与离线 Matlab 分析的一整套实战方案。全双工自感知openwifi 的雷达原理传统 WiFi 网卡在发射时接收链路是关闭的因此无法观察自己发射信号的回波。openwifi 打破了这个限制其可编程基带允许接收机监听自身的发射信号就像雷达发射脉冲并接收反射回波一样。将两副定向天线分别接在 openwifi 的 TX 端口和 RX 端口让发射信号经目标物体反射后进入接收链路此时提取到的 CSI 就包含了目标物体对无线信道的影响——物体移动、离开或进入波束覆盖范围都会反映在 CSI 幅度/相位的连续变化中。上图展示了 openwifi 雷达自 CSI 采集的核心思路TX 天线持续注入自发射的 802.11 数据包RX 天线接收被目标反射的信号基带 OFDM 接收机解码后由 side channel侧信道提取 CSI 并上传到上位机。这一联合雷达与通信joint radar and communication能力是 openwifi 平台独有的优势之一——同一套硬件、同一条射频链路既承担无线通信又兼作环境感知传感器。提示本文假设读者已经理解 openwifi 的基础 CSI 采集机制。建议先阅读基础应用笔记 doc/app_notes/csi.md侧信道架构、CSI 信息格式、条件捕获配置再进入本文的全双工雷达实战。实验拓扑与前置准备雷达实验的最小系统包含三个角色角色位置地址/端口作用SDR 板卡板卡端192.168.10.122SSH运行 WiFi 收发、侧信道驱动与包注入电脑以太网直连192.168.10.1静态 IP实时显示与离线分析 CSIUDP 数据链路板卡 → 电脑目标端口 4000侧信道 CSI 数据上传操作步骤给 SDR 板卡上电。用网线将电脑与 SDR 板卡直连电脑配置静态 IP192.168.10.1。打开终端 SSH 登录板卡ssh root192.168.10.122 # 密码openwifi在电脑上预装实时绘图依赖仅在电脑侧需要sudo apt install python3-numpy python3-matplotlib python3-tk构建驱动与 FPGA 包并部署到板卡雷达实验需要把最新版本的 openwifi 驱动与 FPGA 镜像打包后上传到板卡。在电脑上克隆/更新 openwifi 与 openwifi-hw-img 仓库后按以下步骤构建export XILINX_DIRyour_Xilinx_install_directory # 示例export XILINX_DIR/opt/Xilinx # Xilinx 安装目录应包含类似 Downloads、Vitis 等子目录 export OPENWIFI_HW_IMG_DIRyour_openwifi-hw-img_directory # 通过 git clone 获得 open-sdr/openwifi-hw-img 仓库后所在的目录 export BOARD_NAMEyour_board_name # 具体的 BOARD_NAME 定义请查看仓库根目录 [README.md](https://link.gitcode.com/i/bca0bb97743df2750f18612117c21933) cd openwifi/user_space ./drv_and_fpga_package_gen.sh $OPENWIFI_HW_IMG_DIR $XILINX_DIR $BOARD_NAME构建成功后把生成的驱动/FPGA 包以及本次实验用到的用户空间源码上传到板卡scp drv_and_fpga.tar.gz root192.168.10.122:openwifi/ scp ./side_ch_ctl_src/side_ch_ctl.c root192.168.10.122:openwifi/ scp ./inject_80211/* root192.168.10.122:openwifi/inject_80211/其中drv_and_fpga_package_gen.sh是 user_space/drv_and_fpga_package_gen.sh 提供的打包脚本side_ch_ctl.c与inject_80211目录分别来自 user_space/side_ch_ctl_src/ 和 user_space/inject_80211/。板卡端配置监视模式、侧信道驱动与 CSI 过滤在板卡的/root/openwifi目录下依次执行cd /root/openwifi/ ./wgd.sh drv_and_fpga.tar.gz # 解包并加载驱动与 FPGA 镜像 ./monitor_ch.sh sdr0 1 # 将 sdr0 置于监视模式工作信道 1 insmod ./drv_and_fpga/side_ch.ko # 加载侧信道内核模块 gcc -o side_ch_ctl side_ch_ctl.c # 在板卡上就地编译侧信道控制程序 ./side_ch_ctl wh1h4001 # 开启 addr2源地址匹配过滤 ./side_ch_ctl wh7h4433225a # 只采集来自 XX:XX:44:33:22:5a 的数据包 CSI ./sdrctl dev sdr0 set reg xpu 1 1 # 解除基带自接收静音接收 openwifi 自己的 TX 信号 ./side_ch_ctl g0 # 以最小间隔持续抓取 CSI各命令的作用说明./wgd.sh drv_and_fpga.tar.gz调用 user_space/wgd.sh完成驱动模块加载与 FPGA 比特流配置。./monitor_ch.sh sdr0 1使用 user_space/monitor_ch.sh 把无线接口切入监视模式并指定信道。雷达实验中信道号要与后文注入数据包的 radiotap 信道保持一致。insmod ./drv_and_fpga/side_ch.ko加载侧信道驱动。源码 driver/side_ch/side_ch.c 中dev_probe会初始化 Netlink 内核 socket、将SIDE_CH_REG_CONFIG写为最严格条件0x7001先禁止一切采集再放宽为0x0001默认允许所有包并完成tx_dma_s2mmDMA 通道的申请用于从 FPGA 侧信道核拉取 CSI 数据。./side_ch_ctl wh1h4001/./side_ch_ctl wh7h4433225a配置条件捕获确保只接收来自我们自己的包注入器后文会设定源地址的数据包 CSI避免环境中的其他 WiFi 流量干扰雷达测量。关于whXhY参数格式的完整说明见下文条件捕获与采样间隔配置小节。./sdrctl dev sdr0 set reg xpu 1 1雷达实验最关键的一步。默认情况下 openwifi 的接收基带在自身发射期间会被静音mute防止自干扰向 xpu 寄存器 1 写入 1 即解除该静音使基带能够接收自己的发射信号。相关实现可参考 driver/xpu/xpu.c 中围绕 xpu 寄存器的读写接口XPU_REG_SRC_SEL等。./side_ch_ctl g0以g前缀的获取命令持续拉取侧信道信息。g后面跟的数字是以毫秒为单位的抓取间隔g0表示间隔为 0即以硬件允许的最快速度连续采集不带数字的g默认间隔为 100ms见 user_space/side_ch_ctl_src/side_ch_ctl.c 中parse_para_string对interval_ms的处理。执行./side_ch_ctl g0后若链路正常终端会周期性打印类似下面的计数loop 64 side info count 61 loop 128 side info count 99 ...其中第二个数字61、99……是累计采集到的侧信道信息条数——只要它持续递增就说明 CSI 正在从板卡流向电脑。注入自发射的 802.11 数据包另开一个 SSH 会话登录板卡编译并运行包注入工具让板卡持续发射自己的雷达探测信号cd /root/openwifi/inject_80211 make ./inject_80211 -m g -r 4 -t d -e 0 -b 5a -n 99999999 -s 20 -d 1000 sdr0802.11n 模式的注入命令为./inject_80211 -m n -r 4 -t d -e 8 -b 5a -n 99999999 -s 20 -d 1000 sdr0inject_80211是 openwifi 提供的 802.11 原始帧注入工具源码位于 user_space/inject_80211/inject_80211.c通过 pcap 向监视模式接口注入携带自定义 radiotap 头与 IEEE 802.11 MAC 头的帧。常用参数含义如下表参数长选项含义雷达示例取值-m--hw_mode硬件模式a/g/ng或n-r--rate_index速率/MCS 索引0~74g/a 对应 24 Mbpsn 对应 MCS 4-t--packet_type帧类型m管理 /c控制 /d数据 /r保留d数据帧-e--sub_type子类型十六进制。数据帧0Data、8QoS-Data 等0g/8n-a--addr1addr1目标/接收地址十六进制默认-b--addr2addr2发送地址十六进制5a-i--sgi_flag短保护间隔开关0/1仅 n 模式有效默认-n--num_packets注入包总数99999999近似无限持续注入-s--payload_size载荷字节数20-d--delay包间延迟微秒10001ms 一个探测包参数细节可对照源码中的usage()输出其中 g/a 模式的速率表为 6/9/12/18/24/36/48/54 Mbpsu8aRatesToUsen 模式则直接使用 MCS 索引并可选 SGI。-b 5a设置的源地址与前面wh7h4433225a的过滤目标配合确保侧信道只对雷达自己的探测包采集 CSI。两个 SSH 会话并行运行时第一个会话运行side_ch_ctl g0中的计数应持续增长说明自发射数据包正被接收链路解码并产生 CSI。实时 CSI 可视化waterfall 与均衡器输出回到电脑注意不要在 SSH 会话里执行运行实时显示脚本cd openwifi/user_space/side_ch_ctl_src python3 side_info_display.py 8 waterfall脚本运行后会弹出多幅实时更新的图CSI 幅度/相位、CSI waterfall瀑布图、均衡器输出Equalizer out以及频率偏移frequency offset。8是num_eq均衡器输出数量waterfall是任意非空参数用于开启 CSI 瀑布图模式。下图是文档作者在两副定向天线Tx/Rx前起身离开座位时瀑布图中 CSI 发生的明显变化——这正是目标物体移动 → 信道状态改变的直接可视化证据从数据通路看CSI 的实时流转为相关源码已在上文给出路径FPGA 侧信道核DMA→ side_ch.koNetlink→ side_ch_ctlUDP 4000 端口 → 电脑 side_info_display.pyUDP 监听 192.168.10.1:4000user_space/side_ch_ctl_src/side_ch_ctl.c 通过 Netlink 向内核驱动请求侧信息随后用sendto()将数据以 UDP 发往目标地址192.168.10.1:4000-s参数可改目标 IP。user_space/side_ch_ctl_src/side_info_display.py 在电脑上bind端口 4000 接收 UDP 数据解析出 timestamp、freq_offset、csi、equalizer并实时绘制其parse_side_info()函数还实现了子载波顺序重排FPGA 输出为倒序脚本将其还原为标准 OFDM 子载波顺序。离线分析side_info.txt 与 Matlab 脚本实时显示期间所有 CSI 数据会同时落盘保存到文件side_info.txt由side_info_display.py在运行目录下创建并追加写入。这使得实验结束后仍可进行精确的离线分析。仓库提供了 Matlab 离线分析脚本 user_space/side_ch_ctl_src/test_side_info_file_display.mtest_side_info_file_display % 默认参数num_eq8文件 side_info.txt查看第 1 条脚本的函数签名为function [timestamp, csi, freq_offset, equalizer_out] test_side_info_file_display(num_eq, side_info_filename, idx_to_check)它按每包一条的结构解析side_info.txt还原 64 位 TSF 时间戳、频率偏移、56 个子载波的复数 CSI 与均衡器输出并绘制 CSI 幅度/相位、均衡器星座散点、时间戳序列与频偏曲线还可通过idx_to_check参数单独查看指定数据包索引的 CSI 细节图题中会同时打印该包的时间戳。上图即雷达实验后使用该 Matlab 脚本离线分析得到的 CSI 图形。用户应根据自己的需求研读 Python 与 Matlab 脚本掌握每包 CSI 数据结构的确切字段布局。深入理解 CSI 数据结构与侧信道架构雷达自 CSI 复用的正是 openwifi 的side channel侧信道基础设施其详细架构模块划分与源码文件对应关系与信息格式见基础笔记 doc/app_notes/csi.md。此处给出与自雷达分析最相关的数据格式要点侧信道每条信息由若干 64bit 元素组成源码 driver/side_ch/side_ch.h 与 user_space/side_ch_ctl_src/side_info_display.py 中的常量保持一致CSI_LEN 56单条 CSI 的长度56 个子载波含数据与导频EQUALIZER_LEN 52均衡器输出长度非 HT 模式本应为 48FPGA 会填充 4 个{32767, 32767}补齐到 52HEADER_LEN 2头部元素数量时间戳 频率偏移。每条完整侧信道信息的 DMA 符号数计算公式num_dma_symbol_per_trans HEADER_LEN CSI_LEN num_eq * EQUALIZER_LEN单个 64bit 元素的字段含义timestamp64bit TSF 定时器值与 tcpdump、wireshark 等抓包工具或 openwifi dmesg 打印中看到的时间戳同源是数据包 ↔ CSI关联的唯一身份标识freq_offset仅使用低 16bitPython 脚本中的换算关系为(20e6 * int16(value) / 512) / (2π)单位为 Hzcsi 与 equalizer仅使用前两个 16bit 分别承载 I/Q实部/虚部剩余两个 16bit 保留给未来的多天线场景。side_ch.ko加载时还可通过模块参数控制采集内容见 driver/side_ch/side_ch.cinsmod side_ch.ko num_eq_init3 # 0~8默认 8每个均衡器输出 52 个复数 insmod side_ch.ko iq_len_init8187 # 若大于 0 则进入 IQ 捕获模式CSI 被禁用雷达实验不使用条件捕获与采样间隔配置whXhY 详解默认g命令会采集 OFDM 接收机解码出的所有数据包的 CSI。若只想采集满足特定条件FC 帧控制字段、addr1 目标地址、addr2 源地址的包须在side_ch_ctl g之前下发配置命令。配置命令的通用格式为whXhYwwrite写操作hhardware硬件寄存器X寄存器索引h后接十六进制Y寄存器值十六进制。开启/关闭条件捕获寄存器 X1值 Y 的位定义bit11~bit0 固定为001bit12 为 FC 匹配开关bit13 为 addr1 匹配开关bit14 为 addr2 匹配开关。例如# 仅匹配 FC ./side_ch_ctl wh1h1001 # 仅匹配 addr2源地址—— 雷达实验常用 ./side_ch_ctl wh1h4001 # 同时匹配 FC 和 addr1目标地址 ./side_ch_ctl wh1h3001 # 关闭条件捕获采集所有包 ./side_ch_ctl wh1h0001指定匹配目标对应寄存器# 指定 FC 匹配目标寄存器 5 ./side_ch_ctl wh5hY # Y 为 FC 值十六进制 # 指定 addr1目标地址匹配目标寄存器 6 ./side_ch_ctl wh6hY # 指定 addr2源地址匹配目标寄存器 7 ./side_ch_ctl wh7hY # Y 为 MAC 地址十六进制值只需后 32bit # 例如 56:5b:01:ec:e2:8f 应输入 01ece28f上述寄存器编号与 driver/side_ch/side_ch.h 中的地址定义一一对应SIDE_CH_REG_CONFIG_ADDR1、SIDE_CH_REG_FC_TARGET_ADDR5、SIDE_CH_REG_ADDR1_TARGET_ADDR6、SIDE_CH_REG_ADDR2_TARGET_ADDR7。采样间隔side_ch_ctl g默认每 100ms 采集一次使用side_ch_ctl gN可改为每N*1ms采集一次。雷达实验中为了获得密集的时间采样常使用g0让抓取循环以最快速度运行interval_ms0时usleep(0)相当于立即返回参见 user_space/side_ch_ctl_src/side_ch_ctl.c 主循环。num_eq 配置控制均衡器输出数量num_eq均衡器输出数量用于在不需要太多均衡器信息时降低数据量合法取值为0~8。修改后必须在三个位置保持一致加载内核模块时默认 8无需显式指定insmod side_ch.ko num_eq_init3启动 Python 显示脚本时side_info_display.py 3使用 Matlab 脚本时将脚本中的num_eq变量改为同样的值如 3。对齐原因从数据格式即可看出每条侧信道信息的大小为2 56 num_eq*52个 64bit 符号驱动、Python 解析器与 Matlab 解析器必须使用相同的num_eq才能正确切分数据包边界。将 CSI 映射到 WiFi 数据包若需要把 CSI 与具体的 WiFi 数据包关联起来做法是在采集 CSI 的同时用 tcpdump/wireshark 等工具抓取 WiFi 包然后以TSF 时间戳为键进行匹配——该时间戳是同一个数据包及其 CSI 的唯一共同身份标识。openwifi 社区对此有专门的讨论说明可查阅项目讨论区的相关主题了解详细映射方法。与其他工作模式的组合使用侧信道 CSI 采集并不局限于监视模式在 AP-Client 或 ad-hoc 模式完成正常通信功能后同样可以执行insmod side_ch.ko与./side_ch_ctl g来提取 CSI。这意味着联合雷达与通信既能以专用雷达模式运行本文演示的自发自收也能叠加在真实通信链路上在收发业务数据的同时持续感知环境。常见问题与调试要点side_ch_ctl g0打印的计数不增长检查wh1h4001/wh7h...过滤条件是否与注入器的源地址一致确认两个 SSH 会话分别在运行注入与采集确认sdrctl dev sdr0 set reg xpu 1 1已执行未解除自接收静音时自己的发射信号不会进入接收链路。电脑端收不到数据确认电脑 IP 为192.168.10.1side_info_display.py与side_ch_ctl的 UDP 端口一致均为 4000必要时用-s参数指定板卡发往的服务器 IPside_ch_ctl g -s 192.168.10.2。雷达感知目标不清晰两副天线应为定向天线且波束覆盖同一空间可降低-d包间隔提高探测速率或使用g0提高时间采样密度随后用离线 Matlab 脚本逐包查看 CSI 突变时刻。需要更多 CSI 维度时可按上文调整num_eq0~8在数据量与均衡器细节之间取舍并保持驱动、Python、Matlab 三处配置一致。赞分享通信网络硬件开发嵌入式【免费下载链接】openwifiopen-source IEEE 802.11 WiFi baseband FPGA (chip) design: driver, software项目地址https://gitcode.com/gh_mirrors/op/openwifi点击查看免费下载相关推荐openwifi CSI技术实战信道状态信息采集与雷达感知应用终极指南openwifi CSI技术实战信道状态信息采集与雷达感知应用终极指南 在无线通信领域 信道状态信息CSI 已成为WiFi感知和雷达应用的关键技术。op通信网络硬件开发嵌入式RuView ADR-063 解读60 GHz mmWave 雷达与 WiFi CSI 融合的端侧传感架构RuView ADR 063 解读60 GHz mmWave 雷达与 WiFi CSI 融合的端侧传感架构 导读 本文以 RuView 仓库中的 ADR 06人工智能计算机视觉物联网智能家居后端嵌入式上一篇Sandboxie容器编排安全策略多集群管理方案下一篇RedwoodJS Firebase Authentication 接入指南从 setup 命令到 Email/Password 登录实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

如何在5分钟内搭建Cloudflare OS工作空间?新手必备的完整指南

如何在5分钟内搭建Cloudflare OS工作空间?新手必备的完整指南

如何在5分钟内搭建Cloudflare OS工作空间?新手必备的完整指南 【免费下载链接】cloudflare-os Agent workspace built on Cloudflare Workers for creating documents, building apps, and running agents with your company’s context and systems. 项目地址: h…

2026/10/4 9:53:40 阅读更多 →
插件系统原理与加载失败排查:从IAR、MusicFree到web boot

插件系统原理与加载失败排查:从IAR、MusicFree到web boot

干嵌入式开发的调 IAR,偶尔会看到插件相关的提示;用 MusicFree 听歌的,装个音源插件失败也会一头雾水;做前端或者维护插件化平台的,可能天天跟harness failed to load plugins web boot: 2 entries did not activate l…

2026/10/4 9:53:40 阅读更多 →
插件加载失败排查指南:从did not activate到根治

插件加载失败排查指南:从did not activate到根治

先说实话:过去一周我至少收到了三条跟plugins相关的求助消息,报错长得几乎一模一样——Failed to load plugins web boot: 2 entries did not activate,后面还跟着一串奇怪的包名,比如linxin666/dsh-p、huayu-yuan。问的人多了&am…

2026/10/4 9:53:40 阅读更多 →

最新新闻

OpenClaw Telegram 通道实战指南:Bot API 接入、群组策略、草稿流式输出与 webhook 部署

OpenClaw Telegram 通道实战指南:Bot API 接入、群组策略、草稿流式输出与 webhook 部署

人工智能AI Agent即时通讯后端本地部署语音 【免费下载链接】openclaw-cn 中文社区版OpenClaw,同原版保持定期更新,已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。🦞 项目地址&am…

2026/10/4 10:38:17 阅读更多 →
OpenShell:跨平台终端体验重构框架,统一Linux/macOS/Windows/WSL开发工作流

OpenShell:跨平台终端体验重构框架,统一Linux/macOS/Windows/WSL开发工作流

1. OpenShell 是什么?它不是 Shell,而是一套跨平台终端体验重构方案OpenShell 这个名字乍一听容易让人联想到“开源的 Shell”,比如 bash、zsh 或 fish——但实际完全不是一回事。它既不是 Linux 的 shell 解释器,也不是 macOS 的…

2026/10/4 10:38:17 阅读更多 →
基于SpringBoot的献血管理系统设计与实现全解析

基于SpringBoot的献血管理系统设计与实现全解析

每年这个时候,都有一批计算机专业的同学被毕设选题折磨得焦头烂额。如果你手里正好拿着“基于SpringBoot献血管理系统的设计与实现”这个题目,或者正在观望这类“管理系统”方向的课题,那这篇内容应该能帮到你。我前前后后带过不少做类似项目…

2026/10/4 10:38:17 阅读更多 →
GPUStack 性能实验:GLM-4.5-Air 在 NVIDIA A100 上的吞吐量优化实践

GPUStack 性能实验:GLM-4.5-Air 在 NVIDIA A100 上的吞吐量优化实践

后端人工智能模型推理服务集群管理可观测性 【免费下载链接】gpustack A GPU cluster manager for high-performance AI model serving (vLLM, SGLang) and on-demand SSH-accessible GPU instances. 项目地址: https://gitcode.com/gh_mirrors/gp/gpustack 点击查看…

2026/10/4 10:38:16 阅读更多 →
不装ROS也能解析bag文件:Python轻量提取机器人传感器数据

不装ROS也能解析bag文件:Python轻量提取机器人传感器数据

做数据分析的同行应该都有过这种经历:别人给你发了一个后缀是.bag的文件,告诉你这是机器人跑完实验录下来的数据包,里面是传感器和算法输出的原始记录,让你帮忙去里面提取点东西出来。结果你打开电脑一看,这玩意儿既不…

2026/10/4 10:38:16 阅读更多 →
快速设计Cache的四大支柱:容量、映射、写策略与替换算法

快速设计Cache的四大支柱:容量、映射、写策略与替换算法

1. 什么是“快速设计一个cache”——不是写个LRU就叫设计“如何快速设计一个cache”这个标题,乍看像程序员面试题,实则藏着整个计算机体系结构里最精妙又最常被低估的工程权衡。它不等于“用Python写个字典加个淘汰策略”,也不等于“在Redis里…

2026/10/4 10:37:15 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →