STM32H7 QSPI的寄存器和功能介绍

目录

概述

1 认识QSPI

1.1 QSPI介绍

1.2 QUADSPI 主要特性

2 QUADSPI 功能说明

2.1 双闪存模式禁止

2.2 双闪存模式使能

3 QUADSPI 的用法

3.1 间接模式的操作步骤

3.1.1 QUADSPI 间接模式时配置帧模式

3.1.2 写控制寄存器 (QUADSPI_CR) 

3.1.3 写通信配置寄存器 (QUADSPI_CCR)

3.1.4 其他配置

3.2 状态标志轮询模式

3.3 内存映射模式

4 QUADSPI 寄存器

4.1 QUADSPI 控制寄存器 (QUADSPI_CR)

4.2 QUADSPI 状态寄存器 (QUADSPI_SR)

4.3 QUADSPI 标志清零寄存器 (QUADSPI_FCR)

4.4 QUADSPI 数据长度寄存器 (QUADSPI_DLR)

4.5 QUADSPI 通信配置寄存器 (QUADSPI_CCR)

4.6 QUADSPI 地址寄存器 (QUADSPI_AR)

 4.7 QUADSPI 交替字节寄存器 (QUADSPI_ABR)

4.8  QUADSPI 数据寄存器 (QUADSPI_DR)

4.9 QUADSPI 轮询状态屏蔽寄存器 (QUADSPI _PSMKR)

4.10 QUADSPI 轮询状态匹配寄存器 (QUADSPI _PSMAR)

4.11 QUADSPI 轮询间隔寄存器 (QUADSPI _PIR)

4.12 QUADSPI 低功耗超时寄存器 (QUADSPI_LPTR)


概述

本文主要介绍STM32H7的QSPI功能及其寄存器的配置参数,笔者仔细研读《STM32H7x3基于 ARM 内核的 32 位高级 MCU》,将该文档中QSPI的相关内容摘录出来汇编成本篇文章,方便项目设计中使用。

1 认识QSPI

1.1 QSPI介绍

QUADSPI 是一种专用的通信接口,连接单、双或四(条数据线) SPI FLASH 存储介质。该接口可以在以下三种模式下工作:

模式描述
间接模式使用 QUADSPI 寄存器执行全部操作
状态轮询模式周期性读取外部 FLASH 状态寄存器,而且标志位置 1 时会产生中断(如 擦除或烧写完成,会产生中断)
内存映射模式外部 FLASH 映射到微控制器地址空间,从而系统将其视作内部存储器
双闪存模式采用双闪存模式时,将同时访问两个 Quad-SPI FLASH,吞吐量和容量均可提高二倍。

1.2 QUADSPI 主要特性

1)三种功能模式:间接模式、状态轮询模式和内存映射模式

2)双闪存模式,通过并行访问两个 FLASH,可同时发送/接收 8 位数据

3)支持 SDR 和 DDR 模式

4)针对间接模式和内存映射模式,完全可编程操作码

5)针对间接模式和内存映射模式,完全可编程帧格式

6)集成 FIFO,用于发送和接收

7)允许 8、 16 和 32 位数据访问

8)在达到 FIFO 阈值和传输完成时生成 MDMA 触发信号

9)在达到 FIFO 阈值、超时、操作完成以及发生访问错误时产生中断

2 QUADSPI 功能说明

2.1 双闪存模式禁止

2.2 双闪存模式使能

3 QUADSPI 的用法

使用 FMODE[1:0] (QUADSPI_CCR[27:26]) 选择操作模式。

3.1 间接模式的操作步骤

FMODE编程为 00 可选择间接写入模式,将数据发送到 FLASH。 FMODE编程为 01 可选择间接读取模式,读取 FLASH 中的数据。

3.1.1 QUADSPI 间接模式时配置帧模式

1)在 QUADSPI_DLR 中指定待读取或写入的字节数

2)在 QUADSPI_CCR 中指定帧格式、模式和指令代码

3)在 QUADSPI_ABR 中指定要在地址阶段后立即发送的可选交替字节

4)在 QUADSPI_CR 中指定工作模式。

5)在 QUADSPI_AR 中指定目标地址。

6)通过 QUADSPI_DR 从 FIFO 读取数据/向 FIFO 写入数据

