STM32系统架构介绍
STM32系统架构
- 1. CM3/4系统架构
- 2. CM3/4系统架构-----存储器组织结构
- 2.1 寄存器地址映射(特殊的存储器)
- 2.2 寄存器地址计算
- 2.3 寄存器的封装
- 3. CM3/4系统架构-----时钟系统
STM32 和 ARM 以及 ARM7是什么关系?
ARM
是一个做芯片标准的公司,它负责的是芯片内核的架构设计;ARM7
和STM32
是ST
等芯片公司生产的某一种类型的芯片。ST
是一个不做标准的芯片公司,根据 ARM 公司提供的芯片内核标准设计自己的芯片。所以,任何一个做 Cortex-M3 芯片,他们的内核结构都是一样的,不同的是他们的存储器容量,片上外设,IO 以及其他模块的区别。不同公司设计的 Cortex-M3 芯片他们的端口数量,串口数量,控制方法这些都是有区别的,这些资源他们可以根据自己的需求理念来设计。
1. CM3/4系统架构
注意:CM3和CM4系统架构有差异,上面为CM3系统架构,下列为CM4系统架构。
主系统由 32 位多层 AHB 总线矩阵构成,可实现以下部分的互连:
八条主控总线 七条被控总线 内核I总线(不适用于CM3) 内部 Flash ICode 总线 内核D总线 内部 Flash DCode 总线 内核S总线 主要内部 SRAM1 (112 KB) DMA1存储器总线 辅助内部 SRAM2 (16 KB) DMA2 存储器总线描述 辅助内部 SRAM3 (64 KB) DMA2 外设总线(不适用于CM3) AHB1 外设(包括 AHB-APB 总线桥和 APB 外设) 以太网 DMA 总线 AHB2 外设(不适用于CM3) USB OTG HS DMA 总线(不适用于CM3) FSMC(不适用于CM3) 借助总线矩阵,可以实现主控总线到被控总线的访问,这样即使在多个高速外设同时运行期间,系统也可以实现并发访问和高效运行。64 KB CCM(内核耦合存储器)数据 RAM 不属于总线矩阵,只能通过 CPU 对其进行访问。
总线接口 描述 S0:
I 总线此总线用于将CM3/4内核的指令总线连接到总线矩阵。内核通过此总线获取指令。 此总线访问的对象是包含代码的存储器(内部 Flash/SRAM 或通过 FSMC 的外部存储器) S1:
D 总线此总线用于将CM3/4数据总线和 64 KB CCM 数据 RAM 连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。此总线访问的对象是包含代码或数据的存储器(内部Flash 或通过 FSMC 的外部存储器)。 S2:
S 总线此总线用于将CM3/4内核的系统总线连接到总线矩阵。此总线用于访问位于外设 或 SRAM 中的数据。也可通过此总线获取指令(效率低于 ICode)。此总线访问的对象是 112 KB、64 KB 和 16 KB 的内部 SRAM、包括 APB 外设在内的 AHB1 外设、AHB2 外设以及通过 FSMC 的外部存储器。 S3/4:
DMA 存储器总线此总线用于将 DMA 存储器总线主接口连接到总线矩阵。DMA 通过此总线来执行存储器数据的传入和传出。此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB、16 KB)以及通过 FSMC 的外部存储器。 S5:
DMA 外设总线此总线用于将 DMA 外设主总线接口连接到总线矩阵。DMA 通过此总线访问 AHB 外设或执行存储器间的数据传输。此总线访问的对象是 AHB 和 APB 外设以及数据存储器:内部 SRAM 以及通过 FSMC 的外部存储器。 S6:
以太网 DMA 总线此总线用于将以太网 DMA 主接口连接到总线矩阵。以太网 DMA 通过此总线向存储器存取数据。此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB 和 16 KB)以及通过 FSMC 的外部存储器。 S7:
USB OTG HS DMA 总线此总线用于将 USB OTG HS DMA 主接口连接到总线矩阵。USB OTG DMA 通过此总线向存储器加载/存储数据。此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB 和 16 KB)以及通过 FSMC 的外部存储器。 总线矩阵 总线矩阵用于主控总线之间的访问仲裁管理。仲裁采用循环调度算法。 AHB/APB 总线桥 (APB) 借助两个 AHB/APB 总线桥 APB1 和 APB2,可在 AHB 总线与两个 APB 总线之间实现完全同步的连接,从而灵活选择外设频率。
STM32 芯片是已经封装好的成品,主要由内核和片上外设组成。若与电脑类比,内核与外设就如同电脑上的 CPU 与主板、内存、显卡、硬盘的关系。STM32F103 采用的是 Cortex-M3 内核,内核即 CPU,由 ARM 公司设计。ARM 公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商 (SOC) 如 ST、TI、Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、USART(串口)、I2C、SPI 等都叫做片上外设。
Cortex-M处理器基于一种加载-存储架构,数据需要从存储器中加载和处理后,使用多个单独的指令写回存储器。例如:要增加SRAM中存储的数据值,处理器需要使用一条指令从SRAM中读出数据,并且将数据放到处理器的寄存器中,然后使用第二条指令增加寄存器中的数据值,最后使用第三条指令将数据值写回寄存器。
内核
即CPU内部的各种译码和执行电路。指令对中断控制器(NVIC)、系统计时器(SysTick)、三阶流水线(取指、解码、执行)、浮点单元(FPU)和指令跟踪接口(ITM)等的操作,其实都是对其寄存器的操作,它们都是由内部寄存器构成的。对这些寄存器的了解参考( cortex-m3与cortex-m4中的寄存器)。
内核的主要组成部分:
- 内核Core:处理器最核心的部分,负责几乎所有的运算和控制程序运行过程,包括中断响应服务。内核由多个部分构成,包括
中断控制器(NVIC)
、系统计时器(SysTick
)、三阶流水线
(取指、解码、执行)、浮点单元(FPU)
和指令跟踪接口(ITM)
- 调试系统:主要用于固件的调试和监视系统的运行状态。它支持JTAG或2针串行线调试(SWD),支持多处理器和实时跟踪。
- 寄存器组:
通用寄存器组:包括堆栈指针、连接寄存器、程序计数器等。
程序状态寄存器(xPSR):用于存储程序的状态信息。
中断屏蔽寄存器组:用于控制中断的屏蔽。
控制寄存器(CONTROL):用于控制处理器的各种功能。- 存储器保护单元MPU:是内核中的一个模块,用于控制和管理存储器的访问权限。它并不是ARM内核的一部分,而是处理器内部的一个独立模块。
- 内存管理单元MMU:将虚地址转换成物理地址。
指令的执行过程与寄存器的关系:
- 指令获取与执行:ARM处理器在执行指令时,首先
从内存中获取指令
,并将其存储在寄存器中。处理器通过寄存器读取指令并执行相应的操作。例如,当处理器执行一条ARM指令时,程序计数器(PC)的值会增加4个字节;而执行一条Thumb指令时,PC的值会增加2个字节- 寄存器的作用:ARM处理器有37个寄存器,包括31个通用寄存器和6个状态寄存器。通用寄存器用于存储数据和地址,而状态寄存器用于标识CPU的工作状态和程序的运行状态。寄存器在指令执行过程中起着关键作用,它们存储指令、数据和地址,帮助处理器高效地执行任务
- 工作模式与寄存器:ARM处理器支持7种运行模式,包括用户模式、快速中断模式、外部中断模式、管理模式、数据访问终止模式、系统模式和未定义指令中止模式。不同的运行模式下,寄存器的使用权限和功能有所不同。例如,用户模式下,程序不能直接访问所有系统资源,而特权模式下则可以。
- 异常处理与寄存器:在异常发生时,处理器会切换到相应的异常处理模式,并保存当前的执行状态。异常处理过程中,寄存器的使用也非常重要。例如,当发生异常时,系统会将下一条指令存入链接寄存器(LR),并将当前程序状态字(CPSR)保存到备份程序状态字(SPSR),然后跳转到异常处理函数。处理完成后,系统会恢复之前的执行状态。
详细的介绍参考下列文档:
- 《Cortex-M3权威指南(中文)》
- 《CM3技术参考手册》
- 《STM32中文参考手册_V10》
- 《Cortex M3与M4权威指南》
- 《STM32F3与F4系列Cortex M4内核编程手册》
- 《STM32F4xx参考手册_V4(中文版)》
2. CM3/4系统架构-----存储器组织结构
程序存储器、数据存储器、寄存器和 I/O 端口排列在同一个顺序的 4 GB 地址空间内。
STM32是一个32位单片机,可以很方便的访问4GB以内的存储空间(2^32 = 4GB),Cortex M3/M4内核将STM32芯片架构
中的所有结构,包括:FLASH
、SRAM
、外设
及相关寄存器
等全部组织在同一个4GB的线性地址空间内,我们可以通过C语言来访问这些地址空间,从而操作相关外设(读/写)。数据字节以小端格式(小端模式)存放在存储器中,数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。
存储器本身是没有地址信息的,我们对存储器分配地址的过程就叫存储器映射。这个分配一般由芯片厂商做好了,芯片厂商将所有的存储器及外设资源都映射在一个4GB的地址空间上(8个块),从而可以通过访问对应的地址,访问具体的外设。存储器空间包括程序代码、数据、外设以及处理器内部的调试支持部件。
4GB空间分成8个块,每个块512MB,其中有很多保留区域,这是因为一般的芯片制造厂家是不可能把4GB空间用完的,同时,为了方便后续型号升级,会将一些空间预留。
存储器组织结构如图所示:
【详情见 <CM3/CM4存储器映射>】
MPU为监控总线传输的可编程设备,需要通过软件(一般是嵌入式OS)配置。若MPU存在,应用程序可以将存储器空间分为多个部分,并为每个部分定义访问权限。当违反访问规则时,错误异常就会产生,错误异常处理则会分析问题,而且如果可能,将错误加以修复。一般情况下,OS会设置MPU以保护OS内核和其他特权任务使用的数据,防止恶意用户程序的破坏。而且OS也可以选择将不同用户任务使用的存储器隔离开来。这些处理有助于检测系统错误,并且提高了系统在处理错误情况时的健壮性。MPU也可以将系统配置为只读,防止意外擦除SRAM中的数据或覆盖指令代码。MPU默认禁止,若应用不需要存储器保护特性,就无须将其初始化。
NVIC处理异常,可以处理多个中断请求IRQ
和一个不可屏蔽中断NMI
请求,IRQ一般由片上外设或外部中断输入通过I/O端口产生,NMI可用于看门狗定时器或掉电检测。处理器内部有SysTick
定时器,它可以产生周期性的定时中断请求,可用于嵌入式OS计时或没有OS的应用中的简单定时控制。
注意:对CM3/4的操作其实就是对存储器映射中的寄存器的操作,通过对寄存器的操作来操作内存或其他外设等。
2.1 寄存器地址映射(特殊的存储器)
给存储器分配地址的过程叫存储器映射,寄存器是一类特殊的存储器,它的每个位都有特定的功能,可以实现对外设/功能的控制,给寄存器的地址命名的过程就叫寄存器映射。
举个简单的例子,大家家里面的纸张就好比通用存储器,用来记录数据是没问题的,但是不会有具体的动作,只能做记录,而你家里面的电灯开关,就好比寄存器了,假设你家有8个灯,就有8个开关(相当于一个8位寄存器),这些开关也可以记录状态,同时还能让电灯点亮/关闭,是会产生具体动作的。为了方便区分和使用,我们会给每个开关命名,比如厨房开关、大厅开关、卧室开关等,给开关命名的过程,就是寄存器映射。
我们以GPIO的ODR寄存器为例,其参考手册的描述如图所示:
①寄存器名字:每个寄存器都有一个对应的名字,以简单表达其作用,并方便记忆,这里GPIOx_ODR表示寄存器英文名,x可以从A~G,说明有7个这样的寄存器)。
②寄存器偏移量及复位值:地址偏移量表示相对该外设基地址的偏移,GPIOB 的外设基地址是:0x4002 0400。那么GPIOB_ODR寄存器的地址就是:0x4002 0414。复位值表示该寄存器在系统复位后的默认值,可以用于分析外设的默认状态。
③寄存器位表:描述寄存器每一个位的作用(共32bit),这里表示ODR寄存器的第15位(bit),位名字为 ODR15,rw表示该寄存器可读写(r,可读取;w,可写入)。
④位功能描述:描述寄存器每个位的功能,这里表示位015,对应ODR0ODR15,每个位控制一个IO口的输出状态。
由 < 3.2 库开发和寄存器的关系 > 学习可知:#define GPIOB_ODR *(unsigned int *)(0x40020414) GPIOB_ODR = 0XFFFF;
stm32f407xx.h 里面使用结构体方式对 STM32F407 的寄存器做了详细映射。
注意:CM3/4的内部寄存器和外设寄存器的映射和操作封装文件位于标准外设库/HAL库中,详情见< 3.5 库开发和寄存器的关系>
2.2 寄存器地址计算
某个寄存器地址,由三个参数决定:
- 总线基地址(BUS_BASE_ADDR)
- 外设基于总线基地址的偏移量(PERIPH_OFFSET)
- 寄存器相对外设基地址的偏移量(REG_OFFSET)
寄存器地址 = BUS_BASE_ADDR + PERIPH_OFFSET + REG_OFFSET
总线基地址(BUS_BASE_ADDR)
外设基于总线基地址的偏移量(PERIPH_OFFSET)
寄存器相对外设基地址的偏移量(REG_OFFSET)
2.3 寄存器的封装
【详情见 < 3.6 C语言对寄存器的封装>】
3. CM3/4系统架构-----时钟系统
【详情见 <CM3/CM4时钟系统>】
相关文章:
STM32系统架构介绍
STM32系统架构 1. CM3/4系统架构2. CM3/4系统架构-----存储器组织结构2.1 寄存器地址映射(特殊的存储器)2.2 寄存器地址计算2.3 寄存器的封装 3. CM3/4系统架构-----时钟系统 STM32 和 ARM 以及 ARM7是什么关系? ARM 是一个做芯片标准的公司,…...
智能GUI Agent是什么,有什么应用领域
智能GUI Agent是什么 研究背景与目的:GUI长期主导人机交互,LLM特别是多模态模型的出现,为GUI自动化带来变革,催生了基于LLM的GUI智能体。这些智能体可理解自然语言指令,处理复杂GUI元素并执行操作,改变了用户与软件交互方式。论文旨在梳理该领域发展脉络,剖析关键要素,…...
Python3操作MongoDB批量upsert
个人博客地址:Python3操作MongoDB批量upsert | 一张假钞的真实世界 代码如下: mongoClient MongoClient(mongodb://172.16.72.213:27017/) opsDb mongoClient.ops azScheduled opsDb.azScheduledFlowbulkOpers [] for flow in scheduledFlows.valu…...
3dgs 2025 学习笔记
CVPR 2024 3D方向总汇包含(3DGS、三维重建、深度补全、深度估计、全景定位、表面重建和特征匹配等)_cvpr2024-structure-awaresparse-viewx-ray3dreconstr-CSDN博客 https://github.com/apple/ml-hugs 3DGS COLMAP-Free 3D Gaussian Splatting ⭐code &…...
大模型笔记:pytorch实现MOE
0 导入库 import torch import torch.nn as nn import torch.nn.functional as F 1 专家模型 #一个简单的专家模型,可以是任何神经网络架构 class Expert(nn.Module):def __init__(self, input_size, output_size):super(Expert, self).__init__()self.fc nn.L…...
C#/.NET/.NET Core技术前沿周刊 | 第 25 期(2025年2.1-2.9)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…...
package.json 文件配置
创建 Node.js 的配置文件 package.json npm init -y package.json 文件配置说明 配置说明示例name指定项目的名称,必须是小写字母,可以包含字母、数字、连字符(-)或下划线(_),不能有特殊字符…...
相机模数转换
模拟图像是什么? 模拟图像是指连续变化的图像,它通常来源于现实世界的物理场景,并通过光学系统(如相机镜头)投射到感光介质上。模拟图像是连续的,这意味着它在空间和颜色值上都有无穷的细节。例如…...
mysql大数据量分页查询
一、什么是MySQL大数据量分页查? MySQL大数据量分页查是指在使用MySQL数据库时,将大量数据分成多个较小的部分进行显示,以提高查询效率和用户体验。分页查询通常用于网页或应用程序中,以便用户能够逐步浏览结果集。 二、为什…...
组织结构改革:激活企业活力的 “源头活水”
难以适应市场变化、内部沟通与协作不畅、决策效率低下、运营成本增加、人才流失严重、员工士气下降、战略目标难以实现……企业如何根据市场环境变化和自身发展需求,灵活调整组织框架,赋能企业的持续健康发展? 某国有投资建设集团旗下的二级…...
金融风控项目-1
文章目录 一. 案例背景介绍二. 代码实现1. 加载数据2. 数据处理3. 查询 三. 业务解读 一. 案例背景介绍 通过对业务数据分析了解信贷业务状况 数据集说明 从开源数据改造而来,基本反映真实业务数据销售,客服可以忽略账单周期,放款日期账单金…...
Java常用设计模式面试题总结(内容详细,简单易懂)
设计模式的分类 创建型模式:通过隐藏对象创建的细节,避免直接使用 new 关键字实例化对象,从而使程序在判断和创建对象时更具灵活性。常见的模式包括: 工厂模式抽象工厂模式单例模式建造者模式原型模式 结构型模式:通…...
【Elasticsearch】文本分析Text analysis概述
文本分析概述 文本分析使 Elasticsearch 能够执行全文搜索,搜索结果会返回所有相关的结果,而不仅仅是完全匹配的结果。 如果你搜索“Quick fox jumps”,你可能希望找到包含“A quick brown fox jumps over the lazy dog”的文档,…...
ATF系统安全从入门到精通
CSDN学院课程连接:https://edu.csdn.net/course/detail/39573...
C# 上位机--变量
C# 上位机--变量 在 C# 上位机开发领域,变量是构建程序逻辑的基础元素之一。它就像是一个容器,用于存储各种类型的数据,从简单的数值到复杂的对象。正确理解和使用变量,对于开发出高效、稳定且易于维护的上位机程序至关重要。本文…...
π 的奥秘:如何用有理数逼近无理数?
本文将围绕有理数、无理数、连续统以及它们之间的深刻联系展开讨论,并结合具体的数学理论如康托尔区间套定理、戴德金分割、柯西施瓦茨不等式等,进行简要探讨 由于本文并未深入探讨,可能存在部分不严谨的地方,也欢迎各位进行纠正…...
LeetCode --- 436周赛
题目列表 3446. 按对角线进行矩阵排序 3447. 将元素分配给有约束条件的组 3448. 统计可以被最后一个数位整除的子字符串数目 3449. 最大化游戏分数的最小值 一、按对角线进行矩阵排序 直接模拟,遍历每一个斜对角线,获取斜对角线上的数字,排…...
绘制中国平安股价的交互式 K 线图
在本文中,探索如何使用 Python 的强大库进行股市数据分析与可视化。我们将以中国平安(股票代码:sh601318)为例,展示如何获取其股票数据,并绘制一张交互式 K 线图。 K 线图是股市分析中不可或缺的工具,它能够直观地显示股票的波动情况,包括开盘价、收盘价、最高价和最低…...
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第二节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(ECU复位0x11服务) 作者:车端域控测试工程师 更新日期:2025-02-12 关键词:UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 二、ECU复位服务(0x11服务&…...
Unity URP的2D光照简介
官网工程,包括2d光照,动画,动效介绍: https://unity.com/cn/blog/games/happy-harvest-demo-latest-2d-techniques https://docs.unity3d.com/6000.0/Documentation/Manual/urp/Lights-2D-intro.html 人物脸部光照细节和脚上的阴影…...
自学人工智能大模型,满足7B模型的训练和微调以及推理,预算3万,如何选购电脑
如果你的预算是 3万元人民币,希望训练和微调 7B 参数规模的人工智能大模型(如 LLaMA、Mistral 等),你需要一台高性能的深度学习工作站。在这个预算范围内,以下是推荐的配置: 1. 关键硬件配置 (1) GPU (显卡…...
shell脚本自动安装MySQL8
环境:centos7版本:8.0.28安装包:mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz 二进制包要求:安装包和shell脚本在同一目录下执行方式:sudo ./install_mysql8.sh #!/bin/bash# 定义MySQL安装目录和压缩包名称MYSQL_DIR…...
使用亚马逊针对 PyTorch 和 MinIO 的 S3 连接器进行模型检查点处理
2023 年 11 月,Amazon 宣布推出适用于 PyTorch 的 S3 连接器。适用于 PyTorch 的 Amazon S3 连接器提供了专为 S3 对象存储构建的 PyTorch 数据集基元(数据集和数据加载器)的实现。它支持用于随机数据访问模式的地图样式数据集和用于流式处理…...
DeepAR:一种用于时间序列预测的深度学习模型
介绍 DeepAR是一种基于递归神经网络(RNN)的时间序列预测模型,由亚马逊在2017年提出。它特别适用于处理多变量时间序列数据,并能够生成概率预测。DeepAR通过联合训练多个相关时间序列来提高预测性能,从而在实际应用中表…...
【无标题】《On Java中文版基础卷+进阶卷》书评
Java语言作为最热门的编程语言之一,关于Java语言的书更是数不胜数,而我选择这本《On Java中文版基础卷进阶卷》作为我学习Java语言的工具书。这本书的作者是《Java编程思想》的Bruce Eckel,《Java编程思想》在之前可谓是鼎鼎有名,…...
【鸿蒙开发】第二十九章 Stage模型-应用上下文Context、进程、线程
目录 1 Stage模型基本概念 1.1 开发流程 3 应用上下文Context的典型使用场景 3.1 获取应用文件路径 3.2 获取和修改加密分区 3.3 获取本应用中其他Module的Context 3.4 订阅进程内UIAbility生命周期变化 4 进程 4.1 概述 5 线程 5.1 线程类型 5.2 使用EventHub进行线…...
AI-Engine-Direct-Helper 快速上手及环境配置
AI-Engine-Direct-Helper 是一个强大的工具,旨在简化和加速在 Qualcomm 平台上开发 AI 应用的过程。通过提供统一的 API、跨平台支持和高效的执行性能,它为开发者提供了一个灵活且高效的开发环境。如果您正在使用 Qualcomm 平台进行 AI 开发,…...
网络安全产品架构图 网络安全相关产品
一、信息安全产品分类 背景 美国将网络和信息安全产品分了9类:鉴别、访问控制、入侵检测、防火墙、公钥基础设施、恶意程序代码防护、漏洞扫描、取证、介质清理或擦除。中国公安部将网络和信息安全产品分了7类:操作系统安全、数据库安全、网络安全、病毒…...
日常知识点之面试后反思裸写string类
1:实现一个字符串类。 简单汇总 最简单的方案,使用一个字符串指针,以及实际字符串长度即可。 参考stl的实现,为了提升string的性能,实际上单纯的字符串指针和实际长度是不够了,如上,有优化方案…...
Linux(socket网络编程)TCP连接
Linux(socket网络编程)TCP连接 基础文件目录函数系统进程控制函数fork()exec系列函数void abort(void)void assert(int expression)void exit(int status)void _exit(int status)int atexit(void (*func)(void))int on_exit(void (*function)(int,void*)…...
深入 JVM 虚拟机:字符串常量池演变与 intern() 方法工作原理解析
🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 📝 如有错误敬请纠正! 前言 在 Java 开发中,字符串常量池(String Constant…...
从零开始学习人工智能
从零开始学习人工智能可以按照以下步骤进行: 一、了解人工智能的基本概念 学习内容:了解人工智能的定义、发展历程、主要研究方向(如机器学习、深度学习、自然语言处理、计算机视觉等)、常见应用(如语音识别、图像识别…...
解锁电商数据宝藏:淘宝商品详情API实战指南
在电商蓬勃发展的今天,数据已成为驱动业务增长的核心引擎。对于商家、开发者以及数据分析师而言,获取精准、实时的商品数据至关重要。而淘宝,作为国内最大的电商平台,其海量商品数据更是蕴含着巨大的价值。 本文将带你深入探索淘…...
Gui-Guider1.8.1 数字时钟控件找不到定义,无法编译
我们在Gui-Guider中使用的一些控件,生成后会发现在LVGL源码中找不到该控件的定义,这时因为Gui-Guider中的一些控件是其自己编写的而不是LVGL提供的,那么我们该如何应用呢?这里拿Digital Clock数字时钟控件举例: 这里我…...
多模态模型详解
多模态模型是什么 多模态模型是一种能够处理和理解多种数据类型(如文本、图像、音频、视频等)的机器学习模型,通过融合不同模态的信息来提升任务的性能。其核心在于利用不同模态之间的互补性,增强模型的鲁棒性和准确性。 如何融合…...
Unity3D实现显示模型线框(shader)
系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、效果展示👉二、第一种方式👉二、第二种方式👉壁纸分享👉总结👉前言 在 Unity 中显示物体线框主要基于图形渲染管线和特定的渲染模式。 要显示物体的线框,通常有两种常见的方法:一种是利用内置的渲染…...
【实测】用全志A733平板搭建一个端侧Deepseek算力平台
随着DeepSeek 的蒸馏技术的横空出世,端侧 SoC 芯片上运行大模型成为可能。那么端侧芯片跑大模型的效果如何呢?本文将在全志 A733 芯片平台上部署一个 DeepSeek-R1:1.5B 模型,并进行实测效果展示。 端侧平台环境 设备:全志A733平板…...
新数据结构(7)——Object
Object类是所有类的父类,在 Java 中,每个类都直接或间接地继承自Object类,也就是说所有类都是object类的子类可以使用Object里的方法。 equals()和hashCode()是Java中Object类所包含的两个关键方法,下面将介绍两个方法。 和equa…...
数据结构-栈和队列的应用
目录 前言一、栈的应用(迷宫问题)1.1 问题描述1.2 算法选择1.3 算法精化1.4 算法实现1.5 问题结果 二、队列的应用(农夫过河问题)2.1 问题描述2.2 算法选择2.3 算法精化2.4 算法实现2.5 问题结果 总结 前言 本篇文章使用两个例子…...
【JavaScript】异步编程汇总
异步编程解决方案: 回调函数PromiseGeneratorawait / async 回调函数 回调函数是早期处理异步编程的主要方式,虽然它本身存在很多的缺陷,比如那个时候对于复杂的异步处理常常会出现回调地狱。 但是因为 JavaScript 中当时并没有很好的API来帮…...
【AI系列】从零开始学习大模型GPT (2)- Build a Large Language Model (From Scratch)
前序文章 【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch) Build a Large Language Model 背景第1章:理解大型语言模型第2章:处理文本数据第3章:编码Attention机制什么是Attention机制?Attention机制的基本原理数学表示应用总结为什么要…...
动态规划——路径问题②
文章目录 931. 下降路径最小和算法原理代码实现 64. 最小路径和算法原理代码实现 174. 地下城游戏算法原理代码实现 931. 下降路径最小和 题目链接:931. 下降路径最小和 算法原理 状态表示: 经验题目要求:dp[i][j]表示到达[i,j]位置时&…...
【每日关注】科技圈重要动态
时代新动态 2025 年 2 月 12 日科技圈重要动态总结全球 AI 治理新进展巴黎 AI 宣言签署,美英缺席 科技巨头合作与竞争苹果联姻阿里开发中国版AI功能DeepSeek生态持续扩展OpenAI拒绝马斯克收购,矛盾公开化 汽车行业动态小米汽车销量跃居新势力第二比亚迪智…...
Postgresql的三种备份方式_postgresql备份
这种方式可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。它会产生一个脚本文件,里面包含备份开始时,已创建的各种数据库对象的SQL语句和每个表中的数据。可以使用数据库提供的工具pg_dumpall和pg_dump来进行…...
Linux 配置 MySQL 定时自动备份到另一台服务器
Linux 配置 MySQL 定时自动备份到另一台服务器这里写自定义目录标题 前言1、配置服务器通信1.1:配置过程 2、编写自动备份sh脚本文件3:设置定时自动执行 前言 此方案可使一台服务器上的 MySQL 中的所有数据库每天 0 点自动转储为 .sql 文件,…...
CCF-GESP 等级考试 2024年6月认证C++二级真题解析
2024年6月真题 一、单选题(每题2分,共30分) 正确答案:C 考察知识点:计算机基础与编程环境 解析:CCF 组织的 GESP 认证考试第 1 级可选择的认证语言有 Scratch、Python、C ,共 3 种。答案为C。 …...
vm虚拟机的一些操作命令
PowerShell命令 // 获取虚拟机列表: get-vm // 创建虚拟机: new-vm -Name "BrioDev75" -MemoryStartupBytes 16GB -Path "D:\Hyper-V" // 删除虚拟机: remove-vm -Name "BrioDev75" -Force (-Force参数是…...
sql难点
一、 假设你有一个查询,需要根据 id 是否为 null 来动态生成 SQL 条件: xml复制 <select id"getResources" resultType"Resource">SELECT * FROM resources<where><if test"id ! null">and id <!…...
【多模态大模型】系列1:Transformer Encoder——ViLT、ALBEF、VLMO
目录 1 ViLT2 ALBEF3 VLMO 1 ViLT ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision 图文多模态任务,关键是提取视觉特征和文本特征,然后对齐。在之前的多模态研究工作中,视觉侧通常需要一个目标检测器来…...
2.4 测试数据与初始化
测试数据与初始化 在 Spring Test 中,合理管理测试数据的初始化和清理是保证测试可靠性的关键。本章将介绍多种数据准备方式,涵盖 SQL 脚本执行、编程式初始化 和 动态数据生成,并提供最佳实践示例。 1. 使用 Sql 执行 SQL 脚本 作用 在测…...