当前位置: 首页 > article >正文

RK3588开发环境搭建三步曲:从零构建嵌入式Linux编译与烧录系统

1. 项目概述与核心价值拿到一块全新的RK3588核心板或开发板看着它强大的八核CPU和NPU心里盘算着各种AI和多媒体应用的你是不是也曾在环境搭建这一步卡住过从官方SDK下载、编译工具链配置到内核编译、文件系统烧录每一步都可能藏着各种依赖缺失、版本冲突、路径错误的“坑”。我经历过太多次从Ubuntu版本选择不对导致编译失败到烧录工具识别不到设备再到文件系统启动卡住这些看似简单的问题往往能消耗掉新手开发者一整天甚至更久的时间。“迅为RK3588开发环境搭建‘三步曲’”这个标题精准地戳中了所有嵌入式Linux开发者的痛点如何将官方庞杂的文档和分散的工具整合成一条清晰、可重复、高成功率的路径。它承诺的“从零到一”和“轻松上手”背后需要的是对RK3588官方BSPBoard Support Package的深度理解、对常见编译环境问题的预判以及一套经过实战检验的标准化操作流程。这不仅仅是几个命令的堆砌而是一个系统工程涵盖了宿主机的准备、源码的获取与管理、编译系统的构建、镜像的生成与验证以及最终烧写到硬件并成功启动的完整闭环。对于开发者而言成功搭建环境意味着拿到了进入RK3588强大生态的钥匙。无论是进行底层驱动调试、定制自己的Linux系统还是部署AI模型到NPU一个稳定可靠的开发环境都是所有后续工作的基石。接下来我将结合自己多次搭建和为企业团队部署的经验拆解这“三步曲”的具体内涵、技术细节和避坑指南让你真正实现从零到一的跨越。2. 环境搭建“三步曲”整体设计思路一套高效、稳定的开发环境其设计核心在于隔离、可复现和自动化。针对RK3588这类复杂的SoC官方提供的SDK通常是一个包含U-Boot、Kernel、Buildroot/Yocto等组件的庞大仓库。我们的“三步曲”就是围绕如何高效地驾驭这个仓库而设计的。2.1 第一步宿主机构建——打造坚实的“工作台”这一步的目标是准备一个纯净、兼容性最佳的Linux编译环境。很多初学者喜欢在自己的主力机可能是Windows WSL或日常使用的Ubuntu上直接操作这极易引发难以排查的库依赖冲突。核心选择Ubuntu 20.04 LTS 原生系统或虚拟机。为什么是20.04这是Rockchip官方SDK长期测试和验证的主要版本。虽然更新版本的Ubuntu也可能成功但你会面临GCC、Make、Python等工具链版本过高导致的兼容性问题解决这些问题的时间成本远大于直接使用推荐版本。我强烈建议在VMware或VirtualBox中安装一个全新的Ubuntu 20.04分配至少150GB磁盘空间因为SDK源码及其编译输出非常占用空间和8GB以上内存编译内核和根文件系统是内存密集型操作。关键操作与原理系统更新与基础工具安装首先执行sudo apt update sudo apt upgrade更新系统。接着安装一系列基础开发工具如build-essential包含GCC, G, Make、git、curl、wget等。这些是后续所有操作的基石。安装RK3588专属依赖包这是最容易出错的一步。Rockchip编译系统依赖于一些特定的库和工具。你需要安装的包包括但不限于sudo apt install -y repo git ssh make gcc libssl-dev liblz4-tool \ expect g patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \ qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g-multilib \ unzip device-tree-compiler python-pip libncurses5-dev其中repo是Google用于管理多个Git仓库的工具因为RK3588的SDK由数十个Git仓库组成。lz4-tool用于内核镜像压缩device-tree-compiler用于编译设备树源文件.dts为二进制文件.dtb。注意在Ubuntu 22.04或更高版本上部分软件包名称可能已更改或不可用。例如python-pip可能需要换成python3-pip并且需要手动处理Python2/3的兼容性问题。这就是坚持使用20.04能避免的麻烦。2.2 第二步源码获取与编译系统初始化——获取“蓝图”与“工具链”这一步是从Rockchip官方或板卡供应商如迅为获取SDK源码并初始化编译配置。源码获取的两种路径官方路径通过Rockchip提供的repo清单同步。这能获得最上游的代码但有时可能与特定开发板的硬件适配存在延迟。mkdir -p ~/rk3588 cd ~/rk3588 repo init -u https://github.com/rockchip-linux/rkbin -b master repo sync -c -j$(nproc) # 使用-j参数指定并行任务数加速同步板卡供应商路径迅为等厂商通常会提供适配了自己硬件如核心板引脚定义、外设驱动的SDK包可能是一个压缩包或一个特定的Git仓库。这种方式对硬件兼容性更有保障是更推荐给初学者的选择。你需要根据迅为提供的文档解压或克隆对应的代码仓库。编译系统初始化进入SDK根目录通常会有一个名为build.sh、mkimage.sh或buildroot目录下的Makefile作为顶层编译脚本。首先你需要根据你的目标板型选择配置文件。例如在Buildroot系统中常见命令是make clean make rk3588_迅为板型_defconfig # 例如 rk3588-itx-3588j_defconfig这条命令会将对应的默认配置包含CPU架构、内核版本、基础软件包选择等写入到.config文件中。这是编译前的“总开关”。2.3 第三步系统编译与镜像烧录——从代码到“可运行的生命”这是将源代码转化为可烧录的实体镜像如loader.bin,uboot.img,boot.img,rootfs.img的过程并最终将其写入板载存储。全自动编译在配置完成后一个简单的make或./build.sh all命令通常会触发以下链式反应交叉编译工具链下载/构建系统会自动下载或使用预置的aarch64-linux-gnu-工具链。U-Boot编译生成引导加载程序镜像。Kernel编译编译Linux内核生成Image和.dtb文件并打包成boot.img。根文件系统构建根据配置使用Buildroot或Debian/Ubuntu base构建一个包含基础命令和库的根文件系统镜像rootfs.img。烧录——临门一脚RK3588普遍支持Rockchip的upgrade_toolWindows/Linux或rkdeveloptoolLinux进行烧录。关键步骤是让开发板进入Loader模式。通常有两种方式按键方式按住开发板上的Recovery或MaskROM键具体键名需查阅迅为手册再上电或先上电再按住该键然后复位。命令方式在系统能正常启动时通过串口执行reboot loader命令。进入Loader模式后通过USB OTG口连接电脑使用工具即可识别设备并进行烧录。以rkdeveloptool为例# 列出设备 rkdeveloptool ld # 烧写Loader rkdeveloptool db rk3588_spl_loader_v1.xx.bin # 烧写完整镜像 rkdeveloptool wl 0x0 your_image.img3. 核心细节解析与实操要点3.1 Ubuntu环境下的“坑”与应对技巧即便使用了Ubuntu 20.04环境问题依然可能出现。最常见的是磁盘空间不足和网络超时导致的repo同步失败。磁盘空间管理编译一次完整的系统算上源码和编译中间文件轻松超过50GB。如果你为虚拟机只分配了80GB很快会捉襟见肘。我的建议是使用df -h命令时刻关注/home目录的空间。在SDK目录外建立一个独立的、大容量的共享文件夹或虚拟磁盘专门用于存放SDK和编译输出。在编译前通过ln -s将SDK目录链接到此大空间位置。定期清理make clean清理上次编译输出make distclean清理更彻底包括下载的源码包慎用。对于Buildroot可以删除output/build目录下已编译完成的软件包源码来释放空间。Repo同步优化国内的网络环境同步Git仓库尤其是Google的repo工具仓库可能非常缓慢甚至失败。更换镜像源修改repo的初始化命令使用国内镜像。例如将https://github.com/rockchip-linux替换为https://gitee.com/mirrors/rockchip-linux需确认该镜像是否存在且更新及时。分步同步与断点续传repo sync命令支持-c只同步当前分支和-j多线程参数。如果中途失败可以直接重新执行该命令它会自动续传。对于顽固失败的仓库可以进入该仓库目录手动用git clone命令拉取。使用代理如果条件允许为Git配置全局代理可以极大提升速度。3.2 编译配置的艺术.config文件的深度定制执行make xxx_defconfig后生成的.config文件是编译系统的“大脑”。直接修改这个文本文件是危险的正确的方式是使用交互式配置菜单。内核配置make linux-menuconfig。在这里你可以启用或禁用特定的驱动、内核特性。例如如果你需要连接特定的USB Wi-Fi网卡就需要在这里找到对应的驱动并编译进内核或设为模块。Buildroot配置make menuconfig。这是定制根文件系统的核心。你可以在Target packages下添加你需要的软件如openssh用于远程登录、vim、python3、gstreamer多媒体框架。在Filesystem images下选择生成何种格式的根文件系统镜像ext2/3/4,squashfs,initramfs等。ext4最通用squashfs只读可节省空间。在Toolchain中可以选择更优化的编译器版本如GCC 10.x和C库glibc或musl。一个关键技巧保存你的配置。将满意的.config文件备份为my_custom_config。下次需要重新搭建环境时直接复制回来执行make olddefconfig就能快速恢复到之前的配置状态无需再次手动选择。3.3 烧录工具使用与设备识别问题烧录失败十有八九是设备没有正确进入Loader模式或被系统识别。Linux下的设备权限问题在Linux下普通用户通常没有权限直接访问USB设备。当你连接开发板到Loader模式后使用lsusb命令应该能看到一个ID为2207:350aRockchip Loader模式设备的USB设备。如果rkdeveloptool ld看不到设备你需要添加udev规则。 创建一个文件例如/etc/udev/rules.d/99-rockchip.rules内容如下SUBSYSTEMusb, ATTR{idVendor}2207, ATTR{idProduct}350a, MODE0666然后重新加载udev规则并重新插拔设备sudo udevadm control --reload-rules sudo udevadm trigger。Windows下的驱动安装在Windows下需要使用Rockchip官方提供的DriverAssitant_vx.x.exe驱动助手。安装后在设备管理器中当开发板进入Loader模式时应能看到一个“Rockchip USB Device”或类似的设备而不是“未知设备”。烧录顺序与地址烧录不是简单地把所有镜像写进去就行每个镜像都有固定的烧录地址在分区表中定义。使用厂商提供的统一烧录工具如RKDevTool时工具会自动处理地址。如果使用命令行工具手动烧录务必参照文档中的parameter.txt文件或表格确认uboot、boot、rootfs等分区的起始扇区offset。写错地址会导致系统无法启动。4. 实操过程与核心环节实现让我们以一个假设的“迅为ITX-3588J”开发板为例串联起整个流程。4.1 步骤一准备一个“标准”的Ubuntu 20.04编译环境安装虚拟机使用VMware Workstation 17 Player免费版即可新建虚拟机选择Ubuntu 20.04.6 LTS ISO镜像。关键配置磁盘至少150GB拆分成单个文件内存8GB处理器核心数4。网络选择桥接模式便于后续开发板与宿主机网络互通。系统安装后优化安装完成后立即在终端执行sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo apt update sudo apt upgrade -y这会将软件源替换为阿里云镜像加速后续软件包下载。安装必备软件包执行第2.1节中列出的apt install命令一次性安装所有依赖。如果遇到个别包找不到可以尝试搜索替换如python-pip-python3-pip但整体应无大碍。4.2 步骤二获取并初始化迅为提供的SDK假设我们从迅为官网下载了一个名为itx-3588j_linux_release_v1.0.tar.gz的SDK包。解压与放置cd ~ tar -xzf itx-3588j_linux_release_v1.0.tar.gz mv itx-3588j_linux_release_v1.0 rk3588_sdk cd rk3588_sdk查看目录结构使用ls查看你通常会看到app/,buildroot/,kernel/,u-boot/,device/,docs/,rkbin/等目录以及顶层的build.sh或Makefile。docs/目录下的PDF或README是必读的。初始化编译配置根据文档执行初始化命令。假设是Buildroot系统cd buildroot make clean make itx_3588j_defconfig # 具体板型名称以文档为准这步完成后当前目录下会生成.config文件。4.3 步骤三定制化配置与全系统编译定制根文件系统运行make menuconfig。一个常见的需求是添加SSH服务以便远程登录。方向键导航至Target packages-Networking applications- 找到openssh按空格键将其选中[*]表示编译进根文件系统。你也可以在Filesystem images下确认根文件系统格式为ext4。配置完成后选择 Save 然后退出。开始编译回到SDK根目录或buildroot目录执行编译命令。这个过程非常漫长首次可能数小时可以去喝杯咖啡。cd ~/rk3588_sdk ./build.sh # 或者根据脚本提示 ./build.sh all编译过程会在终端输出大量信息重点关注是否有error字样。如果一切顺利最终会在rockdev/或output/images/目录下生成一系列.img文件。4.4 步骤四烧录镜像与上电验证连接硬件使用USB转串口线连接开发板的调试串口通常是板上的UART0TX、RX、GND三根线到电脑使用MobaXterm或Putty等工具打开对应串口波特率设置为1500000这是RK3588常见的调试波特率。使用USB Type-C数据线连接开发板的OTG口或标有Download的口到电脑。进入Loader模式关闭开发板电源。按住板上的MaskROM键或Recovery键不放然后给开发板上电。保持按键按住约2-3秒后松开。此时串口终端可能无输出或输出少量乱码这正常。在Linux宿主机上烧录# 假设烧录工具在SDK的tools/目录下 cd ~/rk3588_sdk/tools/linux/ # 检查设备是否识别 ./rkdeveloptool ld # 如果看到设备号如 DevNo1 Vid0x2207,Pid0x350a则开始烧录 # 烧录Loader引导程序 ./rkdeveloptool db ../../rkbin/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin # 烧录完整固件假设工具脚本为update.sh sudo ./upgrade_tool uf ../../rockdev/update.imgupdate.img是编译脚本打包好的完整固件包含了所有分区。上电启动烧录完成后开发板会自动重启或提示你重启。断开Type-C线仅保留串口线然后重新上电。此时串口终端应该开始滚动Linux内核的启动日志。如果最终出现rootitx-3588j:~#这样的登录提示符恭喜你系统成功启动了5. 常见问题与排查技巧实录即使按照步骤操作也难免会遇到问题。这里记录几个最典型的案例和排查思路。5.1 编译失败fatal error: xxx.h: No such file or directory问题描述在编译某个软件包如alsa-lib时报错找不到头文件。原因与排查缺少开发包这是最常见原因。错误中的xxx.h通常指向一个系统库的头文件。你需要安装对应的-dev或-devel包。例如错误是alsa/asoundlib.h则需要安装libasound2-dev。sudo apt search alsa | grep dev # 搜索包含alsa的开发包 sudo apt install libasound2-dev交叉编译工具链路径问题确保Buildroot或SDK正确配置了交叉编译工具链的sysroot其中应包含所有目标板的头文件和库。检查buildroot/output/host/目录下的工具链是否完整。5.2 系统启动失败卡在Starting kernel ...或Uncompressing Linux... done问题描述串口日志打印到此处后停止无后续输出。原因与排查内核镜像或设备树错误boot.img可能损坏或者其中的设备树二进制文件.dtb与当前硬件不匹配。确认你编译时选择的defconfig和dts文件完全对应你的开发板型号。检查kernel/arch/arm64/boot/dts/rockchip/目录下是否有itx-3588j.dts这样的文件并在内核配置中确认已选中。内存频率配置不符DDR初始化失败。RK3588的LoaderDDR初始化二进制需要与板载的内存颗粒型号、频率严格匹配。迅为提供的SDK中的rkbin目录下的Loader文件应该是适配好的。如果你更换了不同型号的内存则需要重新配置并编译rkbin这属于高级操作。串口波特率不对虽然RK3588内核早期打印通常用1500000但有些板卡设计或U-Boot配置可能不同。尝试将串口终端波特率依次切换为115200、1500000、921600等常见值。5.3 系统启动后网络不通或无法挂载根文件系统问题描述系统能启动到登录界面但ifconfig看不到以太网口或者根文件系统为只读/不断报错。原因与排查以太网驱动未加载执行lsmod查看已加载的内核模块检查是否有stmmac、dwmac之类的以太网驱动。如果没有需要在make linux-menuconfig中确保对应网卡驱动已编译进内核[*]或编译为模块[M]。如果是模块还需要在根文件系统中包含modprobe命令和对应的.ko文件。根文件系统镜像格式或烧录地址错误使用cat /proc/cmdline查看内核启动参数确认root后面的设备名如/dev/mmcblk1p5是否正确。再使用lsblk命令查看块设备确认该分区是否存在。如果分区不存在可能是parameter.txt定义的分区表与烧录的镜像不匹配。需要重新检查烧录步骤和分区表文件。5.4 烧录工具无法识别设备Linux下问题描述执行rkdeveloptool ld后无任何输出。排查步骤确认设备模式执行lsusb查看是否有2207:350a或类似Rockchip VID/PID的设备。如果没有说明开发板未进入Loader模式重复进入Loader模式的操作。检查USB线缆和端口换一条确认能传输数据的USB线并尝试电脑上不同的USB端口。检查用户权限即使添加了udev规则有时也需要将当前用户加入plugdev组并重新登录。sudo usermod -aG plugdev $USER然后注销并重新登录虚拟机或电脑。尝试使用sudo临时使用sudo rkdeveloptool ld如果此时能识别说明仍是权限问题需重新检查udev规则。一个终极技巧使用SD卡启动替代烧录进行快速验证。对于调试内核和根文件系统频繁烧录eMMC既慢又损耗寿命。你可以将编译生成的boot.img和rootfs.img写入SD卡并通过拨码开关或按键让RK3588从SD卡启动。这样修改代码后只需重新制作SD卡镜像即可速度远快于烧录。具体方法需查阅迅为手册通常涉及使用dd命令将镜像写入SD卡的正确分区。

