尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
树莓派Pico C/C++开发环境搭建:CLion+SDK+OpenOCD调试实战
最近在调试一块树莓派 Pico 的小项目需求不算复杂多路 GPIO 采集加串口输出但这块板子的 C/C 开发方式折腾了我好几个晚上。最早是命令行加 Makefile 的路子写完代码切终端、敲 make、拖文件循环往复后来索性花时间把 CLion 拉进来给 Pico 搭了一整套闭环开发环境。编译、烧录、断点调试全部并到一个 IDE 里体感提升非常明显。这篇就把搭建的完整过程、背后的核心原理、以及我踩过的那些坑一并整理出来。不管你是第一次接触 Pico 的嵌入式新手还是已经在命令行下跑通过官方例程、想给自己配一套更顺手的 IDE 工具链的老手这篇应该都能对应上。整体思路很直接CLion 作为工程入口Pico SDK 提供硬件抽象和库函数arm-none-eabi-gcc 做交叉编译器CMake 组织构建OpenOCD 桥接调试器。下面按选型、原理、实操、排坑的顺序逐个拆开讲。1. 为什么选 CLion 做 Pico 开发先不下结论我从实际体验角度说说三条主流开发路线的差异以及最后为什么留在 CLion。1.1 三条路线对比Pico 的 C/C 开发方式大致可以分成三类官方命令行工具链、VS Code 加插件组合、以及 CLion 这类完整 IDE。各有各的适用场景但日常开发效率差别不小。路线上手成本调试体验代码导航适合场景官方命令行 Makefile中低手动起 GDB基本为零快速验证、CI 构建VS Code 插件低中依赖插件质量一般轻量编辑、跨平台CLion中高高图形化断点/变量/寄存器很强跳转/重构/补全持续开发、多人协作命令行方案最朴素官方文档里也默认推荐这种方式。它不依赖任何图形界面资源对 Linux 服务器或 CI 环境很友好但你要自己管理编译参数、自己在终端里开 OpenOCD、自己记 GDB 命令写了半小时代码可能有一半时间在跟工具链较劲。VS Code 的方案配置灵活、插件生态丰富调试体验比命令行好不少但调试器配置比较分散经常要在 launch.json 里手工折腾遇到插件版本变化还容易莫名失效。CLion 的优势在于它原生把 CMake 工程当作一等公民代码索引、重构、头文件跳转这些功能本身就很完整再加上图形化的 GDB 调试界面基本把整个开发链路压缩在了一个窗口里。我最终选择 CLion不是因为它功能最全而是它把“看代码、改代码、编译、烧录、调试”这些高频操作的密度降到了最低。嵌入式开发最烦的就是反复切换工具一天下来大多数时间浪费在等编译和找配置上CLion 用熟了以后这部分消耗明显小了很多。1.2 环境的核心构成先给这套环境画个轮廓方便后面能对号入座。一个可用的 Pico C/C 开发环境通常由几条各司其职的工具组成CLionIDE 入口负责 CMake 管理、代码编辑、编译调用和 GDB 交互界面。Pico SDK芯片的硬件抽象层提供启动代码、标准库封装、外设驱动库和常用组件。arm-none-eabi-gcc交叉编译工具链让 x86 主机能够生成面向 ARM Cortex-M0 指令集的固件。CMake构建系统负责解析 CMakeLists.txt、组织编译流程CLion 对它有原生支持。OpenOCD调试桥接程序把 GDB 的调试指令翻译成 SWD 协议让电脑能够通过调试器访问 Pico 内部。这五样东西组合起来才是一条完整的链路。缺了任何一个要么编不出固件要么烧不进去要么断不了点。下面我会把每个环节为什么存在、之间怎么协作讲清楚再去动手装环境会顺畅很多。2. 先搞懂原理交叉编译、SDK 与 CMake 的三人转很多人搭环境失败不是命令敲错而是不理解每个工具在链条中的位置。遇到报错也不知道是哪一环出了问题。正式开始配置前我习惯先把原理过一遍。2.1 交叉编译不是魔法是门当户对Pico 的核心芯片是 ARM Cortex-M0而你的电脑大概率是 x86_64 架构。两者指令集完全不同x86 上编译出来的机器码Cortex-M0 根本读不懂。所谓交叉编译就是让运行在 x86 主机上的编译器生成面向 ARM 目标的指令。这就像你用中文版键盘写一篇英文文档表面上是同一双手在打字实际底层已经切换了键位映射目标是完全不同的语言体系。这里必须用arm-none-eabi-gcc而不是系统默认的 gcc原因就在编译器本身。arm表示目标架构none表示目标平台没有操作系统eabi表示遵循嵌入式二进制接口规范。如果你的工程继续使用默认编译器生成的固件会直接变成一坨 x86 指令Pico 上电后什么都跑不起来。那为什么不直接上 MicroPython说实话如果只是点个灯、读个温湿度MicroPython 确实更快脚本一拖就能跑。但一旦涉及精确时序、高频中断、多核通信或者跑 RTOSMicroPython 的解释执行开销和库的深度就明显不够用了。C/C 能把性能、可控性和周边生态都握在手里这也是很多中大型 Pico 项目默认选 C/C 的根本原因。2.2 Pico SDK 到底提供什么Pico SDK 不是一堆官方示例代码那么简单它是一套完整的开发库。官网 clone 下来之后的目录结构里能看到src、lib、cmake等模块其中每个模块分别解决不同问题。bootrom与启动代码提供芯片上电后的第一条指令和运行时初始化这是每个固件执行的起点。pico_stdlib把常用头文件汇总成一个入口#include pico/stdlib.h之后基本的外设操作就都有了。硬件抽象层gpio、pwm、adc、i2c、spi、uart、dma等驱动封装让你不用直接跟寄存器打交道。高级组件多核通信multicore、Flash 读写、看门狗、硬件定时器、以及 Pico W 的无线协议栈支持。第三方依赖默认捆绑了tinyusb等子模块保证 USB 设备功能能够直接编译使用。SDK 解决了“我能用什么”的问题接下来就是“我要怎么把这些库组织起来”的问题这一步交给 CMake。2.3 CMake 在其中扮演的角色CMake 本身不做编译它是整个构建过程的组织者。它读取工程根目录下的 CMakeLists.txt根据里面声明的目标、依赖、编译选项生成一套供具体编译器执行的构建规则。CLion 之所以能顺滑管理工程也正因为它原生支持 CMake打开工程后会自动解析目标把可执行文件、编译选项、宏定义直接映射到 IDE 的界面上。在使用 Pico SDK 时有几个关键函数和变量要特别记牢pico_sdk_init()在 CMakeLists.txt 中调用它会导入整个 SDK 的构建配置和子模块相当于把所有库的入口都拉进来。pico_add_extra_outputs()在可执行目标之后调用生成.uf2、.hex、.bin、.dis等副产品文件。.elf用于调试器.uf2用于拖拽烧录.dis用于查看汇编。PICO_SDK_PATH定位 SDK 根目录的环境变量工程脚本通过它找到 SDK。PICO_BOARD指定板型比如pico、pico_w不同板型会启用不同外设配置。把这个铁三角关系理清之后后面配置 CLion 和写 CMakeLists.txt 就不会稀里糊涂。再遇到报错你第一反应会知道是 SDK 路径没对上、还是编译器选错、还是 CMake 初始化顺序出了问题。3. 完整实操从零搭好整套环境原理部分说完进入动手环节。下面会从物料准备开始一直讲到断点调试尽量把每一步的来龙去脉和常见坑都讲到位。3.1 物料清单先别急着敲命令把东西备齐。硬件方面你至少需要一张 Raspberry Pi Pico 或 Pico W 开发板。一根能传数据的 USB 线。注意是数据线不是只有充电功能的那种否则后面会反复怀疑硬件坏了。如果想调试还需要一个 SWD 调试器或者干脆用第二块 Pico 刷成调试探针这个后面单独说。软件方面清单如下CLion版本建议 2023.2 或更新新版对嵌入式工具链的支持更完善。Git用于拉取 SDK。Pico SDK通过 Git 克隆并更新子模块。arm-none-eabi-gcc 交叉编译工具链。CMakeCLion 一般自带但单独装一个也没坏处。OpenOCD仅在调试时需要。看起来不少但实际装起来并没有想象中复杂。核心其实是编译器路径和 SDK 路径两点把这两个指对了后面一切都会顺。3.2 各平台环境准备不同操作系统的准备步骤略微有差异我分别列一下。Windows 下先去 ARM 官网下载 GNU 工具链安装包装的时候务必勾上“Add to PATH”不然 CLion 找不到编译器。装完打开新的命令行窗口验证一下arm-none-eabi-gcc --version能正常输出版本号就说明这一步过了。接着装 Git默认选项即可。如果已经安装了用git --version确认。CMake 方面你可以在系统里单独装一份也可以直接依赖 CLion 内置的那个后面在 Toolchain 配置里能选。Linux以 Ubuntu/Debian 系为例一条命令装齐大部分依赖sudo apt update sudo apt install -y build-essential cmake git gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc-arm-none-eabi-newlib注意不同发行版的软件包命名可能有差异装完同样用arm-none-eabi-gcc --version验证。macOS 如果用 Homebrew可以直接brew install cmake arm-none-eabi-gcc git这一步也不复杂无非是把工具链用系统包管理器补齐。真正容易出问题的是下一步SDK 的拉取。3.3 克隆 SDK 并处理子模块SDK 是整个工程的基石它本身是一个 Git 仓库而且带了不少子模块。很多人在这里省事直接git clone完就跑了结果编译到一半报错找不到某些头文件再回头补就浪费不少时间。正确操作是git clone https://github.com/raspberrypi/pico-sdk.git cd pico-sdk git submodule update --init --recursive这里第二句至关重要。Pico SDK 依赖的tinyusb、cyw43-driver等子模块并不会在普通 clone 时自动下载下来。如果你后面写 USB 相关的代码或者用的是 Pico W 无线板编译时就会有头文件缺失的报错。所以这一步宁早勿晚。SDK 拉下来之后最好放到一个固定、不容易误删的位置比如 Windows 下的C:\pico\pico-sdk或者 Linux/macOS 下的~/pico/pico-sdk。然后设置环境变量PICO_SDK_PATH指向这个目录。Windows 可以在系统属性里的“环境变量”中新增Linux/macOS 可以写入 shell 配置文件export PICO_SDK_PATH/path/to/pico-sdk这个变量是后面 CMake 脚本定位 SDK 的依据很多“找到不 PICO_SDK_PATH”的报错其实都在这一步埋下了雷。3.4 在 CLion 里配置 Toolchain 和 CMake环境变量设置好之后打开 CLion开始配置。先说明一下为什么不能直接用默认工具链默认情况下CLion 在 Windows 上会用 MinGW 或 MSVC 作为工具链在 Linux/macOS 上用系统自带 gcc。这些编译器生成的都是 x86 或本机指令把它们用于 Pico 工程就等于拿英文键盘打中文产物完全不对。所以我们要单独为 Pico 工程新建一套专用工具链把编译器指向 ARM 版。打开Settings - Build, Execution, Deployment - Toolchains点击加号新建一个。在“Toolchain”配置里把C Compiler指向arm-none-eabi-gccC Compiler指向arm-none-eabi-gDebugger指向arm-none-eabi-gdb。如果前面安装的时候勾选了 PATH这里可以直接在自动检测中选到没勾选也可以手动浏览选择可执行文件路径。再进入Settings - Build, Execution, Deployment - CMake选择刚才建好的工具链。如果环境变量PICO_SDK_PATH在 CLion 里没有生效你还可以在 CMake options 这一栏直接显式传参-DCMAKE_BUILD_TYPEDebug -DPICO_SDK_PATHC:/pico/pico-sdk这里C:/pico/pico-sdk要换成你自己的实际路径。设置完成之后 ApplyCLion 会在 CMake 重新加载时把这两个参数带进工程。3.5 工程文件怎么写新建一个工程目录我习惯这样组织my_pico_app/ ├── CMakeLists.txt ├── pico_sdk_import.cmake ├── main.c └── build/注意到根目录多了一个pico_sdk_import.cmake这个文件可以从 SDK 的external目录复制过来。它的作用是在 CMake 配置阶段自动定位 SDK 路径并判断是否走在线下载。这样工程不依赖我手写的平台专属路径换机器也能直接跑。接下来是 CMakeLists.txt 的完整模板cmake_minimum_required(VERSION 3.13) # 导入 SDK 定位脚本 include(pico_sdk_import.cmake) # 工程名并声明需要编译的语言C、C、汇编 project(my_pico_app C CXX ASM) # 统一 C/C 标准 set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) # 初始化 Pico SDK pico_sdk_init() # 生成可执行文件目标 add_executable(my_pico_app main.c ) # 链接 Pico 核心库 target_link_libraries(my_pico_app pico_stdlib) # 额外生成 .uf2 / .hex / .bin / .dis 文件 pico_add_extra_outputs(my_pico_app)这里每一行都有实际作用重点说两个。include(pico_sdk_import.cmake)是让 SDK 的路径能被自动识别避免你在不同机器之间复制工程时反复改路径。pico_add_extra_outputs(my_pico_app)则是把产物格式补齐没有这一行你只会得到一个.elf文件想往板子里拖的.uf2根本不会出现。然后写一个最基础的 main.c 验证环境#include pico/stdlib.h #ifndef PICO_DEFAULT_LED_PIN #error 当前板型未定义默认 LED 引脚 #endif int main(void) { const uint led_pin PICO_DEFAULT_LED_PIN; gpio_init(led_pin); gpio_set_dir(led_pin, GPIO_OUT); while (true) { gpio_put(led_pin, 1); sleep_ms(500); gpio_put(led_pin, 0); sleep_ms(500); } }PICO_DEFAULT_LED_PIN是 SDK 根据板型自动定好的默认 LED 引脚普通 Pico 对应板载 GPIO 25Pico W 则通过无线芯片的 GPIO 控制板载 LED。代码逻辑很简单就是让 LED 以 500 毫秒为周期闪烁用于验证整条链路通不通。3.6 编译产物与烧录在 CLion 里选择 Build 之后可以看到编译输出目录build/下生成了多个文件。my_pico_app.elf是带调试信息的完整可执行程序供 GDB 使用my_pico_app.uf2则是引导程序直接读取的烧录格式。简单解释一下 uf2 是什么。它本质上是一种按块组织、带校验头的二进制格式设计目的就是让单片机以 U 盘形式接收固件。Pico 的 ROM 引导程序会把你拖进去的.uf2文件按块解析到 Flash 对应地址复制完成自动重启运行。所以大多数场景下你根本不需要额外工具一个.uf2文件就能完成烧录。烧录方式第一选择推荐 BOOTSEL 拖拽用手按住 Pico 板子背面的 BOOTSEL 按钮。保持按住的状态再用 USB 线把它连接到电脑。电脑上出现一个名为RPI-RP2的移动磁盘。把build/my_pico_app.uf2文件直接拖进这个磁盘。复制完成后 Pico 会自动重启运行板子里的新固件LED 应该开始闪烁。这里有个细节值得提醒BOOTSEL 模式必须是按住按钮再插 USB 线如果先插上 USB 再按按钮部分板子不会进入 U 盘模式。如果拖入文件后没有任何反应优先检查是不是这一步做反了。烧录方式第二选择是 OpenOCD 配合 SWD 调试器这条路径更适合调试阶段使用openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c program build/my_pico_app.elf verify reset exit这条命令会把固件写入 Flash 并复位运行。跟拖拽 uf2 相比它不需要你手动按住 BOOTSEL且能在烧录后直接进入调试状态效率更高但前提是你已经接好调试器。3.7 配置调试器断点调试拖 uf2 只能验证程序能跑当你需要看变量值、加断点、单步执行时就必须走 SWD 调试路径。这一步是 CLion 相对命令行方案最吸引人的地方之一。首先准备调试探头。最省事的方法是拿第二块 Pico 刷成调试探针固件项目官方提供了相关说明原理是让第二块 Pico 通过自己的 SWD 引脚对接目标 Pico。如果你手头有现成的 CMSIS-DAP 兼容调试器也可以直接用。连接关系并不复杂调试器/探针信号目标 Pico 引脚SWCLKSWCLK第 4 脚SWDIOSWDIO第 5 脚GNDGND第 3 脚3V3可选3V3 或 VSYS接线完成后启动 OpenOCDopenocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg其中interface后面的配置要和你的实际调试器匹配。如果用的是 ST-Link这里换成stlink.cfg用的是 Pico 探针通常就是cmsis-dap.cfg。OpenOCD 启动后会默认监听本机 3333 端口等待 GDB 连接。然后在 CLion 里添加一个Run/Debug Configuration类型选择GDB Remote DebugTarget/Executable选择build/下的.elf文件。target remote args填写tcp::3333。GDB选择工具链里的arm-none-eabi-gdb。配置完成后先启动 OpenOCD 终端再在 CLion 中点击 Debug 按钮。代码旁边点击加断点运行后就能看到当前停在哪个函数、变量值是多少、寄存器状态如何。为了减少“先开 OpenOCD 再点调试”这种两步操作我习惯把 OpenOCD 的启动命令配置成 CLion 的 External Tool这样调试流程整体压缩成一步。4. 常见问题与排查技巧实录环境搭好之后并不代表一切就万事大吉。实际跑的过程中总会遇到几个恼人的报错这里把我踩过的坑和排查思路整理成速查手册。4.1 PICO_SDK_PATH 相关的报错现象是 CMake 配置阶段直接报错最常见的日志是找不到 SDK 初始化文件或者Could not find PICO_SDK_PATH。这类问题几乎都出在环境变量没有正确传递到 CMake 进程里。排查方向有三个。第一确认环境变量本身有没有设置在命令行里echo $PICO_SDK_PATHWindows 用echo %PICO_SDK_PATH%看一下实际值。第二很多 CLion 用户忘了重启 IDE环境变量配置后必须完全关闭并重新打开CMake 才能继承到新的环境。第三如果不想依赖环境变量就在 CMake options 里显式加-DPICO_SDK_PATHC:/pico/pico-sdk然后删掉build/目录重新加载。显式传参的好处是问题范围被固定在一个文件里排查时更直接。4.2 子模块缺失的编译报错这个坑在 3.3 节里就埋过雷现象是编译到一半突然说找不到某个头文件比如cyw43_arch.h、tinyusb相关的目录。表面看是头文件路径问题实际是 SDK 克隆时没有把子模块一起拉下来。解决办法只需要在pico-sdk目录下执行git submodule update --init --recursive之前没有做这一步的朋友补完子模块后回到 CLion 重新加载 CMake 即可。这种问题不会在编译最开始暴露而是到你真正用到 USB 或无线相关代码时才冒出来所以建议环境刚搭好的时候就把这条命令跑一遍省得中途返工。4.3 拖入 uf2 后板子没反应这是很常见但也很容易误判的一种情况。明明 BOOTSEL 模式已经识别到 U 盘文件拖进去板子却没有重启跑程序或灯不亮。排查顺序建议从最明显的开始先看 BOOTSEL 操作顺序是否反了必须按住按钮再插线。再看这个 U 盘是不是完整复制进去的.uf2文件大小是否正常如果文件太小极可能编译产物不完整。还有一道坎容易被新手忽略USB 线是充电线而不是数据线。充电线物理上能通电但数据通道没接就会出现“板子灯亮了但拖不进文件”的诡异现象。建议手边多备两根不同来源的数据线交叉验证。另外某些系统在复制文件到 U 盘后会有缓存延迟弹出时会提示“正在写入”等它完全完成后对板子重新上电再观察程序是否运行。4.4 OpenOCD 连不上设备OpenOCD 启动时报Error: open failed或者一直卡在初始化阶段通常问题出在探针识别和接线层面。首先确认接线SWDIO 和 SWCLK 不要接反GND 必须和调试器共地。其次检查驱动Windows 下很多 CMSIS-DAP 调试器需要安装 WinUSB 驱动否则系统识别不到设备Linux 下则需要配置 udev 规则赋予当前用户访问 USB 设备的权限。排查时可以先在设备管理器Windows或lsusbLinux里确认调试器有没有被系统发现这是最快的验证手段。如果设备都没出现那 OpenOCD 再折腾也不会通。还有个小技巧把interface配置文件和实际硬件核对一遍比如你手里是 ST-Link但配置里写的是cmsis-dap.cfg就必然连不上。4.5 问题速查表把上面几条以及一些零散问题整理成表格方便以后遇到时直接查询。现象原因解决CMake 找不到 SDK环境变量未设置或未重启 CLion配置 PICO_SDK_PATH 后重启或显式传参并删 build 目录编译报错缺头文件子模块未更新执行 git submodule update --init --recursive拖入 uf2 无反应BOOTSEL 顺序错误 / 充电线按住 BOOTSEL 再插线换数据线验证OpenOCD 连接失败驱动未装 / 接线错误 / interface 配置不符检查系统识别、接线、配置文件CLion 索引卡顿build 目录被重复扫描将 build 目录标记为 Exclude5. 几条提升开发效率的经验环境跑通之后后续的日常开发其实还有一些小技巧。按我自己的习惯工程根目录通常还会放一个pico-examples的开源参考仓库。SDK 本身也有大量例程但拆到几十个目录下来回翻很费时间我一般直接在本地按功能模块搜索比如要找 I2C 用法就去i2c相关目录里扫一遍标准代码比自己盲写快得多。另一个值得记录的特性是 USB 虚拟串口。用 printf 做调试是嵌入式最常见的做法默认情况下 Pico 的 stdio 走的是 UART但如果你不想接 USB 转 TTL可以在 CMakeLists.txt 里这样配置pico_enable_stdio_usb(my_pico_app 1) pico_enable_stdio_uart(my_pico_app 0)注意这一对函数要在target_link_libraries之后调用否则链接依赖不生效。开启后printf的输出会直接通过 USB 枚举出的虚拟串口发送到电脑用普通串口工具就能看到调试日志。调试阶段非常方便省去了一根额外的 USB 转 TTL 线。还有一个容易被忽略的点构建类型对调试体验影响很大。CLion 默认是 Debug 构建优化等级低、调试信息完整适合打断点看变量到了发布阶段建议切到 Release 构建开启优化后固件体积更小、运行更快但此时很多变量的值可能被优化掉无法在调试器里直观看到。我的习惯是调试时用 Debug需要交付固件前切换 Release 重新编译然后顺手看一眼生成的.uf2大小是否在预期范围内。最后多说一句跟工程管理相关的经验.gitignore里一定要把build/目录排除出去。编译产物动辄几十兆而且不同机器生成的编译缓存互不兼容提交进去只会在代码合并时制造大量冲突。我自己就吃过这个亏后来统一固定了一个规则任何生成性的文件都不进版本库源码和 CMakeLists.txt 才是需要管理的。整套环境跑下来我最满意的其实是调试链路被打通之后的体验。以前总觉得嵌入式开发命令行才是正统现代 IDE 对交叉编译、CMake、GDB 的支持逐渐成熟之后把这几样东西整合到同一个图形界面里效率和舒适度都提升了一个层级。如果你手头正好有 Pico 板子照着上面的流程走一遍半小时内应该能把第一个闪烁程序跑起来。等你把断点调试、虚拟串口、Release 构建这些都配合熟了后续的复杂项目推进起来会顺手很多。
RELATED

