嵌入式常见概念的介绍
目录
一、MCU、MPU、ARM
(一)MCU(微控制器)
(二)MPU(微处理器)
(三)ARM(架构)
二、DSP
(一)数字信号处理
(二)数字信号处理器
三、FPGA
(一)基本概念
(二)特点
(三)工作原理
(四)应用领域
四、MCU开发与ARX-Linux开发的区别
(一)硬件层面
(二)软件层面
(三)应用场景
五、开源硬件Arduino和树莓派
(一)Arduino
(二)树莓派
一、MCU、MPU、ARM
(一)MCU(微控制器)
1、定义
MCU的英文全称是 Micro Controller Unit,即微处理器,又称单片微型计算机或者单片机。
它把中央处理器 (CPU) 的频率与规格做适当缩减,并将内存 (RAM、ROM)、定时器/计数器、USB、A/D 转换、UART、PLC、DMA 等周边接口,甚至 LCD 驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
2、特点
其最大特点是单片化,体积小、功耗低、可靠性高,并且具备丰富的外设接口,适用于对成本和功耗要求较高、控制功能较为复杂的嵌入式应用场景。
在智能家居、工业控制、消费电子等领域广泛使用。例如,在智能家居系统中,MCU 可以控制家电设备的运行状态、接收传感器数据等。
(二)MPU(微处理器)
1、定义
MPU 的英文全称是 Micro Processor Unit,即微处理器,通常是由计算机中的CPU演变而来的,可以理解为加强版的CPU,是一种高性能的处理器,即不带外围功能的器件。
它通常具有强大的运算能力和复杂的指令集,可以进行复杂的运算和处理。
嵌入式微处理器系统需要在MPU 的基础上添加 RAM、ROM、Flash、电源等外围电路,以及USB、LCD、键盘等外部设备,来构成完整的计算机系统。
而MCU则是将 RAM、ROM、定时器等外设集成在一个芯片上,形成芯片级的系统,即MCU集成了外围功能器件。
2、特点
MPU 的优势在于其强大的运算能力和对复杂操作系统的支持,能够处理大量的数据和复杂的任务,主要应用于对计算能力要求较高的嵌入式系统,如智能手机、平板电脑、工业平板电脑、车载导航系统等。
以智能手机为例,MPU 需要运行复杂的操作系统和各种应用程序,处理图像、音频、视频等大量数据,这就需要 MPU 具备强大的运算能力和高速的处理速度。
(三)ARM(架构)
1、定义
ARM 的全称为 Advanced RISC Machines,是一个公司的名称,同时也是一种处理器架构的名称。
ARM 公司并不直接生产芯片,而是设计芯片架构和 IP 核,授权给其他半导体公司生产基于 ARM 架构的芯片。
2、特点
ARM 架构具有低功耗、低成本、高性能的特点,广泛应用于嵌入式系统领域。基于 ARM 架构的芯片在市场上占据了很大的份额,无论是 MCU 还是 MPU,很多都采用了 ARM 架构。
例如,Cortex - M 系列是面向微控制器应用的低功耗、低成本的 ARM 架构,常用于各类 MCU 中;而 Cortex - A 系列则是面向高性能应用的架构,常用于智能手机、平板电脑等设备中的 MPU。
二、DSP
DSP有两种含义:①数字信号处理(Digital Signal Processing)、②数字信号处理器(Digital Signal Processor)。以下是对它们的详细介绍:
(一)数字信号处理
1、定义
是一种通过计算机或专用处理设备,对数字信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以达到提取信息、便于应用的目的的技术。
2、处理过程
① 采样:将连续的模拟信号转换为离散的数字信号,按照一定的采样频率对模拟信号进行抽样,得到一系列离散的样本点。
② 量化:将采样得到的离散信号的幅度值进行量化,将其映射到有限个离散的电平值上,以便于计算机进行处理。
③ 编码:对量化后的信号进行编码,将其转换为二进制代码表示,以便于存储和传输。
④ 数字信号处理算法:运用各种算法对编码后的数字信号进行处理,如快速傅里叶变换 (FFT) 用于频谱分析、数字滤波用于去除噪声、卷积运算用于信号的特征提取等。
⑤ 解码:将处理后的数字信号进行解码,还原为原始信号的表示形式。
⑥ 重构:将解码后的数字信号通过数模转换器(DAC)转换为模拟信号,以便于实际应用。
3、应用
广泛应用于通信、音频处理、图像处理、雷达、声纳、生物医学工程等众多领域。
例如在通信领域,数字信号处理用于调制解调、信道编码解码等,以提高通信系统的性能和可靠性;在音频处理中,用于音频编码解码、音效增强等,改善音频质量。
(二)数字信号处理器
1、定义
是一种专门为了进行数字信号处理而设计的微处理器,它具备独特的硬件架构和指令集,能够高效地执行各种数字信号处理算法。
2、特点
① 哈佛结构:采用哈佛结构,将程序存储器和数据存储器分开,有各自独立的总线,可同时进行指令和数据的读取,提高了数据处理效率。
② 高速运算能力:集成了专门的硬件乘法器、累加器等,能在一个指令周期内完成一次乘法和一次加法操作,适合数字信号处理中的滤波、FFT 等运算密集型任务。
③ 丰富的指令集:具有针对数字信号处理的指令集,如 FFT 指令、卷积指令等,可高效实现各种数字信号处理算法。
④ 低功耗设计:随着技术发展,不断优化低功耗设计,适用于电池供电的便携式设备。
3、应用
在需要对数字信号进行实时处理的设备和系统中广泛应用。
如在手机中,用于处理音频、视频信号以及通信信号;在数字音频播放器中,负责音频解码和音效处理;在雷达系统中,用于对回波信号进行处理,提取目标信息等。
三、FPGA
(一)基本概念
FPGA 的全称是 Field Programmable Gate Array,即现场可编程门阵列;是一种基于查找表 (LUT) 结构的可编程逻辑器件。
由大量的逻辑单元、存储单元、输入输出单元以及可编程的布线资源组成。
用户可通过硬件描述语言(如Verilog HDL、VHDL)对其进行编程,实现各种数字逻辑功能,如组合逻辑、时序逻辑、计数器、编码器、译码器等,还能实现复杂的系统级功能,如数字信号处理、图像处理、通信协议处理等。
通俗地讲,FPGA犹是一张白纸,可以任意实现所需功能,无论是复杂的CPU,还是简单的数字逻辑电路,都可以用 FPGA 实现。
而单片机、ARM 以及DSP则是已成型的机器,单片机和ARM能现的功能,FPGA一定可以实现,反过来不一定可行。
(二)特点
1、灵活性高
用户可以根据自己的需求对 FPGA 进行编程,实现不同的功能。
在产品开发过程中,如果需要对功能进行修改或升级,只需重新编写程序并下载到 FPGA 中,而无需对硬件电路进行大规模改动。
2、并行处理能力强
FPGA 内部有大量可并行工作的逻辑单元,能够同时处理多个任务,实现数据的并行处理和运算。这使得它在处理一些对实时性要求较高的任务,如图像处理、视频解码等具有很大优势。
3、可重构性
部分 FPGA 支持在线重构,即在系统运行过程中可以动态地改变其逻辑功能。
这一特性使得 FPGA 能够根据不同的应用场景或任务需求,实时地调整自身的功能,提高了系统的适应性和灵活性。
4、开发周期短
与专用集成电路(ASIC)相比,FPGA 的开发不需要复杂的制造流程和较长的开发周期。开发人员可以快速地进行设计、仿真和验证,缩短产品的上市时间。
(三)工作原理
FPGA 的工作原理基于可编程逻辑单元的配置和互连。其内部的逻辑单元通过可编程的布线资源连接在一起,形成各种逻辑电路。
用户通过编写硬件描述语言代码来描述所需的逻辑功能,然后使用 FPGA 开发工具对代码进行编译、综合、布局布线等处理,生成配置文件。
将配置文件下载到 FPGA 中后,FPGA 会根据配置文件中的信息对内部的逻辑单元和布线资源进行配置,使其实现用户所期望的功能。
(四)应用领域
1、通信领域
用于实现各种通信协议的处理,如以太网、USB、PCI - E 等接口协议,以及无线通信中的调制解调、信道编码解码等功能。
在 5G 通信基站中,FPGA 可用于处理高速的信号传输和复杂的数字信号处理算法。
2、数字信号处理领域
可实现快速傅里叶变换 (FFT)、数字滤波、卷积运算等数字信号处理算法,常用于音频处理、图像处理、雷达信号处理等方面。
例如,在音频处理中,利用 FPGA 实现音频特效处理和音频编解码。
3、工业控制领域
用于实现逻辑控制、运动控制、数据采集等功能。在自动化生产线中,FPGA 可以作为核心控制器,对各种传感器和执行机构进行实时控制和数据处理。
4、航空航天与国防领域
由于其高可靠性和灵活性,FPGA 在航空航天和国防领域得到了广泛应用。
如卫星通信、雷达系统、武器装备的控制等。在恶劣的环境条件下,FPGA 能够稳定地工作,并根据任务需求进行功能重构。
四、MCU开发与ARX-Linux开发的区别
MCU 开发和 ARM - Linux 开发是嵌入式开发中两种不同的开发方向,它们在多个方面存在明显区别:
(一)硬件层面
1、硬件平台
(1)MCU:通常是集成度高的单芯片解决方案,内部集成了 CPU、内存、外设接口等,硬件资源相对有限。比如常见的 STM32 系列 MCU,内部 Flash 可能从几十 KB 到几 MB 不等,RAM 也一般在几 KB 到几百 KB。
(2)ARM - Linux:基于 ARM 架构的处理器,硬件资源丰富。除了处理器,还需要搭配外部存储设备(如 SD 卡、eMMC)、内存芯片(如 DDR)等。像基于 ARM Cortex - A 系列的开发板,内存可达 1GB 甚至更高,存储容量也能轻松扩展到几 GB。
2、功耗
(1)MCU:功耗较低,适合对功耗敏感的应用场景,如物联网设备、可穿戴设备等。一些低功耗 MCU 在待机模式下功耗仅为微安级别。
(2)ARM - Linux:由于硬件资源丰富,运行的系统和应用程序复杂,功耗相对较高。不过,现在也有一些低功耗优化的 ARM - Linux 平台,但总体上仍高于 MCU。
3、启动方式
(1)MCU:通常芯片厂商将上电启动代码固化在芯片中,上电后直接跳转到程序入口处,实现系统的启动。
(2)ARM - Linux:与PC启动方式类似,启动一般包括BIOS、Bootloader、内核启动、应用程序启动等几个阶段。
(二)软件层面
1、操作系统(开发方式)
(1)MCU:很多情况下不使用操作系统,直接进行裸机开发,通过编写代码直接控制硬件资源。也可使用一些轻量级的实时操作系统(RTOS),如 FreeRTOS、uC/OS 等,以实现多任务调度和资源管理。
(2)ARM - Linux:以 Linux 操作系统为基础,Linux 具有丰富的驱动程序和软件库,能支持复杂的应用程序运行。可以利用 Linux 的多用户、多任务特性,实现各种功能。
2、开发语言和工具链
(1)MCU:主要使用 C 语言进行开发,部分情况下也会使用汇编语言进行底层优化。开发工具链通常包括编译器(如 GCC)、调试器(如 JTAG、SWD)和集成开发环境(IDE),如 Keil、IAR 等。
(2)ARM - Linux:除了 C 语言,还广泛使用 C++、Python 等语言。开发工具链包括交叉编译器(如 arm - linux - gcc)、调试工具(如 gdb),以及 Linux 开发环境,如 Ubuntu 等。开发过程中还需要使用一些脚本语言(如 Shell 脚本)进行系统配置和自动化构建。
3、软件复杂度
(1)MCU:软件功能相对简单,主要实现对硬件的控制和基本的数据处理。代码量通常较小,开发周期相对较短。
(2)ARM - Linux:软件复杂度高,需要处理操作系统的移植、驱动程序的开发、文件系统的配置等。同时,应用程序也更加复杂,可能涉及图形界面、网络通信、数据库等功能。
(三)应用场景
1、MCU
适用于对成本、功耗和实时性要求较高,功能相对简单的应用场景,如智能家居设备(智能插座、温湿度传感器)、工业控制中的小型控制器、汽车电子中的一些简单控制模块等。
2、ARM - Linux
适用于对计算能力、功能丰富度和系统稳定性要求较高的应用场景,如智能终端设备(智能手机、平板电脑)、工业自动化中的人机交互界面、网络设备(路由器、交换机)等。
五、开源硬件Arduino和树莓派
Arduino 和树莓派都是广受欢迎的开源硬件平台,但它们在设计目标、硬件性能、应用场景等方面存在一些差异。以下是对其详细介绍:
(一)Arduino
1、简介
Arduino 是一个开放源码的电子原型平台,由硬件和软件组成。其硬件设计简单,易于使用,主要面向艺术家、设计师、爱好者和初学者,用于快速创建交互式电子项目。
2、硬件特点
(1)多种类型开发板
有多种类型的开发板,如Uno、Mega、Nano等,以适应不同的应用需求。
例如Uno适用于初学者和小型项目,Mega有更大的内存和更高的处理能力,适用于较为复杂、对资源需求较高的项目。
(2)接口丰富
开发板上配备了微控制器以及丰富的电子元件接口,包括数字输入输出引脚、模拟输入输出引脚等。
这些接口能够便捷地连接各类外部设备,像传感器(如温度传感器、光线传感器)、执行器(如电机、舵机)等,从而实现各种功能。
3、软件特点
(1)简单易学
采用类似于 C/C++ 的编程语言,通过 Arduino 集成开发环境(IDE)进行代码的编写、上传和调试。对于有一定编程基础的人来说,很容易上手。
(2)资源丰富
Arduino 为开发者提供了大量丰富的函数库和示例代码。这些资源极大地降低了开发的难度,就算是没有深厚电子专业背景的人员,也能够快速开发出自己的项目。
4、应用场景
常用于快速原型制作、艺术创作、物联网设备开发、机器人开发、环境监测等领域。例如,制作一个智能花盆,通过连接土壤湿度传感器和水泵,实现自动浇水功能。
(二)树莓派
1、简介
树莓派是一款基于 Linux 系统的微型计算机,旨在推广计算机科学教育和为小型设备提供计算能力。它更侧重于提供完整的计算机功能,可作为小型服务器、媒体中心或用于各种需要较高计算能力的项目。
2、硬件特点
(1)强大的处理能力
配备了性能较强的 ARM 架构处理器,内存也相对较大,能够运行完整的操作系统。
如 Raspbian (基于 Debian 的定制版)、Ubuntu 等。不同型号的树莓派在处理器性能、内存大小等方面有所不同,以满足不同用户的需求。
(2)丰富的接口
具有 HDMI 接口、USB 接口、以太网接口、音频接口等,可连接显示器、键盘、鼠标、网络设备等,使其具备与普通计算机相似的功能。
同时,也有通用输入输出引脚(GPIO),可以连接外部硬件设备进行扩展。
3、软件特点
(1)完整的操作系统
由于运行完整的 Linux 操作系统,具备完整的文件系统、多用户多任务处理能力以及丰富的软件包管理系统。用户可以像使用普通计算机一样安装和运行各种软件,如办公软件、浏览器、媒体播放器等。
(2)编程语言多样
支持多种编程语言,如 Python、C/C++、Java 等。开发者可以根据自己的需求和喜好选择合适的语言进行开发。
4、应用场景
广泛应用于智能家居控制中心、网络服务器、多媒体播放中心、人工智能实验平台、科学研究等领域。例如,搭建一个家庭媒体服务器,通过树莓派连接硬盘和电视,实现视频播放和文件共享功能。
以上即为 嵌入式常见概念的介绍 的全部内容,创作不易,麻烦三连支持一下呗~
相关文章:
嵌入式常见概念的介绍
目录 一、MCU、MPU、ARM (一)MCU(微控制器) (二)MPU(微处理器) (三)ARM(架构) 二、DSP (一)数字信号处理…...
富兴号:拨云见日,打造普洱品质典范
在高端普洱茶市场的混沌格局中,价格与品质的天平严重失衡,消费者往往深陷 “高价却难觅好茶” 的困境。而新兴品牌富兴号强势崛起,奋力冲破这一迷局,致力于重塑 “号级茶” 的卓越品质,为茶叶赋予珍贵的品鉴与收藏价值…...
【WORD】批量将doc转为docx
具体步骤进行: 打开Word文档,按下AltF11快捷键,打开VBA编辑器。在VBA编辑器中,左侧的“项目资源管理器”窗口会显示当前打开的Word文档相关项目。找到您要添加代码的文档项目(通常以文档名称命名)…...
Linux内存管理架构(1)
0.内存空间架构 1.用户空间 在 Linux 系统中,应用程序通过 malloc() 申请内存,并通过 free() 释放内存时,底层的内存管理是由 glibc(GNU C Library)中的内存分配器实现的。glibc 的内存分配器负责与操作系统的内核交互…...
Ubuntu 各个常见长期支持历史版本与代号
文章目录 1. Ubuntu 历史版本与代号2. 查看当前系统版本 在 Ubuntu 操作系统里,每个版本都有一个别具特色的名字。该名字由一个形容词与一个动物名称构成,且形容词和动物名称的首字母是一样的。例如 “Warty Warthog(长疣的疣猪)”…...
信息安全管理与评估2021年国赛正式卷答案截图以及十套国赛卷
2021年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项 任务书1 赛项时间 共计X小时。 赛项信息 赛项内容 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 平台搭建与安全设备配置防护 任务1 网络平台搭建 任务2 网络安全设备配置与防护 第二…...
在线上定位1G日志文件中的异常信息时,我这样做合适吗
1G级线上日志文件 的异常定位系统性方案 一、快速定位流程 import datetime import randomdef generate_springboot_log(file_name, file_size_gb):# 模拟Spring Boot日志内容log_levels ["INFO", "DEBUG", "WARNING", "ERROR"]cla…...
Transformer模型中的两种掩码
模型训练通常使用 批处理batch来提升训练效率。而实际中Transformer的输入序列(如句子、文本片段)长度往往不一致。为了让这些样本可以组成一个统一的形状 [B, T] 的张量给GPU进行并行计算提高效率,需要将较短的序列填充(pad&…...
FastAPI-MPC正式发布,新的AI敏捷开发利器
FastAPI-MCP发布:零配置构建微服务控制平台的革命性实践 引言 在微服务架构日益复杂的今天,如何快速实现API接口的标准化管理与可视化控制成为开发者面临的核心挑战。近日,FastAPI-MCP工具的发布引发了技术社区广泛关注,其宣称能…...
Spring Boot 项目基于责任链模式实现复杂接口的解耦和动态编排!
全文目录: 开篇语前言一、责任链模式概述责任链模式的组成部分: 二、责任链模式的核心优势三、使用责任链模式解耦复杂接口1. 定义 Handler 接口2. 实现具体的 Handler3. 创建订单对象4. 在 Spring Boot 中使用责任链模式5. 配置责任链6. 客户端调用 四、…...
学习笔记八——内存管理相关
📘 目录 内存结构基础:栈、堆、数据段Rust 的内存管理机制(对比 C/C、Java)Drop:Rust 的自动清理机制Deref:为什么 *x 能访问结构体内部值Rc:多个变量“共享一个资源”怎么办?Weak&…...
Deepseek Bart模型相比Bert的优势
BART(Bidirectional and Auto-Regressive Transformers)与BERT(Bidirectional Encoder Representations from Transformers)虽然均基于Transformer架构,但在模型设计、任务适配性和应用场景上存在显著差异。以下是BART…...
Python在糖尿病分类问题上寻找具有最佳 ROC AUC 分数和 PR AUC 分数(决策树、逻辑回归、KNN、SVM)
Python在糖尿病分类问题上寻找具有最佳 ROC AUC 分数和 PR AUC 分数(决策树、逻辑回归、KNN、SVM) 问题模板解题思路1. 导入必要的库2. 加载数据3. 划分训练集和测试集4. 数据预处理5. 定义算法及其参数6. 存储算法和对应指标7. 训练模型并计算指标8. 找…...
达梦数据库-学习-20-慢SQL优化之CTE等价改写
目录 一、环境信息 二、介绍 三、优化过程 1、原始SQL 2、源SQL执行时间 3、原始SQL执行计划 4、拆分问题 5、过滤性 6、统计信息收集 7、改写思路一 8、改写SQL一 9、改写SQL一的执行计划 10、改写思路二 11、改写SQL二 12、改写SQL二的执行计划 一、环境信息…...
软件生命周期模型:瀑布模型、螺旋模型、迭代模型、敏捷开发、增量模型、快速原型模型
目录 1.软件生命周期 2.软件生命周期模型 2.1瀑布模型 缺点【存在的问题】: 优点: 2.2 螺旋模型 特点: 2.3 迭代模型 优点: 2.4 敏捷开发 2.5 增量模型 增量模型一般和迭代模型一起使用: 2.6 快速原型模型…...
AI agents系列之全面介绍
随着大型语言模型(LLMs)的出现,人工智能(AI)取得了巨大的飞跃。这些强大的系统彻底改变了自然语言处理,但当它们与代理能力结合时,才真正释放出潜力——能够自主地推理、规划和行动。这就是LLM代理大显身手的地方,它们代表了我们与AI交互以及利用AI的方式的范式转变。 …...
Ubuntu 下通过 Docker 部署 WordPress 服务器
最近想恢复写私人博客的习惯,准备搭建一个wordpress。 在这篇博客中,我将记录如何在 Ubuntu 环境下通过 Docker 部署一个 WordPress 服务器。WordPress 是一个流行的内容管理系统(CMS),它让用户能够轻松地创建和管理网…...
Elasticsearch生态
目录 Elasticsearch核心概念 Elasticsearch实现全文检索的原理 Elasticsearch打分规则 常用的查询语法 ES数据同步方案 Elasticsearch生态非常丰富,包含了一系列工具和功能,帮助用户处理、分析和可视化数据,Elastic Stack是其核心部分&a…...
idea配置spring MVC项目启动(maven配置完后)
springmvc项目在idea中配置启动总结,下面的内容是在maven配置好后进行的。 配置 Tomcat 服务器 添加 Tomcat 到 IDEA: File → Settings → Build, Execution, Deployment → Application Servers → 点击 → 选择 Tomcat Server。 指定 Tomcat 安装目…...
大模型微调数据集怎么搞?基于easydataset实现文档转换问答对json数据集!
微调的难点之一在与数据集。本文介绍一种将文档转换为问答数据集的方法,超级快! 上图左侧是我的原文档,右侧是我基于文档生成的数据集。 原理是通过将文档片段发送给ollama本地模型,然后本地模型生成有关问题,并基于文…...
【排序算法】快速排序
目录 一、递归版本 1.1 hoare版本 问题1:为什么left 和 right指定的数据和key值相等时不能交换? 问题2:为什么跳出循环后right位置的值⼀定不⼤于key? 1.2 挖坑法 1.3 lomuto前后指针版本 二、快排优化 2.1 时间复杂度的计算 2.1.…...
爬虫:IP代理
什么是代理 代理服务器 代理服务器的作用 就是用来转发请求和响应 在爬虫中为何需要使用代理? 有些时候,需要对网站服务器发起高频的请求,网站的服务器会检测到这样的异常现象,则会讲请求对应机器的ip地址加入黑名单ÿ…...
JUC.atomic原子操作类原理分析
摘要 多线程场景下共享变量原子性操作除了可以使用Java自带的synchronized关键字以及AQS锁实现线程同步外,java.util.concurrent.atomic 包下提供了对基本类型封装类(AtomicBoolean|AtomicLong|AtomicReference|AtomicBoolean) 以及对应的数组封装。对于已有的包含…...
【XCP实战】AUTOSAR架构下XCP从0到1开发配置实践
目录 前言 正文 1.CAN功能开发 1.1 DBC的制作及导入 1.2 CanTrcv模块配置 1.3 Can Controller模块配置 1.4 CanIf模块配置 2.XCP模块集成配置配置 2.1.XCP模块配置 2.2.XCP模块的Task Mapping 2.3.XCP模块的初始化 3.在链接文件中定义标定段 4.编写标定相关的测试…...
【STM32】STemWin库,使用template API
目录 CubeMX配置 工程文件配置 Keil配置 STemwin配置 GUIConf.c LCDConf.c 打点函数 修改屏幕分辨率 GUI_X.c 主函数 添加区域填充函数 移植过程中需要一些参考手册,如下 STemwin使用指南 emWin User Guide & Reference Manual CubeMX配置 参考驱…...
Web开发-JavaEE应用动态接口代理原生反序列化危险Invoke重写方法利用链
知识点: 1、安全开发-JavaEE-动态代理&序列化&反序列化 2、安全开发-JavaEE-readObject&toString方法 一、演示案例-WEB开发-JavaEE-动态代理 动态代理 代理模式Java当中最常用的设计模式之一。其特征是代理类与委托类有同样的接口,代理类…...
C语言中while的相关题目
一、题目引入 以下程序中,while循环的循环次数是多少次? 二、代码分析 首先要明确的一点 while循环是当循环条件为真 就会一直循环 不会停止 while中i是小于10的 说明i可以取到0 1 2 3 4 5 6 7 8 9 进入第一个if判断i小于1为真时执行continue i0是为真的 执行continue 后…...
在Ubuntu下交叉编译 Qt 应用程序(完整步骤)
1、下载交叉编译器下: st-example-image-qt wayland-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-snapshot.sh 通过网盘分享的文件:STM32项目 链接: https://pan.baidu.com/s/1hTvJT2r6czWCrKSuNEZCuw?pwdth7t 提取码: th7t --来自百度网盘超级…...
深入剖析 Axios 的 POST 请求:何时使用 qs 处理数据
在前端开发中,Axios 是一个广泛使用的用于发送 HTTP 请求的库,特别是在处理 POST 请求时,数据的处理方式会直接影响到请求能否正确被后端接收和处理。其中,使用 qs 库对数据进行处理是一个常见的操作点,本文将深入探讨…...
Python中NumPy的随机操作
在数据科学、机器学习和科学计算中,随机数的生成和操作是不可或缺的一部分。NumPy作为Python中强大的数值计算库,提供了丰富的随机数生成工具,能够满足从简单随机数生成到复杂概率分布模拟的多种需求。本文将深入探讨NumPy的随机操作功能&…...
从代码学习深度学习 - 多头注意力 PyTorch 版
文章目录 前言一、多头注意力机制介绍1.1 工作原理1.2 优势1.3 代码实现概述二、代码解析2.1 导入依赖序列掩码函数2.2 掩码 Softmax 函数2.3 缩放点积注意力2.4 张量转换函数2.5 多头注意力模块2.6 测试代码总结前言 在深度学习领域,注意力机制(Attention Mechanism)是自然…...
通过扣子平台工作流将数据写入飞书多维表格
1. 进入扣子平台,并创建工作流扣子 扣子是新一代 AI 大模型智能体开发平台。整合了插件、长短期记忆、工作流、卡片等丰富能力,扣子能帮你低门槛、快速搭建个性化或具备商业价值的智能体,并发布到豆包、飞书等各个平台。https://www.coze.cn…...
python专题2-----用python生成多位,值均是数字的随机数
有很多方法可以用 Python 生成 多位随机数。我将向您介绍几个常用的方法,并解释它们的优缺点(此处以4位随机数为例): 1. 使用 random.randint() 这是最简单直接的方法: import randomrandom_number random.randint…...
Mybatis的简单介绍
文章目录 MyBatis 简介 1. MyBatis 核心特点2. MyBatis 核心组件3. MyBatis 基本使用示例(1) 依赖引入(Maven)(2) 定义 Mapper 接口(3) 定义实体类(4) 在 Service 层调用 4. MyBatis 与 JPA/Hibernate 对比 MyBatis 简介 MyBatis 是一款优秀的 持久层框…...
山东大学软件学院创新项目实训(11)之springboot+vue项目接入deepseekAPI
因为该阶段是前后端搭建阶段,所以没有进大模型的专项训练,所以先用老师给的deepseek接口进行代替 且因为前端设计部分非本人负责且还没有提交到github上,所以目前只能先编写一个简易的界面进行功能的测试 首先进行创建model类 然后创建Cha…...
Qt绘图事件
目录 1.绘图事件 1.1绘图事件 1.2声明一个画家对象 2.画线、画圆、画矩形、画文字 2.1画线 编辑 2.2画圆 2.3画矩形 2.4画文字 3.设置画笔 3.1设置画笔颜色 3.2设置画笔宽度 3.3设置画笔风格 4.设置画刷 4.1填色 4.2设置画刷风格 5.绘图高级设置 5.1设置抗锯…...
Linux 内核 BUG: Android 手机 USB 网络共享 故障
众所周知, 窝日常使用 ArchLinux 操作系统, 而 ArchLinux 是一个滚动发行版本, 也就是各个软件包更新很快. 然而, 突然发现, Android 手机的 USB 网络共享功能 BUG 了. 经过一通排查, 发现是 Linux 内核造成的 BUG. 哎, 没办法, 只能自己动手修改内核代码, 修复 BUG 了. 本文…...
程序化广告行业(82/89):解锁行业术语,开启专业交流之门
程序化广告行业(82/89):解锁行业术语,开启专业交流之门 在程序化广告这个充满活力与挑战的行业里,持续学习是我们不断进步的动力源泉。一直以来,我都期望能和大家一起深入探索这个领域,共同成长…...
Linux的网络配置的资料
目前有两种方式,network和NetworkManager。 network方式是在CentOS 6及更早版本中引入的配置方法,支持使用配置文件的方式管理网卡的配置。 NetworkManager是在CentOS 7及后续的版本中使用的配置方法,支持使用命令行和图形化界面的方式来管理…...
linux: 文件描述符fd
目录 1.C语言文件操作复习 2.底层的系统调用接口 3.文件描述符的分配规则 4.重定向 1.C语言文件操作复习 文件 内容 属性。所有对文件的操作有两部分:a.对内容的操作;b.对属性的操作。内容是数据,属性其实也是数据-存储文件,…...
每天学一个 Linux 命令(16):mkdir
每天学一个 Linux 命令(16):mkdir 命令简介 mkdir(Make Directory)是 Linux 和类 Unix 系统中用于创建新目录的基础命令。它允许用户快速创建单个目录、多级嵌套目录,并能灵活设置目录权限。 主要用途 创建单个目录:快速生成新的空目录。递归创建多级目录:自动生成缺…...
Java微服务注册中心深度解析:环境隔离、分级模型与Eureka/Nacos对比
在微服务架构体系中,注册中心如同神经系统般承担着服务发现与健康管理的核心职能。本文将从生产环境实践出发,系统剖析注册中心的环境隔离策略、分级部署模型,并通过Eureka与Nacos两大主流组件的全方位对比,帮助开发者构建高可用服…...
c++:new关键字
目录 基本语法 使用举例 应用场景 使用 new 时的注意事项 基本语法 Type* ptr new Type;Type 是你要创建的类型(可以是基本类型、结构体、类等) new Type 表示在堆上创建一个 Type 类型的对象 ptr 是一个指针,指向这个对象 使用举例 …...
理解 MCP 协议的数据传递:HTTP 之上的一层“壳子
以下是以 CSDN 博客的风格记录你对 MCP 协议数据传递的理解和发现,内容涵盖了 MCP 协议基于 HTTP 的本质、JSON-RPC 的“壳子”作用,以及为什么熟悉 HTTP 协议就足以理解 MCP 的数据传递。文章面向技术社区,结构清晰,适合分享。 理…...
word中的mathtype公式编辑时,大(中)括号会存在很大的空白
如下所示,公式编辑的时候发现总会多一个空白,怎么删也删不掉 这主要是公式的分隔符问题,选择:“格式”-“分隔符对齐”,选择第三个可以消除下面的空白 点击“确认”,效果如下所示:...
【Java】查看当前 Java 使用的垃圾回收器
一、查询 Code import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; import java.util.Arrays; import java.util.List;public class GCTypeDetector {public static void main(String[] args) {List<GarbageCollectorMX…...
Linux编程c/c++程序
前言 我们Windows系统下的idea可以说是非常智能了,集成了各种开发工具,包括并不限于编辑器/编译器/调试器/自动化构建工具/版本控制工具……而在Linux系统中,每个组件之间是相互独立的,每个组件各司其职,共同协作完成…...
【前端网络请求入门】XMLHttpRequest与Fetch保姆级教程
新手学前端时,经常会被「如何让网页和服务器说话」难住。今天我们用最通俗的语言,把浏览器最常用的两种网络请求方式——XMLHttpRequest和Fetch讲清楚,还会带完整的代码示例,跟着敲一遍就能上手! 一、先搞懂「网络请求…...
redis单机安装
redis单机安装 下载地址 官网:https://redis.io/下载列表页面:https://download.redis.io/releases/ 说明 版本选择:redis-7.0.0.tar.gz下载地址:https://download.redis.io/releases/redis-7.0.0.tar.gz 安装前准备 在linu…...
从零手写RPC-version0
参考文档 https://github.com/he2121/MyRPCFromZero Version-0 0、写项目第一步,先添加远程仓库 先在 github 上新建仓库,然后将本地新建的项目推送到远程仓库中 由于网上很多教程,所以本节不再赘述(可以让 chatGPT给出一个完…...