3.1.2 写控制寄存器 (QUADSPI_CR) 

1)使能位 (EN) 设置为“1

2)超时计数器使能位 (TCEN)

3)采样移位设置 (SSHIFT)

4)FIFO 阈值 (FTRHES),以指示 FTF 标志在何时置 1

5)中断使能

6)自动轮询模式参数:匹配模式和停止模式 (在 FMODE = 11 时有效)

7)时钟预分频器

3.1.3 写通信配置寄存器 (QUADSPI_CCR)

1)通过 INSTRUCTION 位指定指令字节

2)通过 IMODE 位指定指令发送方式( 1/2/4 线)

3)通过 ADMODE 位指定地址发送方式(无/1/2/4 线)

4)通过 ADSIZE 位指定地址长度( 8/16/24/32 位)

5)通过 ABMODE 位指定交替字节发送方式(无/1/2/4 线)

6)通过 ABSIZE 位指定交替字节数 (1/2/3/4)

7)通过 DBMODE 位指定是否存在空指令字节

8)通过 DCYC 位指定空指令字节数

9)通过 DMODE 位指定数据发送/接收方式(无/1/2/4 线)

3.1.4 其他配置

如果无需为某个命令更新地址寄存器 (QUADSPI_AR) 与数据寄存器 (QUADSPI_DR),则在写入 QUADSPI_CCR 时,该命令序列便立即启动。在 ADMODE 和 DMODE 均为 00 时,或在间接读取模式 (FMODE = 01) 下仅 ADMODE = 00 时,便属于此情况。

在需要地址(ADMODE 不为00) ,但无需写入数据寄存器(FMODE = 01 或 DMODE = 00)时,通过写入 QUADSPI_AR 新地址后,命令序列便立即启动。在数据传输( FMODE = 00 并且 DMODE ! = 00)中,通过QUADSPI_DR 写入 FIFO 触发通信启动

3.2 状态标志轮询模式

FMODE 字段 (QUADSPI_CCR[27:26]) 设置为 10,使能状态标志轮询模式

在此模式下,将发送编程的帧并周期性检索数据。每帧中读取的最大数据量为 4 字节。如果 QUADSPI_DLR 请求更多的数据,则忽略多余的部分并仅读取 4 个字节。

在 QUADSPI_PISR 寄存器中指定周期性。

在检索到状态数据后,可在内部进行处理,以达到以下目的:
1)将状态匹配标志位置 1,如果使能,还将产生中断
2)自动停止周期性检索状态字节

接收到的值可通过存储于 QUADSPI_PSMKR 中的值进行屏蔽,并与存储在 QUADSPI_PSMAR
中的值进行或运算或与运算。若是存在匹配,则状态匹配标志置 1, 并且在使能了中断的情况下还将产生中断;如果AMPS 位置 1,则 QUADSPI 自动停止。在任何情况下,最新的检索值都在 QUADSPI_DR 中可用。
 

3.3 内存映射模式

将 QUADSPI_CCR 寄存器中的 FMODE 设置为 11 可进入内存映射模式

在内存映射模式下,外部 FLASH 被视为内部存储器,只是存在访问延迟。在该模式下,仅允许对外部 FLASH 执行读取操作。当主器件访问存储器映射空间时,将发送已编程的指令和帧。FIFO 用作预取缓冲区以接受线性读取。

在此模式中,对于 QUADSPI_DR 的任何访问均返回零数据长度寄存器 (QUADSPI_DLR) 在内存映射模式中无意义。

4 QUADSPI 寄存器

4.1 QUADSPI 控制寄存器 (QUADSPI_CR)

偏移地址: 0x0000
复位值: 0x0000 0000

位 31:24 PRESCALER[7:0]:时钟预分频器 (Clock prescaler)
该字段定义基于 quadspi_ker_ck 时钟生成 CLK 所用的分频系数(值 + 1)。
     0: FCLK = Fquadspi_ker_ck, quadspi_ker_ck 时钟直接用作 QUADSPI CLK(预分频器被旁路)
     1: FCLK = Fquadspi_ker_ck/2
     2: FCLK = Fquadspi_ker_ck/3
   ...
     255: FCLK = Fquadspi_ker_ck/256