相关文章:

RK3588开发环境搭建三步曲:从零构建嵌入式Linux编译与烧录系统

1. 项目概述与核心价值拿到一块全新的RK3588核心板或开发板,看着它强大的八核CPU和NPU,心里盘算着各种AI和多媒体应用的你,是不是也曾在环境搭建这一步卡住过?从官方SDK下载、编译工具链配置,到内核编译、文件系统烧录…...

技术负责人用 Claude 这半年:工具我让全队用了,但有几件事我没敢交出去

我管一个二十来人的研发团队,之前在一家做交易系统的公司带过基础架构。 Claude Code 在我们团队铺开大概半年了,从我自己用,到全员用,到现在 进了 CI、进了评审流程。这篇不写"AI 让团队效率翻倍"那种东西。我想说的是另一件事: 作为技术负责人,这半年我真正花心思的…...

C++跨平台线程池组件设计:从核心原理到工程实践

1. 项目概述:为什么我们需要一个跨平台的线程池组件?在软件开发,尤其是高性能服务端、桌面应用或游戏引擎的开发中,线程池(Thread Pool)是一个绕不开的核心基础设施。我从业十几年,从早期的单线…...

RK3399嵌入式3D人脸识别系统:双目视觉与轻量化算法实战

1. 项目概述与核心价值最近在做一个挺有意思的项目,客户那边有个需求,要在他们现有的RK3399工控板上,集成一套完整的3D人脸识别系统。这活儿听起来挺酷,但真干起来,里头门道不少。RK3399这块板子大家应该不陌生&#x…...