相关推荐

Linux下查看线程的实用方法:从ps、top到pidstat全掌握

Linux下查看线程的实用方法:从ps、top到pidstat全掌握

排查 Linux 线程问题的时候,最怕的不是不会用命令,而是用错了命令看错了对象。很多刚接触 Linux 的同学,一上来就问“怎么查看线程”,但真正到了现场,往往连线程和进程的关系都还没理清楚——拿ps一顿输出,…

📅 2026/10/12 2:42:34
LocalAI本地AI推理实战:部署LLM、语音与文生图全攻略

LocalAI本地AI推理实战:部署LLM、语音与文生图全攻略

之前做本地 AI 推理时,最头疼的问题就是“换一个模型就要换一套环境”,有时候还要为 GPU、CUDA、Python 版本折腾一整天。后来接触到 LocalAI,发现它把这些碎片化的痛点统一收敛到了一个服务里:不管是跑大语言模型、语音识别、文字…

📅 2026/10/12 2:42:34
本地跑AI模型新标准:LocalAI 实战部署与OpenAI兼容API接入

本地跑AI模型新标准:LocalAI 实战部署与OpenAI兼容API接入

这次我们来看一个把“本地跑 AI 模型”这件事做成统一标准的开源项目:LocalAI。简单说,LocalAI 是一个免费、开源的本地推理服务框架,目标是让你在普通电脑甚至树莓派这类低功耗硬件上,直接运行大语言模型、语音识别、语音合成、图…