对于奇数时钟分频系数, CLK 的占空比并非 50%。时钟信号的低电平持续时间比高电平
持续时间多一个周期仅可在 BUSY = 0 时修改该字段。

位 23 PMM:轮询匹配模式 (Polling match mode)
该位指示在自动轮询模式期间用来确定是否“匹配”的方法。
0: AND 匹配模式。如果从 FLASH 接收的所有未屏蔽位均与匹配寄存器中的对应位相匹配,则 SMF 置 1。
1: OR 匹配模式。如果从 FLASH 接收的任意一个未屏蔽位与匹配寄存器中的对应位相匹配,则 SMF 置 1。

仅可在 BUSY = 0 时修改该位。

位 22 APMS:自动轮询模式停止 (Automatic poll mode stop)
该位确定在匹配后自动轮询是否停止。
0:仅通过中止或禁用 QUADSPI 停止自动轮询模式。
1:发生匹配时,自动轮询模式停止。

仅可在 BUSY = 0 时修改该位。

位 20 TOIE: TimeOut 中断使能 (TimeOut interrupt enable)
该位使能 TimeOut 中断。
0:禁止中断
1:使能中断

位 19 SMIE:状态匹配中断使能 (Status match interrupt enable)
该位使能状态匹配中断。
0:禁止中断
1:使能中断

位 18 FTIE: FIFO 阈值中断使能 (FIFO threshold interrupt enable)。
该位使能 FIFO 阈值中断。
0:禁止中断
1:使能中断

位 17 TCIE:传输完成中断使能 (Transfer complete interrupt enable)
该位使能传输完成中断。
0:禁止中断
1:使能中断

位 16 TEIE:传输错误中断使能 (Transfer error interrupt enable)
该位使能传输错误中断。
0:禁止中断
1:使能中断

位 12:8 FTHRES[4:0]: FIFO 阈值级别 (FIFO threshold level)
定义在间接模式下 FIFO 中将导致 FIFO 阈值标志(FTF, QUADSPI_SR[2])置 1 的字
节数阈值。
在间接写入模式下 (FMODE = 00):
0:如果 FIFO 中存在 1 个或更多空闲字节可供写入,则 FTF 置 1
1:如果 FIFO 中存在 2 个或更多空闲字节可供写入,则 FTF 置 1
...
31:如果 FIFO 中存在 32 个空闲字节可供写入,则 FTF 置 1
在间接读取模式下 (FMODE = 01):
0:如果 FIFO 中存在 1 个或更多有效字节可供读取,则 FTF 置 1
1:如果 FIFO 中存在 2 个或更多有效字节可供读取,则 FTF 置 1
...
31:如果 FIFO 中存在 32 个有效字节可供读取,则 FTF 置 1

位 7 FSEL: FLASH 选择 (FLASH memory selection)
该位选择单闪存模式 (DFM = 0) 下要寻址的 FLASH。
0:选择 FLASH 1
1:选择 FLASH 2
仅可在 BUSY = 0 时修改该位。
在 DFM = 1 时忽略该位

位 6 DFM:双闪存模式 (Dual-flash mode)
该位激活双闪存模式,同时使用两个外部 FLASH 以将吞吐量和容量扩大一倍。
0:禁止双闪存模式
1:使能双闪存模式。
仅可在 BUSY = 0 时修改该位。

位 4 SSHIFT:采样移位 (Sample shift)
默认情况下, QUADSPI 在 FLASH 驱动数据后过半个 CLK 周期开始采集数据。使用该
位,可考虑外部信号延迟,推迟数据采集。
0:不发生移位
1:移位半个周期
在 DDR 模式下 (DDRM = 1),固件必须确保 SSHIFT = 0。
仅可在 BUSY = 0 时修改该字段。