STM32MP1 M4内核定时器中断配置与调试实战

1. 项目概述:深入STM32MP1的M4内核定时器世界在嵌入式开发里,定时器(Timer)就像系统的心跳和闹钟,是驱动一切周期性任务和精确时序控制的基础。对于STM32MP1这颗强大的异构多核处理器,其Cortex-M4协处理器侧…...

STM32MP1 M4核心定时器中断实战:从原理到1ms精准时基实现

1. 项目概述:深入STM32MP1的M4核心定时器世界在嵌入式开发中,定时器(Timer)堪称是系统的“心跳”和“节拍器”,其重要性不言而喻。对于STM32MP1这款集成了双核Cortex-A7和单核Cortex-M4的异构处理器,其M4核…...

基于RK平台的智慧出行方案:从芯片选型到车规级开发的实战指南

1. 项目概述:当“智慧出行”遇上“RK平台”最近几年,如果你关注汽车电子或者物联网领域,一定对“智慧出行”这个词不陌生。它早已不是科幻电影里的概念,而是真真切切地走进了我们的生活,从智能座舱里流畅的语音交互、多…...

CANN-昇腾NPU长序列训练-128K上下文怎么不OOM

Llama 3 支持 128K 上下文长度。训练时 128K 序列的 Attention 显存是 O(N):128K 128K fp16 32GB 每层,32 层 1TB。显然放不下。FlashAttention 把显存从 O(N) 降到 O(N),但在训练场景下还有额外挑战。 FlashAttention 的显存节省 标准 At…...