📅 2026/10/12 2:42:34
MORE NEWS

更多资讯

📰

声呐阵列信号处理——声呐阵列波束形成(第一章第三节)

一、声呐阵列模型3.接收数据模型(1)数据组成阵元的实际接收数据是信号、噪声等干扰的叠加,所以接收数据模型建立的前提需是信号模型、噪声模型的构建。对于第m个阵元,其接收数据可以表示为数据中包含期望信号,D个干扰信…

📰

深入 Freelens 扩展契约测试桩:`@freelensapp/fixture-extension` 如何让“静默破坏“无处遁形

云原生开发工具运维 【免费下载链接】freelens Free IDE for Kubernetes 项目地址: https://gitcode.com/gh_mirrors/fr/freelens 点击查看 免费下载 导读 Freelens(Kubernetes 免费 IDE)通过 freelensapp/extensions 向第三方暴露扩展契约…

📰

ant-design-blazor TreeSelect 弹出位置(placement)完全指南:手动指定下拉弹出方向与底层实现解析

前端UI组件设计系统 【免费下载链接】ant-design-blazor 基于 Ant Design 与 Blazor 的前端组件库。让开发者解放生产力,实现更大价值。 项目地址: https://gitcode.com/ant-design-blazor/ant-design-blazor 点击查看 免费下载 placement 是 ant-desig…

📰

使用 Jaeger Go 客户端(jaeger-client-go)为 Go 服务接入 OpenTracing 分布式追踪

云原生可观测性容器编排运维 【免费下载链接】scope Monitoring, visualisation & management for Docker & Kubernetes 项目地址: https://gitcode.com/gh_mirrors/sc/scope 点击查看 免费下载 jaeger-client-go 是 Uber 提供的 Jaeger 官方 Go 探针库&am…

📰

Infosec_Reference 之 ICS/SCADA 安全资源指南:从协议原理到攻防工具链

网络安全教程 【免费下载链接】Infosec_Reference An Information Security Reference That Doesnt Suck; https://rmusser.net/git/admin-2/Infosec_Reference for non-MS Git hosted version. 项目地址: https://gitcode.com/gh_mirrors/in/Infosec_Reference 点击…

📰

基于微信小程序与SSM的小区管理系统开发实践

1. 项目概述与选题背景第一次看到“基于微信小程序的小区管理系统”这个题目,很多人的第一反应是:这不就是一个普通的CRUD项目吗?其实真做下来你会发现,这个项目的难度不在代码量,而在“业务流程的闭环”和“多端数据的…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