位 3 TCEN:超时计数器使能 (Timeout counter enable)
该位仅在内存映射模式 (FMODE = 11) 下有效。激活该位后,如果在一段时间(通过TIMEOUT[15:0] (QUADSPI_LPTR) 定义)内一直没有进行访问,将释放片选 (nCS)
(从而降低功耗)。
使能超时计数器。
默认情况下,即便在很长时间内不访问 FLASH, QUADSPI 也不会停止预取操作,之前的读取操作将保持激活状态并且 nCS 保持低电平。由于 nCS 保持低电平时, FLASH 功耗增加,应用程序可能会激活超时计数器( TCEN = 1, QUADSPI_CR 的位 3)。从而在FIFO 中写满预取的数据后,若在 TIMEOUT[15:0] (QUADSPI_LPTR) 个周期的时长内没有访问,则释放 nCS。
0:禁止超时计数器,在内存映射模式中进行访问后,片选 (nCS) 保持激活。
1:使能超时计数器,在内存映射模式下, FLASH 持续不活动 TIMEOUT[15:0] 个周期后
释放片选 (nCS)。
仅可在 BUSY = 0 时修改该位。

位 1 ABORT:中止请求 (Abort request)
该位中止执行中的命令序列。在中止完成时自动复位。
该位可停止当前的传输。
在轮询模式或内存映射模式下,该位也用以复位 APM 位或 DM 位。
0:不请求中止
1:请求中止

位 0 EN:使能 (Enable)
使能 QUADSPI。
0:禁止 QUADSPI
1:使能 QUADSPI
 

4.2 QUADSPI 状态寄存器 (QUADSPI_SR)

偏移地址: 0x0008
复位值: 0x0000 0000

位 13:8 FLEVEL[5:0]: FIFO 级别 (FIFO level)
该字段给出 FIFO 中的有效字节数。 FIFO 为空时 FLEVEL = 0,写满时 FLEVEL = 32。在内存映射模式和自动状态轮询模式下, FLEVEL 为零。

位 5 BUSY:忙 (Busy)
操作进行时,该位置 1。在对 FLASH 的操作完成并且 FIFO 为空时,该位自动清零。

位 4 TOF:超时标志 (Timeout flag)
发生超时时该位置 1。向 CTOF 写入 1 可将该位清零。

位 3 SMF:状态匹配标志 (Status match flag)
在自动轮询模式下,若未屏蔽的接收数据与匹配寄存器 (QUADSPI_PSMAR) 中的对应位相匹配,则该位置 1。向 CSMF 写入 1 可将该位清零。

位 2 FTF: FIFO 阈值标志 (FIFO threshold flag)
在间接模式下,若达到 FIFO 阈值,或从 FLASH 读取完成后, FIFO 中留有数据时,该位置 1。只要阈值条件不再为“真”,该位就自动清零。
在自动轮询模式下,每次读取状态寄存器时,该位即置 1 ;读取数据寄存器时,该位清零。

位 1 TCF:传输完成标志 (Transfer complete flag)
在间接模式下,当传输的数据数量达到编程设定值,或在任何模式下传输中止时,该位置 1。向 CTCF 写入 1 时,该位清零。

位 0 TEF:传输错误标志 (Transfer error flag)
在间接模式下访问无效地址时,该位置 1。向 CTEF 写入 1 可将该位清零。

4.3 QUADSPI 标志清零寄存器 (QUADSPI_FCR)

偏移地址: 0x000C
复位值: 0x0000 0000

位 4 CTOF:清除超时标志 (Clear timeout flag)
写入 1 可将 QUADSPI_SR 寄存器中的 TOF 标志清零

位 3 CSMF:清除状态匹配标志 (Clear status match flag)
写入 1 可将 QUADSPI_SR 寄存器中的 SMF 标志清零

位 2 保留,必须保持复位值。

位 1 CTCF:清除传输完成标志 (Clear transfer complete flag)
写入 1 可将 QUADSPI_SR 寄存器中的 TCF 标志清零

位 0 CTEF:清除传输错误标志 (Clear Transfer error flag)
写入 1 可将 QUADSPI_SR 寄存器中的 TEF 标志清零

4.4 QUADSPI 数据长度寄存器 (QUADSPI_DLR)

偏移地址: 0x0010
复位值: 0x0000 0000

4.5 QUADSPI 通信配置寄存器 (QUADSPI_CCR)

偏移地址: 0x0014
复位值: 0x0000 0000

位 31 DDRM:双倍数据速率模式 (Double data rate mode)
该位为地址、交替字节和数据阶段设置 DDR 模式:
0:禁止 DDR 模式
1:使能 DDR 模式
仅可在 BUSY = 0 时写入该字段。