MPC5604B/C Memory Map 内存映射全解析

一、前言 本文章主要说明底层开发、寄存器操作、Boot、Flash 编程,告诉你Flash 在哪、RAM 在哪、每个外设寄存器基地址是多少、保留区是哪些。 用途: 写寄存器头文件 写链接脚本 .ld Flash 擦写、Boot 跳转 调试定位非法地址 外设地址计算 二、MPC5604B 地址空间总规则(Pow…...

龙芯3A5000工业主板实战:从硬件部署到软件生态的国产化替代指南

1. 项目概述:一颗“中国芯”的工业级落地 最近,圈子里关于国产自主平台的消息又热闹了起来。这次的主角,是集特智能新推出的一款工业主板,核心搭载了龙芯3A5000处理器和7A2000桥片。对于长期深耕工业控制、边缘计算、网络安全这些…...

MPC5604B/C 信号与引脚全解|硬件 / 底层必看

一、前言 本章主要说明每个引脚叫什么、干什么、上电默认状态、是什么电气类型、复用哪些功能。包含 封装引脚分布(64/100/144LQFP、208MAPBGA) 电源 / 地 / 复位 / 晶振 / JTAG 引脚 引脚电气类型(S/M/F/I/J/X) 复位期间引脚状态 所有 GPIO 的复用功能 AF0~AF3 引脚与外设…...

基于Java的外卖点餐配送系统_43lq510m

目录 同行可拿货,招校园代理 ,本人源头供货商项目概述技术栈核心功能模块项目亮点部署方式学习价值 项目技术支持获取博主联系方式 源码获取详细视频演示 :同行可合作点击我获取源码->获取博主联系方式->进我个人主页--> 同行可拿货,招校园代理 ,本人源头供…...

CANN-昇腾NPU-多机多卡-怎么把16卡用出32卡的效果

16 张 Atlas 800I A2 的理论算力是 16 310 4960 TFLOPS(fp16)。但实际训练 Llama2-7B 只用到了 3200 TFLOPS——利用率 64%。这篇讲怎么把利用率从 64% 提到 85%,等效 16 卡用出 25 卡的效果。 利用率低的原因 理论算力: 16 310 4960 TFL…...

C++中多才多艺的 const

1. 定义一个常全局变量1const int global 100; // 初始化之后不可再赋值这样的global实际上是一个常量,这是C用来取代宏定义的其中一种措施,const常量有类型检测,提高编译器的效率。2. 定义常指针这有两个版本,分别是&#xff1a…...

新手学习Linux系统的11点建议

随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题…...

Linux操作系统安装图文配置教程详细版

随着嵌入式的发展,Linux的知识是必须的一部分,下面就让我们进行Linux系统的安装过程演示:一、 Linux的安装在此博客中以红旗(Red Flag)Asianux Workstation 3为例进行描述,其他版本的Linux与此相似。 1.1 安…...

HermesAgent工具如何快速对接Taotoken的多模型服务提供商

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 HermesAgent工具如何快速对接Taotoken的多模型服务提供商 基础教程类,本文将指导使用HermesAgent工具的开发者&#xf…...

今天不建Lovable ML平台,明天就被团队弃用!2025年AI工程团队留存率预警下的4步速建法

更多请点击: https://kaifayun.com 第一章:Lovable ML平台搭建 构建一个真正“可亲、可用、可信赖”的机器学习平台,核心不在于堆砌尖端框架,而在于以开发者体验(DX)和数据科学家工作流为设计原点。Lovab…...

写给新手的 asnumpy:昇腾原生 NumPy 到底是啥?

上周组里新来个校招生,看到代码里有个 asnumpy() 问我:“哥,这跟 NumPy 有啥区别?为啥不直接用 NumPy?” 好问题。今天一次说清楚。 asnumpy 是啥? asnumpy 是昇腾 NPU 上的原生 NumPy 实现。 一句话说清楚…...

【流体】二维稳态不可压缩层流通道流利用FVM和SIMPLE 解平行板间层流的速度、压力和温度【含Matlab源码 15558期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…...

STM32H5安全连接AWS IoT:基于TrustZone与Secure Manager的物联网方案

1. 项目概述:当STM32H5遇上AWS云如果你正在用STM32H5系列高性能MCU做物联网设备开发,并且想把数据安全地送到AWS云上,那么意法半导体最近发布的这个X-CUBE-AWS-H5扩展包,绝对值得你花时间深入研究。这不仅仅是一个简单的“库文件”…...

联发科MT6833与MT6853 5G核心板:规格对比与产品选型实战指南

1. 项目概述:两款5G安卓核心板的定位与价值在当前的移动设备开发领域,尤其是面向中高端市场的智能手机、平板电脑以及各类智能终端,选择一颗性能强劲、功能集成度高且成本可控的核心处理器平台,是决定产品成败的关键。联发科&…...

【燃烧机】模拟了燃烧机的热力学循环分析活塞动力学以及温度和压力变化对发动机效率的影响【含Matlab源码 15557期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…...

基于DSP与SC1083 ADC的光纤远程数据采集系统设计实战

1. 项目概述:当DSP遇上高速光缆,如何构建一个“快、准、稳”的远程数据采集系统在工业自动化、电力监测、超声无损检测这些领域,我们经常需要面对一个头疼的问题:如何把现场传感器采集到的大量、高速、有时甚至是微弱的模拟信号&a…...

瑞芯微RK3568与RK3566芯片选型指南:从接口差异到应用场景深度解析

1. 项目概述:为何要深挖这两颗“芯”?在嵌入式开发和智能硬件选型的圈子里,瑞芯微(Rockchip)的RK3568和RK3566是近两年曝光率极高的两颗“明星”芯片。很多刚接触的朋友第一眼看去,会觉得它们很像&#xff…...

AI智能体Skills设计:从API工具到核心能力的工程实践

1. 从“工具”到“能力”:重新理解AI智能体的Skills最近和几个做AI应用开发的朋友聊天,发现一个挺有意思的现象:大家一提到给智能体加“Skills”,第一反应往往是去翻看官方文档,找那个叫“Tools”或者“Functions”的列…...

嵌入式开发硬件生态构建:MIPI屏、UVC摄像头与4G模块的选型与集成实战

1. 项目概述:一次面向嵌入式开发者的硬件生态补全最近,我们团队负责的睿擎派(一个基于瑞芯微RK3566/RK3588等主流芯片的嵌入式开发板品牌)项目,迎来了一次重要的硬件配件更新。这次上新不是简单的“换个壳”&#xff0…...

为内部培训系统集成Taotoken提供个性化学习内容生成与答疑

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为内部培训系统集成Taotoken提供个性化学习内容生成与答疑 在企业内部培训领域,技术部门常面临一个需求:如…...

观察Taotoken在不同时段与地域的API响应延迟表现

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken在不同时段与地域的API响应延迟表现 对于依赖大模型API进行开发的团队而言,服务的响应延迟是影响开发效率…...

C++超详细讲解析构函数

析构函数是特殊的成员函数特征如下:析构函数名是~类名;无参数无返回值;一个类有且只有一个析构函数;对象声明周期结束,编译器自动调用析构函数;12345678910111213141516171819202122232425262728293031clas…...