STM32 —— MCU、MPU、ARM、FPGA、DSP
在嵌入式系统中,MCU、MPU、ARM、FPGA和DSP是核心组件,各自在架构、功能和应用场景上有显著差异。以下从专业角度详细解析这些概念:
一、 MCU(Microcontroller Unit,微控制器单元)
核心定义
-
集成系统芯片:将处理器核心(CPU)、存储器(Flash/RAM)、外设接口(GPIO、ADC等)集成在单一芯片上,形成完整的计算控制系统,故称为单片机(Single Chip Microcomputer),其只需很少的外围电路或者不需要外围电路,直接供电即可工作,是一个芯片级的计算机。
-
定位:低功耗、低成本,适用于确定性实时控制任务。
技术细节
-
架构:哈佛架构(指令与数据总线分离,如PIC)或冯·诺依曼架构(统一总线,如8051),常见位宽为8/16/32位(如ARM Cortex-M)。
-
资源集成:
-
存储器:片上Flash(程序存储)和SRAM(数据存储),容量通常为KB级(如STM32F4系列:1MB Flash+192KB RAM)。
-
外设:GPIO、定时器(PWM)、ADC/DAC、通信接口(UART、SPI、I2C、CAN)、USB/Ethernet(高端型号)。
-
-
操作系统:裸机(状态机/前后台)或RTOS(FreeRTOS、Zephyr),无MMU(内存管理单元)。
-
性能:主频数十MHz至数百MHz(如Cortex-M7可达400MHz),功耗低至μA级(休眠模式)。
典型应用
-
工业控制:PLC逻辑控制、电机驱动(FOC算法)。
-
消费电子:智能家居(温控、LED控制)、穿戴设备(心率检测)。
-
汽车电子:ECU(发动机控制)、车身控制模块(BCM)。
二、 MPU(Microprocessor Unit,微处理器单元)
核心定义
-
通用计算核心:专注高性能计算,需外扩存储器及外设,支持复杂操作系统(Linux、Android)。
-
MPU是由通用计算机中的CPU演变而来的,可以理解为增强版的CPU,即不带外围功能的器件。
-
定位:高算力需求场景,如边缘计算、多媒体处理。
技术细节
-
架构:多核超标量架构(如ARM Cortex-A系列)、支持虚拟内存管理(MMU必须)。
-
资源依赖:
-
外部存储器:需外接DDR(如LPDDR4)、Flash(eMMC/UFS)。
-
外设扩展:通过高速总线(PCIe、USB3.0)连接GPU、NPU等协处理器。
-
-
操作系统:完整Linux、Android、Windows IoT,支持多进程/线程调度。
-
性能:主频GHz级(如Cortex-A78可达3GHz),多核并行(如4核A53+2核A72)。
典型应用
-
智能终端:智能手机(Qualcomm Snapdragon)、平板电脑。
-
嵌入式Linux设备:工业网关(数据采集+协议转换)、医疗影像终端。
-
AIoT边缘节点:视频分析(OpenCV)、语音识别(TensorFlow Lite)。
三、MCU vs MPU 对比表
维度 | MCU(微控制器) | MPU(微处理器) |
---|---|---|
核心定义 | 集成CPU、存储器和外设的片上系统(SoC),专注实时控制。 | 仅含CPU核心,需外扩存储器和外设,专注高性能计算。 |
架构特点 |
|
|
集成度 | 高集成:片上Flash、RAM、ADC、GPIO、通信接口(UART/SPI等) | 低集成:需外接DRAM(DDR3/4)、Flash(eMMC)、高速外设(USB3.0、PCIe) |
性能指标 |
|
|
外设需求 | 外设简单,依赖片上资源(如PWM控制电机) | 外设复杂,需扩展协处理器(GPU/NPU)、高速接口(千兆以太网、HDMI) |
操作系统支持 | 裸机编程或RTOS(FreeRTOS、Zephyr) | 完整OS(Linux、Android、Windows IoT)支持多进程/多线程 |
功耗 | 超低功耗:
| 较高功耗:
|
成本 | 低成本:
| 高成本:
|
应用场景 |
|
|
市场需求 | 增长领域:
| 增长领域:
|
优点 | 1. 低功耗,适合电池供电 2. 高实时性(中断响应快) 3. 开发周期短,成本低 | 1. 高算力支持复杂算法 2. 支持多任务操作系统 3. 生态丰富(Linux开源工具链) |
缺点 | 1. 算力有限,难以处理复杂计算 2. 存储容量小(通常<2MB) 3. 外设扩展能力弱 | 1. 功耗高,散热需求大 2. 硬件设计复杂度高 3. 实时性弱于MCU |
协同案例 |
|
|
核心区别总结
对比项 | MCU | MPU |
---|---|---|
设计目标 | 确定性实时控制 | 高吞吐量通用计算 |
适用场景 | 硬件资源受限的低功耗场景 | 需要复杂软件生态的高性能场景 |
开发复杂度 | 低(硬件简单,代码规模小) | 高(需驱动开发、OS移植) |
典型厂商 | ST(STM32)、NXP(LPC)、TI(MSP) | NXP(i.MX)、瑞芯微(RK系列)、TI(Sitara) |
联系与互补
-
底层硬件共性:
-
均基于处理器架构(如ARM Cortex系列),使用相似的指令集(Thumb-2)。
-
均需处理外设接口(GPIO、SPI等),但MPU依赖外部控制器(如PCIe Switch)。
-
-
系统级协同:
-
异构计算:MCU处理实时任务(传感器采样),MPU运行算法(如TensorFlow Lite推理)。
-
资源扩展:MCU可通过总线(如SPI)与MPU通信,扩展控制功能(如STM32MP1系列)。
-
选型建议
-
选择MCU:
-
需求:实时性(μs级响应)、低功耗(电池供电)、成本敏感(<$5)。
-
场景:智能家居传感器、小型电机控制、穿戴设备。
-
-
选择MPU:
-
需求:复杂计算(图像处理)、多任务管理(网络+存储+UI)、生态支持(Linux驱动)。
-
场景:工业HMI(人机界面)、视频监控终端、车载信息娱乐系统(IVI)。
-
通过对比可见,MCU与MPU并非竞争关系,而是根据场景需求互补共存。随着边缘计算发展,两者界限逐渐模糊(如STM32MP1集成Cortex-A7+M4),形成跨界处理器以满足多样化需求。
四、 ARM(Advanced RISC Machine)
核心定义
- 即是一家公司名称,又是一类技术和产品的统称。
-
处理器架构:英国ARM公司设计的RISC指令集架构(ISA),通过IP授权模式供芯片厂商(如ST、NXP)使用。
-
生态地位:占据嵌入式市场90%以上份额,覆盖MCU/MPU领域。
技术分支
-
Cortex-M系列:针对MCU优化(确定性中断响应、低功耗),如M0(能效优先)、M4(带FPU/DSP指令)、M7(高性能)。
-
Cortex-A系列:面向MPU/AP(应用处理器),支持Linux/Android(如树莓派4的Cortex-A72)。
-
Cortex-R系列:实时处理器(汽车ABS、工业安全控制)。
关键特性
-
指令集:Thumb-2(16/32位混合编码,代码密度高)、NEON(SIMD加速)、TrustZone(安全隔离)。
-
功耗优化:动态电压频率调整(DVFS)、多级休眠模式(Run/Idle/Stop)。
五、 FPGA(Field-Programmable Gate Array,现场可编程门阵列)
核心定义
-
硬件可编程器件:通过配置逻辑单元(LUT)和互连资源实现任意数字电路,支持并行处理。
-
定位:高速、低延迟硬件加速,替代ASIC原型开发。
技术细节
-
架构组成:
-
可配置逻辑块(CLB):由LUT(实现组合逻辑)+触发器(时序逻辑)构成。
-
互连资源:可编程布线通道连接CLB。
-
硬核资源:高速SerDes(PCIe、SATA)、DSP Slice(乘法累加器)、Block RAM。
-
-
开发流程:使用HDL(Verilog/VHDL)或HLS(C→RTL)设计,经综合、布局布线生成比特流。
-
动态重构:部分型号支持运行时重配置(如Xilinx Zynq的Partial Reconfiguration)。
典型应用
-
通信系统:5G基带处理(LDPC编解码)、光传输(OTN成帧)。
-
实时信号处理:雷达波束成形(并行FFT)、高速数据采集(ADC接口逻辑)。
-
ASIC原型验证:流片前功能仿真与性能测试。
FPGA与MCU/DSP的本质区别
1. 硬件可重构性
特性 | FPGA | MCU/DSP |
---|---|---|
硬件架构 | 可编程逻辑单元(LUT+触发器)和互连资源, 通过配置实现任意数字电路。 | 固定硬件架构(CPU+外设), 仅能通过软件指令控制现有硬件。 |
功能实现 | 通过硬件描述语言(HDL)定义电路结构, 直接映射为物理硬件逻辑。 | 通过软件代码(C/汇编)在固定硬件上顺序执行指令。 |
并行性 | 真正硬件级并行:多个逻辑模块同时运行, 无指令流水线冲突。 | 伪并行:依赖多线程/中断切换, 本质是时间片轮转。 |
灵活性 | 可动态重构硬件功能(如Partial Reconfiguration), 支持运行时切换电路模块。 | 功能受限于固定硬件资源, 只能通过软件更新改变行为。 |
2. 性能与效率
指标 | FPGA | MCU/DSP |
---|---|---|
延迟 | 纳秒级(硬件直接处理信号,无操作系统开销)。 | 微秒~毫秒级(需经过软件调度和指令执行)。 |
吞吐量 | 数十Gbps(如高速接口、数据流处理)。 | 通常低于1Gbps(受限于CPU主频和总线带宽)。 |
能效比 | 高(定制硬件仅实现必要功能,无冗余功耗)。 | 较低(通用硬件执行软件存在指令译码等开销)。 |
FPGA的突出优势
1. 硬件级并行加速
-
场景示例:
-
在图像处理中,FPGA可对每个像素并行执行滤波操作(如Sobel边缘检测),而MCU/DSP需逐像素循环处理。
-
5G通信的LDPC解码算法,FPGA可部署数百个并行计算单元,实现TB级吞吐量。
-
2. 超低延迟确定性响应
-
场景示例:
-
工业实时控制(如机器人关节控制),FPGA的PWM生成延迟<100ns,远快于MCU的软件PWM(通常>1μs)。
-
高频交易系统,FPGA实现纳秒级行情解析与下单,避免操作系统调度带来的抖动。
-
3. 接口与协议灵活性
-
场景示例:
-
自定义高速接口(如CameraLink、JESD204B),无需专用芯片,直接通过FPGA逻辑实现。
-
协议转换(如PCIe转千兆以太网),FPGA可同时处理多协议数据流。
-
4. 算法硬件化优化
-
技术实现:
-
流水线化:将复杂算法拆分为多级流水线,每级独立运行(如FFT的蝶形运算)。
-
数据流架构:数据驱动处理,无需缓存(如视频处理中的行缓冲优化)。
-
位级操作:直接操作比特流(如加密算法的位掩码、循环移位)。
-
5. 动态重构与长期维护
-
应用价值:
-
卫星通信设备可通过远程更新FPGA配置,适应新通信协议(如从DVB-S2升级到DVB-S2X)。
-
医疗设备(如超声成像仪)在不更换硬件的情况下,通过FPGA升级支持新成像算法。
-
FPGA的典型应用场景
1. 通信与网络
-
5G基站:大规模MIMO波束成形、毫米波前端控制。
-
光传输网络:OTN成帧/解帧、FEC编解码(如100Gbps DP-QPSK系统)。
2. 高性能计算
-
金融计算:期权定价(Monte Carlo仿真)加速,比CPU快100倍以上。
-
基因测序:Smith-Waterman序列比对算法的硬件加速。
3. 实时信号处理
-
雷达系统:脉冲压缩、动目标检测(MTD)的硬件实现。
-
软件无线电(SDR):实时调制解调(如LTE/Wi-Fi基带处理)。
4. 边缘AI推理
-
低延迟推理:YOLO目标检测模型量化后部署至FPGA,延迟<1ms(对比GPU通常>5ms)。
-
能效优化:二值神经网络(BNN)在FPGA上的能效比可达10TOPS/W。
FPGA的局限性
挑战 | 说明 |
---|---|
开发复杂度 | 需硬件设计思维(HDL编程),学习曲线陡峭(对比MCU的C语言)。 |
成本 | 高端FPGA芯片价格高(如Xilinx Virtex UltraScale+系列单价超$10k)。 |
功耗 | 大规模设计功耗可达数十瓦,需复杂散热方案(对比低功耗MCU的mW级)。 |
生态壁垒 | 工具链封闭(如Vivado/Quartus),开源工具支持有限(对比ARM的GCC生态)。 |
FPGA与其他处理器的协同模式
1. FPGA + MCU
-
分工:
-
MCU:运行用户界面、网络协议栈等软件任务。
-
FPGA:处理高速数据采集(如16位ADC @1MSPS)、精密定时控制。
-
-
案例:工业PLC系统,FPGA实现多轴电机同步控制,MCU管理HMI和通信。
2. FPGA + DSP
-
分工:
-
DSP:执行浮点密集型算法(如雷达信号频域分析)。
-
FPGA:实现前端数据预处理(数字下变频、抽取滤波)。
-
-
案例:军用电子对抗
六、 DSP(Digital Signal Processor)
核心定义
-
专用信号处理器:针对数字滤波、FFT(快速傅里叶变换)等算法优化,硬件加速乘加运算(MAC)。
-
定位:高吞吐量信号处理,如音频/图像编解码。
-
两种含义:
-
(1)用作数字信号处理(Digital Signal Processing,DSP),是用数值计算的方式对信号进行加工处理的理论和技术。
-
(2)数字信号处理器(Digital Signal Processor,DSP)是一种专用于数字信号处理领域的微处理器芯片,将数字信号处理算法用具体的器件实现。
技术细节
-
架构特性:
-
哈佛架构:独立数据/程序总线(避免冯·诺依曼瓶颈)。
-
硬件加速器:单周期MAC单元、位反转寻址(FFT(快速傅里叶变换)优化)、环形缓冲区(滤波器)。
-
VLIW指令:超长指令字并行发射(如TI C6000系列)。
-
-
开发工具:MATLAB/Simulink模型生成代码(自动优化循环展开)、专用库(TI DSPLIB)。
典型应用
-
音频处理:主动降噪(ANC)、语音识别(MFCC特征提取)。
-
图像处理:JPEG压缩、机器视觉(边缘检测)。
-
通信系统:调制解调(QAM映射)、信道均衡(LMS算法)。
七、对比与协同
维度 | MCU | MPU | ARM | FPGA | DSP |
---|---|---|---|---|---|
核心任务 | 实时控制 | 通用计算 | 处理器架构 | 硬件逻辑加速 | 信号处理加速 |
集成度 | 高(SoC) | 低(需外设) | N/A | 可编程逻辑单元 | 专用计算单元 |
编程模型 | C/汇编(顺序执行) | C++/Python(多任务) | ISA规范 | HDL(并行硬件描述) | C/汇编(优化循环) |
性能指标 | 延迟(μs级) | 算力(DMIPS/MHz) | 架构效率 | 吞吐量(Gbps) | MAC速率(GMACS) |
典型场景 | 电机控制(PID) | 嵌入式Linux网关 | 跨领域 | 协议转换(PCIe→SATA) | 音频编解码(MP3) |
协同案例 | STM32H7(MCU+DSP扩展指令) | Xilinx Zynq(ARM+FPGA) | Cortex-A+DSP核 | FPGA实现DSP算法加速 | DSP+MCU双核架构 |
八、总结
-
MCU:控制领域的基石,强调实时性与集成度。
-
MPU:复杂系统的计算中枢,依赖操作系统生态。
-
ARM:统一嵌入式处理器生态的架构标准。
-
FPGA:硬件灵活性的终极解决方案,适合高速定制逻辑。
-
DSP:信号处理任务的效能王者,专为算法优化。
在实际系统中,这些组件常以异构计算形式协同工作(如TI OMAP系列:ARM+ DSP+ GPU),通过架构级分工实现性能与能效的最优平衡。
九、ARM-Linux开发与MCU开发
硬件 | 开发方式 | 开发环境 | 启动方式 | 场合、行业 | |
---|---|---|---|---|---|
MCU 开发 | 开发板(下位机):仿真器(调试器):用于下载烧写程序和程序调试在线仿真;USB 线:CH340 USB 转串口驱动 | 直接裸机开发,单片机本身就是一个完整的计算机系统,有片内 RAM 和 Flash 及 UART、I²C、AD 等外设,此类单片机的处理能力有限 | 集成开发环境/软件为 Keil µVision | 通常芯片厂商将上电启动代码固化在芯片中,上电后直接跳转到程序入口处,实现系统的启动 | 工控领域、中低端家电、可穿戴设备等,如智能手环、微波炉、血糖仪 |
ARM-Linux 开发 | 开发板(下位机):网线:用于连接开发板和上位机,实现 TFTP 下载内核(程序等);串口线:用于开发过程中采用终端进行串口调试或下载程序;minicom 串口调试工具;SD卡:用于存储 Bootloader、内核映像,引导系统启动 | 通常只是一个 CPU,需外部电路提供 RAM,此类 ARM 芯片的处理能力很强大,通过外部电路可实现各种复杂的功能,上位机需安装操作系统(Ubuntu)或采用虚拟机安装 Ubuntu | 集成开发环境/软件包括 Eclipse、QT 图形界面 | 与 PC 启动方式类似,启动一般包括 BIOS、Bootloader、内核启动、应用程序启动等几个阶段 | 消费电子、高端应用,如智能手机、平板电脑、单反相机等 |
相关文章:
STM32 —— MCU、MPU、ARM、FPGA、DSP
在嵌入式系统中,MCU、MPU、ARM、FPGA和DSP是核心组件,各自在架构、功能和应用场景上有显著差异。以下从专业角度详细解析这些概念: 一、 MCU(Microcontroller Unit,微控制器单元) 核心定义 集成系统芯片&a…...
Linux高级IO
五种IO模型 具象化理解 IO:等 数据拷贝 read/recv: 1、等 - IO事件就绪 - 检测功能成分在里面 2、数据拷贝 问:什么叫做高效的IO? 答:单位时间,等的比重越小,IO的效率越高。 IO模型&am…...
机器人的手眼标定——机器人抓取系统基础系列(五)
机器人的手眼标定——机器人抓取系统基础系列(五) 前言一、机器人标定相关概念1.1 内参标定和外参标定1.2 Eye-in-Hand 和 Eye-to-Hand1.3 ArUco二维码和棋盘格标定区别 二、机器人标定基本原理2.1 机器人抓取系统坐标系2.2 标定原理 三、标定步骤和注意…...
Android 图片加载框架:Picasso vs Glide
引言 在 Android 开发中,图片加载是移动应用的核心功能之一。合理选择图片加载框架不仅能提升用户体验,还能优化内存管理和应用性能。本文将深入对比 Picasso 和 Glide 两大主流框架,结合代码示例分析它们的差异、工作原理及优化策略。 1. …...
uniapp从 vue2 项目迁移到 vue3流程
以下是必须为迁移到 vue3 进行调整的要点,以便 vue2 项目可以在 vue3 上正常运行。 1. 在index.js中创建应用程序实例 // Before - Vue 2 import Vue from vue import App from ./App // with no need for vue3 Vue.config.productionTip false // vue3 is no lon…...
DeepSeek R1 本地部署指南 (2) - macOS 本地部署
上一篇: DeepSeek R1 本地部署指南 (1) - Windows 本地部署-CSDN博客 1.安装 Ollama Ollama https://ollama.com/ 点击 Download - Download for macOS 解压下载 zip 启动程序 3. 选择版本 DeepSeek R1 版本 deepseek-r1 https://ollama.com/library/deepseek-r1 模…...
DeepSeek技术架构解析:MoE混合专家模型
一、前言 2025年初,DeepSeek V3以557万美元的研发成本(仅为GPT-4的1/14)和开源模型第一的排名,在全球AI领域掀起波澜。其核心创新之一——混合专家模型(Mixture of Experts, MoE)的优化设计,不…...
Ubuntu实时读取音乐软件的音频流
文章目录 一. 前言二. 开发环境三. 具体操作四. 实际效果 一. 前言 起因是这样的,我需要在Ubuntu中,实时读取正在播放音乐的音频流,然后对音频进行相关的处理。本来打算使用的PipewireHelvum的方式实现,好处是可以直接利用Helvum…...
2025年2月-3月后端go开发找工作感悟
整体感悟 目标 找工作首先要有一个目标,这个目标尽可能的明确,比如我要字节、拼多多之类的公司,还是要去百度、滴滴这样的,或者目标是创业公司。但是这个目标是会动态调整的,有可能我们的心态发生了变化,一…...
OpenCV图像拼接(1)自动校准之校准旋转相机的函数calibrateRotatingCamera()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::detail::calibrateRotatingCamera 是OpenCV中用于校准旋转相机的函数。它特别适用于那种相机相对于一个固定的场景进行纯旋转运动的情况&…...
【极速版 -- 大模型入门到进阶】快速了解大型语言模型
文章目录 🌊 大模型作为一种生成式人工智慧,厉害在哪儿?-> 通用能力🌊 LLM 如何生成输出:简而言之就是文字接龙🌊 GPT 之前 ...:模型规模和数据规模概览🌊 ChatGPT 有三个训练阶段…...
MySQL 锁机制详解
MySQL 锁机制详解 5.1 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、 RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有 效性是所有数…...
牛客网【模板】二维差分(详解)c++
题目链接:【模板】二维差分 1.题目分析 类比一下,因为差分因为差分是在数组里的某一段同时加上一个K二维是在二维数组中选择一个词矩阵,让词矩阵中每一个元素都加上一个K 2.算法原理 解法-:暴力解法 -> 模拟 你告诉我一个左上角和右下…...
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
我正在参加Trae「超级体验官」创意实践征文, 本文所使用的 Trae 免费下载链接: www.trae.ai/?utm_source… 前言 大家好,我是小Q,字节跳动近期推出了一款 AI IDE—— Trae,由国人团队开发,并且限时免费体…...
【清华大学】AIGC发展研究(3.0版)
目录 AIGC发展研究报告核心内容一、团队简介二、AI哲学三、国内外大模型四、生成式内容(一)文本生成(二)图像生成(三)音乐生成(四)视频生成 五、各行业应用六、未来展望 AIGC发展研究…...
Kafka--常见问题
1.为什么要使用 Kafka,起到什么作用 Kafka是一个高吞吐量、分布式、基于发布订阅的消息系统,它主要用于处理实时数据流 Kafka 设计上支持高吞吐量的消息传输,每秒可以处理数百万条消息。它能够在处理大量并发请求时,保持低延迟和…...
maptalks图层交互 - 模拟 Tooltip
maptalks图层交互 - 模拟 Tooltip 图层交互-模拟tooltip官方文档 <!DOCTYPE html> <html><meta charsetUTF-8 /><meta nameviewport contentwidthdevice-width, initial-scale1 /><title>图层交互 - 模拟 Tooltip</title><style typet…...
【前端】Visual Studio Code安装配置教程:下载、汉化、常用组件、基本操作
文章目录 一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2、view-in-browser3、Live Server 四、基本操作五、感谢观看! 一、Visual Studio Code下载 下载官网:https://code.visualstudio.com/ 进入官网后点击右上角的Download &…...
datetime“陷阱”与救赎:扒“时间差值”证道
时间工具陷阱,其实是工具引用的误解。 笔记模板由python脚本于2025-03-23 23:32:58创建,本篇笔记适合时间工具研究的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。 Pyth…...
3DMAX曲线生成器插件CurveGenerator使用方法
1. 脚本功能简介 3DMAX曲线生成器插件CurveGenerator是一个用于 3ds Max 的样条线生成工具,用户可以通过简单的UI界面输入参数,快速生成多条样条线。每条样条线的高度值随机生成,且可以自定义以下参数: 顶点数量:每条…...
Apache漏洞再现
CVE-2021-41773路径穿越漏洞 1、开环境 sudo docker pull blueteamsteve/cve-2021-41773:no-cgid sudo docker run -dit -p 8082:80 blueteamsteve/cve-2021-41773:no-cgid 2、访问8082端口 3、打开工具 4、输入网址,检测漏洞...
git,openpnp - 根据安装程序打包名称找到对应的源码版本
文章目录 git,openpnp - 根据安装程序打包名称找到对应的源码版本概述笔记备注 - 提交时间不可以作为查找提交记录的依据END git,openpnp - 根据安装程序打包名称找到对应的源码版本 概述 想在openpnp官方最新稳定版上改一改,首先就得知道官方打包的安装程序对应的…...
SQL Server查询计划操作符(7.3)——查询计划相关操作符(11)
7.3. 查询计划相关操作符 98)Table Scan:该操作符从查询计划参数列确定的表中获取所有数据行。如果其参数列中出现WHERE:()谓词,则只返回满足该谓词的数据行。该操作符为逻辑操作符和物理操作符。该操作符具体如图7.3-98节点1所示。 图 7.3-…...
编译原理——词法分析
文章目录 词法分析:从基础到自动构造一、词法分析程序的设计一、词法分析程序的设计二、PL/0编译程序中词法分析程序的设计与实现1. 语法特定考量2. 通过状态转移表运用有限状态自动机3. 示例代码片段(用于说明的伪代码) 三、单词的形式化描述…...
Linux内核,内存分布
x86_64的物理地址范围为64bit,但是因为地址空间太大目前不可能完全用完,当前支持57bit和48bit两种虚拟地址模式。 地址模式单个空间用户地址空间内核地址空间32位2G0x00000000 - 0x7FFFFFFF0x80000000 - 0xFFFFFFFF64位(48bit)128T0x00000000 00000000 …...
AI鸟类识别技术革新生态监测:快瞳科技如何用“智慧之眼”守护自然?
在生态环境保护日益受关注的今天,“鸟类识别”已从专业科研工具演变为推动生态治理数字化的核心技术。无论是湿地保护区的珍稀候鸟监测,还是城市机场的鸟击风险预警,AI技术的精准赋能正在改写人类与自然的互动方式。作为行业领先的智能解决方…...
c++之set
一、set特性及用途? 唯一性:set 中的元素是唯一的,不会存在重复的元素。自动排序:set 中的元素会自动按照默认的升序规则进行排序。底层实现:set 通常基于红黑树实现,具有自平衡功能,因此插入、…...
【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解
目录 一、前言 二、AI视频概述 2.1 什么是AI视频 2.2 AI视频核心特点 2.3 AI视频应用场景 三、通义万相介绍 3.1 通义万相概述 3.1.1 什么是通义万相 3.2 通义万相核心特点 3.3 通义万相技术特点 3.4 通义万相应用场景 四、DeepSeek 通义万相制作AI视频流程 4.1 D…...
【操作系统】自旋锁和互斥锁
自旋锁和互斥锁是用于多线程同步的两种常见锁机制,主要区别在于等待锁的方式和适用场景。以下是它们的对比分析: 1. 等待机制 自旋锁(Spinlock)互斥锁(Mutex)线程通过 忙等待(Busy-Wait&#x…...
人工智能在医疗影像诊断中的应用与实践
引言 随着人工智能技术的飞速发展,其在医疗领域的应用逐渐成为研究和实践的热点。特别是在医疗影像诊断方面,人工智能技术凭借其强大的数据处理能力和模式识别能力,为提高诊断效率和准确性带来了新的希望。本文将探讨人工智能在医疗影像诊断中…...
Java中synchronized 和 Lock
1. synchronized 关键字 工作原理 对象锁:在Java中,每个对象都有一个与之关联的监视器锁(monitor lock)。当一个线程尝试进入由 synchronized 保护的代码块或方法时,它必须首先获取该对象的监视器锁。如果锁已经被其…...
【C语言系列】数据在内存中存储
数据在内存中存储 一、整数在内存中的存储二、大小端字节序和字节序判断2.1什么是大小端?2.2练习2.2.1练习12.2.2练习22.2.3练习32.2.4练习42.2.5练习52.2.6练习6 三、浮点数在内存中的存储3.1练习3.2浮点数的存储3.2.1 浮点数存的过程3.2.2 浮点数取的过程 3.3题目…...
qt 对QObject::tr()函数进行重定向
在 Qt 中,QObject::tr() 函数用于国际化(i18n),它用于标记需要翻译的字符串。通常情况下,tr() 函数会从翻译文件(如 .qm 文件)中查找对应的翻译字符串。如果你希望重定向 tr() 函数的行为&#…...
C#基础学习(三)值类型和引用类型:编程世界的“现金“ vs “银行卡“,以及string这个“渣男“的叛变行为
开场白 各位程序猿/媛们,今天我们来聊一聊编程世界里的"金钱观"。 你以为只有人类会纠结现金和存款的区别?不不不,C#中的值类型和引用类型每天都在上演这场大戏! 而我们的string同学,表面是…...
自动驾驶背后的数学:多模态传感器融合的简单建模
上一篇博客自动驾驶背后的数学:特征提取中的线性变换与非线性激活 以单个传感器为例,讲解了特征提取中的线性变换与非线性激活。 这一篇将以多模态传感器融合为例,讲解稍复杂的线性变换和非线性激活应用场景。 (一)权重矩阵的张量积分解 y = W x + b = [ w 11 ⋯ w 1 n ⋮…...
如何设置sudo权限
打开终端:按 Ctrl Alt T 打开终端。 编辑 sudoers 文件: 使用 visudo 命令编辑 /etc/sudoers 文件(visudo 会检查语法,避免错误): sudo visudo 添加用户权限: 在文件中找到以下行࿱…...
Codeforces Round 1012 (Div. 2) 3.23
文章目录 2025.3.23 Div2B. Pushing Balls(暴力)代码 C. Dining Hall题意思路代码 2025.3.23 Div2 Dashboard - Codeforces Round 1012 (Div. 2) - Codeforces B. Pushing Balls(暴力) 题意很好懂,每一行每一列从左…...
langfuse追踪Trace
介绍 🧠 Langfuse 是什么? Langfuse 是一个专门为 LLM 应用(如 OpenAI / LangChain / 自定义 Agent) 设计的 观测与追踪平台(Observability Platform)。 简单说,它就像是你为 AI 应用插上的 “…...
Java-模块二-2
整数类型 byte:在 Java 中占用8位(1字节),因此它的取值范围是从 -128 到 127。这是最小的整数类型,适合用于节省空间的情况。 short:这种类型的大小是16位(2字节),允许的…...
使用VS2022编译CEF
前提 选择编译的版本 CEF自动编译,在这里可以看到最新的稳定版和Beta版。 从这里得出,最新的稳定版是134.0.6998.118,对应的cef branch是6998。通过这个信息可以在Build requirements查到相关的软件配置信息。 这里主要看Windows下的编译要…...
大模型RLHF训练-PPO算法详解:Proximal Policy Optimization Algorithms
一、TL;DR 提出了一种新的策略梯度方法家族,用于强化学习,这些方法交替进行与环境交互采样数据提出了一个新的目标函数,使得能够进行多个小批量更新的多轮训练这些新方法为近端策略优化(Proximal Policy Optimization…...
【STM32实物】基于STM32的扫地机器人/小车控制系统设计
基于STM32的扫地机器人/小车控制系统设计 演示视频: 基于STM32的扫地机器人小车控制系统设计 简介:扫地机器人系统采用分层结构设计,主要包括底层硬件控制层、中间数据处理层和上层用户交互层。底层硬件控制层负责对各个硬件模块进行控制和数据采集,中间数据处理层负责对采…...
【C++初阶】从零开始模拟实现vector(含迭代器失效详细讲解)
目录 1、基本结构 1.1成员变量 1.2无参构造函数 1.3有参构造函数 preserve()的实现 代码部分: push_back()的实现 代码部分: 代码部分: 1.4拷贝构造函数 代码部分: 1.5支持{}初始化的构造函数 代码部分: …...
AI比人脑更强,因为被植入思维模型【21】冯诺依曼思维模型
定义 冯诺依曼思维模型是一种基于数理逻辑和系统分析的思维方式,它将复杂的问题或系统分解为若干个基本的组成部分,通过建立数学模型和逻辑规则来描述和分析这些部分之间的关系,进而实现对整个系统的理解和优化。该模型强调从整体到局部、再…...
Keil5调试技巧
一、引言 Keil5作为一款广泛应用于嵌入式系统开发的集成开发环境(IDE),在微控制器编程领域占据着重要地位。它不仅提供了强大的代码编辑和编译功能,还具备丰富的调试工具,帮助开发者快速定位和解决代码中的问题。本文…...
Web PKI现行应用、标准
中国现行 Web PKI 标准 中国在 Web PKI(公钥基础设施)领域制定了多项国家标准,以确保网络安全和数字证书管理的规范性。以下是一些现行的重要标准: 1. GB/T 21053-2023《信息安全技术 公钥基础设施 PKI系统安全技术要求》 该标…...
ROS多机通信(四)——Ubuntu 网卡 Mesh 模式配置指南
引言 使用Ad-hoc加路由协议和直接Mesh模式配置网卡实现的网络结构是一样的,主要是看应用选择, Ad-Hoc模式 B.A.T.M.A.N. / OLSR 优点:灵活性高,适合移动性强或需要优化的复杂网络。 缺点:配置复杂,需手动…...
【实用部署教程】olmOCR智能PDF文本提取系统:从安装到可视化界面实现
文章目录 引言系统要求1. 环境准备:安装Miniconda激活环境 2. 配置pip源加速下载3. 配置学术加速(访问国外资源)4. 安装系统依赖5. 安装OLMOCR6. 运行OLMOCR处理PDF文档7. 理解OLMOCR输出结果9. 可视化UI界面9.1 安装界面依赖9.2 创建界面应用…...
STM32单片机uCOS-Ⅲ系统11 中断管理
目录 一、异常与中断的基本概念 1、中断的介绍 2、和中断相关的名词解释 二、中断的运作机制 三、中断延迟的概念 四、中断的应用场景 五、中断管理讲解 六、中断延迟发布 1、中断延迟发布的概念 2、中断队列控制块 3、中断延迟发布任务初始化 OS_IntQTaskInit() 4…...
CTF【WEB】学习笔记1号刊
Kali的小工具箱 curl www.xxx.com:查看服务器响应返回的信息 curl -I www.xxx.com:查看响应的文件头 一、cmd执行命令 ipconfig:ip地址配置等; 二、 Kali操作 1.sudo su; 2.msfconsole 3.search ms17_010 永恒之蓝ÿ…...