位 30 DHHC: DDR 保持 (DDR hold)
在 DDR 模式下,延迟 1/4 个 QUADSPI 输出时钟周期再输出数据:
0:使用模拟延迟来延迟数据输出。
1:延迟 1/4 个 QUADSPI 输出时钟周期再输出数据。
该特性仅在 DDR 模式下激活。
仅可在 BUSY = 0 时写入该字段

位 29 FRCM: 自由运行时钟模式 (Free Running Clock Mode)
该位置 1 时,无论 FMODE 位如何, QUADSPI 外设均进入自由运行时钟模式。
0:正常模式
1:自由运行时钟模式
仅可在 BUSY = 0 时写入该位。

位 28 SIOO:仅发送指令一次模式 (Send instruction only once mode)
指令仅发送一次。 IMODE = 00 时,该位不起作用。
0:在每个事务中发送指令
1:仅为第一条命令发送指令
仅可在 BUSY = 0 时写入该字段。

位27:26 FMODE[1:0]:功能模式 (Functional mode)
该字段定义 QUADSPI 操作的功能模式:
00:间接写入模式
01:间接读取模式
10:自动轮询模式
11:内存映射模式
仅可在 BUSY = 0 时写入该字段。

位 25:24 DMODE[1:0]:数据模式 (Data mode)
该字段定义数据阶段的操作模式:
00:无数据
01:单线传输数据
10:双线传输数据
11:四线传输数据
该字段还定义空指令阶段的操作模式。
仅可在 BUSY = 0 时写入该字段

位22:18 DCYC[4:0]:空指令周期数 (Number of dummy cycles)
该字段定义空指令阶段的持续时间。在 SDR 和 DDR 模式下,它指定 CLK 周期数 (0-31)。
仅可在 BUSY = 0 时写入该字段

位 17:16 ABSIZE[1:0]:交替字节长度 (Alternate bytes size)
该位定义交替字节长度:
00: 8 位交替字节
01: 16 位交替字节
10: 24 位交替字节
11: 32 位交替字节
仅可在 BUSY = 0 时写入该字段。

位 15:14 ABMODE[1:0]:交替字节模式 (Alternate bytes mode)
该字段定义交替字节阶段的操作模式:
00:无交替字节
01:单线传输交替字节
10:双线传输交替字节
11:四线传输交替字节
仅可在 BUSY = 0 时写入该字段。

位 13:12 ADSIZE[1:0]:地址长度 (Address size)
该位定义地址长度:
00: 8 位地址
01: 16 位地址
10: 24 位地址
11: 32 位地址
仅可在 BUSY = 0 时写入该字段

位 11:10 ADDRESS[1:0]:地址模式 (Address mode)
该字段定义地址阶段的操作模式:
00:无地址
01:单线传输地址
10:双线传输地址
11:四线传输地址
仅可在 BUSY = 0 时写入该字段。

位 9:8 IMODE[1:0]:指令模式 (Instruction mode)
该字段定义指令阶段的操作模式:
00:无指令
01:单线传输指令
10:双线传输指令
11:四线传输指令
仅可在 BUSY = 0 时写入该字段。

位 7:0 INSTRUCTION[7:0]:指令 (Instruction)
指定要发送到外部 SPI 设备的指令。
仅可在 BUSY = 0 时写入该字段

4.6 QUADSPI 地址寄存器 (QUADSPI_AR)

偏移地址: 0x0018
复位值: 0x0000 0000

 4.7 QUADSPI 交替字节寄存器 (QUADSPI_ABR)

偏移地址: 0x001C
复位值: 0x0000 0000

4.8  QUADSPI 数据寄存器 (QUADSPI_DR)

偏移地址: 0x0020
复位值: 0x0000 0000

4.9 QUADSPI 轮询状态屏蔽寄存器 (QUADSPI _PSMKR)

偏移地址: 0x0024
复位值: 0x0000 0000

位 31:0 MASK[31:0]:状态屏蔽 (Status mask)
对在轮询模式下接收的状态字节进行屏蔽
对于位 n:
0:屏蔽在自动轮询模式下所接收数据的位 n,在匹配逻辑中不考虑其值
1:不屏蔽在自动轮询模式下所接收数据的位 n,在匹配逻辑中考虑其值
仅可在 BUSY = 0 时写入该字段。

4.10 QUADSPI 轮询状态匹配寄存器 (QUADSPI _PSMAR)

偏移地址: 0x0028
复位值: 0x0000 0000

位 31:0 MATCH[31:0]:状态匹配 (Status match)
该值将与屏蔽状态寄存器比较以进行匹配
仅可在 BUSY = 0 时写入该字段

4.11 QUADSPI 轮询间隔寄存器 (QUADSPI _PIR)

偏移地址: 0x002C
复位值: 0x0000 0000

 位 15:0 INTERVAL[15:0]:轮询间隔 (Polling interval)
自动轮询阶段读取操作之间的 CLK 周期数。
仅可在 BUSY = 0 时写入该字段。

4.12 QUADSPI 低功耗超时寄存器 (QUADSPI_LPTR)

偏移地址: 0x0030
复位值: 0x0000 0000

 位 15:0 TIMEOUT[15:0]:超时时长 (Timeout period)
在内存映射模式下,每次访问结束后, QUADSPI 将预取后续字节并将其存放在 FIFO中。该字段指示在 FIFO 写满后, QUADSPI 等待多少个 CLK 时钟周期才让 nCS 升至高电平将 FLASH 置为低功耗状态。
仅可在 BUSY = 0 时写入该字段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/312259.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux LVM与磁盘配额

目录 一.LVM概述 LVM LVM机制的基本概念 PV(Physical Volume,物理卷) VG(Volume Group,卷组) LV(Logical Volume,逻辑卷) 二.LVM 的管理命令 三.创建并使用LVM …

React + Ts + Vite + Antd 项目搭建

1、创建项目 npm create vite 项目名称 选择 react 选择 typescript 关闭严格模式 建议关闭严格模式,因为不能自动检测副作用,有意双重调用。将严格模式注释即可。 2、配置sass npm install sass 更换所有后缀css为sass vite.config.ts中注册全局样式 /…

数据结构进阶之堆

今天我们学习的是数据结构里面的堆,大家先看看我们今天要学习的内容 一、堆概念及认识 在学习堆之前我们得先明白完全二叉树是什么样子,因为堆是依据完全二叉树的结构来实现的,所以在这里我先告诉大家完全二叉树的是什么,如下图…

【C++】力扣OJ题:构建杨辉三角

Hello everybody!今天给大家介绍一道我认为比较经典的编程练习题&#xff0c;之所以介绍它是因为这道题涉及到二维数组的构建&#xff0c;如果用C语言动态构建二维数组是比较麻烦的&#xff0c;而用C中STL的vector<vector<int>>,就可以立马构建出来&#xff0c;这也…

Jackson 2.x 系列【25】Spring Boot 集成之起步依赖、自动配置

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 前言2. 起步依赖3. 自动配置3.1 JacksonPrope…

【图文教程】在PyCharm中导入Conda环境

文章目录 &#xff08;1&#xff09;在Anaconda Prompt中新建一个conda虚拟环境&#xff08;2&#xff09;使用PyCharm打开需要搭建环境的项目&#xff08;3&#xff09;配置环境 &#xff08;1&#xff09;在Anaconda Prompt中新建一个conda虚拟环境 conda create - myenv py…

算法|基础算法|高精度算法

基础算法|位运算 1.高精度加法 2.高精度减法 3.高精度乘法 4.高精度除法 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 高精度加法 …

cpu调度与IO

内存中有A、B两个程序&#xff0c;CPU先依照顺序执行A&#xff0c;当CPU执行A的IO指令后&#xff0c;向磁盘发送IO请求&#xff0c;程序A进入阻塞队列中&#xff0c;等待IO过程结束。CPU此时执行程序B。DMA将磁盘中的数据copy到内存A的buff中&#xff0c;此时操作系统获取到IO任…

想开发多语言同城送餐app?这10个关键问题需详解

在当今数字化时代&#xff0c;多语言同城送餐app开发成为了引人注目的商业机会。随着人们生活节奏的加快&#xff0c;外卖行业逐渐成为人们生活中不可或缺的一部分。如果您计划开发一款多语言同城送餐app&#xff0c;必须要谨慎考虑一些关键问题&#xff0c;才能确保项目的成功…

Docker Container (容器) 常见命令

Docker 容器的生命周期 什么是容器&#xff1f; 通俗地讲&#xff0c;容器是镜像的运行实体。镜像是静态的只读文件&#xff0c;而容器带有运行时需要的可写文件层&#xff0c;并且容器中的进程属于运行状态。即容器运行着真正的应用进程。容 器有初建、运行、停止、暂停和删除…

stm32实现hid鼠标

启动CubelMX 选择芯片&#xff08;直接输入stm32f103zet6) 设置时钟 如下图 usb设置 配置usb设备 调试端口设置 配置时钟 项目输出设置 打开工程&#xff08;后记&#xff1a;此工程含有中文不能编译通过) 配置项目 配置调试器 编译无法通过 删除路径中的中文&#xff0c;以及…

飞桨Ai(二)paddle使用CPU版本可以正常识别,切换为GPU版本时无法识别结果

一、问题描述&#xff1a; 刚开始用paddle的CPU版本&#xff0c;对训练好的模型进行推理&#xff0c;正常识别出想要的结果后来尝试使用paddle的GPU版本&#xff0c;然后发现识别出来是空的 二、系统思路&#xff1a; 最终系统环境如下&#xff1a; 系统&#xff1a;win10 …

CSS3 max/min-content及fit-content、fill-available值的详解

c3中对width的值多了几个值&#xff1a;fill-available, max-content, min-content, 以及fit-content。 1.width:fill-available 我们在页面中扔一个没有其他样式的<div>元素&#xff0c;则&#xff0c;此时&#xff0c;该<div>元素的width表现就是fill-availabl…

Towards IP Geolocation Using Delay and TopologyMeasurements(TBG)(2006年)

下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement 被引次数:492 Katz-Bassett E, John J P, Krishnamurthy A, et al. Towards IP geolocation using delay and topology …

LVM与磁盘配额

目录 一.LVM概述 1.LVM &#xff08;Logical Vokume Manager &#xff09;逻辑卷管理 2.LVM的管理命令 3.创建并使用LVM操作步骤 二.磁盘配额概述 1.实现磁盘限额的条件 2.Linux磁盘限额的特点 3.实现磁盘配额的步骤 三.总结&#xff1a; 一.LVM概述 1.LVM &#xff…

(BERT蒸馏)TinyBERT: Distilling BERT for Natural Language Understanding

文章链接&#xff1a;https://arxiv.org/abs/1909.10351 背景 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;预训练语言模型&#xff08;如BERT&#xff09;通过大规模的数据训练&#xff0c;已在多种NLP任务中取得了卓越的性能。尽管BERT模型在语言理解和生成…

开源无需root!一款功能强悍的手机电脑同屏工具,14K star拿捏了【文末带项目源码】

现在使用最常用的设备就是手机和电脑了&#xff0c;经常会需要将手机屏幕镜像到电脑&#xff0c;或者是用电脑来操控手机等。 今天给大家安利一款功能强悍好用的工具 - QtScrcpy。 简介 QtScrcpy 是一个强大的安卓手机实时投屏到电脑的开源项目&#xff0c;可以将你的安卓手机…

ubuntu 设置 root 用户密码,创建新用户并赋权限

ubuntu 设置 root 用户密码&#xff0c;创建新用户并赋权限 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用&#xff0c; 安装 Ubuntu-20.04 系统&#xff0c;新安装好的系统&#xff0c;设置用户名密码时&#xff0c; root 用户密码默认为空&#xff0c;这时需要设置…

jsoncpp 编译和使用

原文链接&#xff1a; jsoncpp的编译和使用 jsoncpp 编译出库文件 1.从github仓库下载 2.下载 cmake 工具 3.生成VS项目 4.编译得到需要的库文件 jsoncpp 的使用 查看原文

MySQL 基础使用

文章目录 一、Navicat 工具链接 Mysql二、数据库的使用1.常用数据类型2. 建表 create3. 删表 drop4. insert 插入数据5. select 查询数据6. update 修改数据7. delete 删除记录truncate table 删除数据 三、字段约束字段1. 主键 自增delete和truncate自增长字段的影响 2. 非空…