ARM32开发——DMA

🎬 秋野酱:《个人主页》

🔥 个人专栏:《Java专栏》《Python专栏》

⛺️心若有所向往,何惧道阻且长

文章目录

基础概念

CPU

CPU(Central Processing Unit,中央处理单元)是计算机系统中的核心部件,也被称为处理器。它是计算机的大脑,负责执行指令、处理数据以及控制计算机的各种操作。CPU通常由多个核心组成,每个核心可以独立执行指令,从而提高计算机的处理能力。

RAM

RAM(Random-Access Memory,随机存取存储器)是计算机中用于临时存储数据和程序的内存类型。RAM是计算机运行时存储数据的地方,其中包括操作系统、应用程序、用户数据等。与ROM(Read-Only Memory,只读存储器)不同,RAM中的数据可以被读取和写入,而ROM中的数据只能被读取。

外设

外设(Peripheral Device)是指连接到计算机或微控制器的附加设备,用于完成特定的功能或提供特定的输入/输出。外设可以是各种类型的硬件设备,例如定时器、显示器、存储设备、通信设备等。这些外设通过与主处理单元(如CPU)或微控制器的通信来实现数据交换和控制操作。

程序运行过程

我们用一段伪代码来分析程序执行的过程:

复制代码
uint8_t data = 0x01;
串口发送(data);

看似简单的代码,其实以上包含了多个功能模块间的交互。

ARM32程序

存储

在ARM32架构中,程序运行过程中,我们定义的变量其实都是存储在SRAM中,其实就是我们所说的内存。

我们的CPU去获取这个内存空间的数据,加载到CPU的缓存区(寄存器)中,执行CPU指令,指令操作加载的数据,程序就运行起来了。

执行过程

取数据

复制代码
uint8_t data = 0x01;

执行操作

复制代码
串口发送(data);

CPU通过总线,将数据交给串口,串口接收到数据后,将数据发出。

流程总结

  1. CPU执行过程中,通过总线,到SRAM中取数据
  2. CPU将取的数据,按照逻辑处理顺序进行执行
  3. 逻辑中用到了外设部分,CPU会将对应的数据通过总线传递给外设
    这里的每一份数据都是这么个操作流程。
相关推荐
szxinmai主板定制专家9 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
HQB202612 小时前
屹晶微电子 EG1130|2‑24V 输入 / 最高 28V 输出 内置 MOS 异步升压 DC‑DC|SOT23‑6|摄像头 / 车充 / 电池充电电源
嵌入式硬件·硬件工程
泛凡(Linyongui)13 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
十年磨一剑~14 小时前
Linux 内核中断处理机制与软硬件协同流程
linux·嵌入式硬件
糖糖单片机设计15 小时前
基于单片机的热水器节能控制系统
单片机·嵌入式硬件
数字新视界16 小时前
数字孪生技术赋能智能化转型与创新实践
嵌入式硬件·物联网·系统架构·机房管理·动力与环境监控系统
Zevalin爱灰灰16 小时前
Linux入门第二部分(ARM裸机篇) 第一章 开发环境搭建与了解
linux·arm开发·嵌入式
硅基手札16 小时前
CAN 技术系列 08 · CAN 控制器寄存器与 IP 架构
驱动开发·架构·嵌入式开发·通信协议·can总线
HQB202616 小时前
屹晶微电子 EG1195|10‑120V/10A+ 外置 MOS 异步降压控制器|ESOP‑8|电动车转换器 / 快充 / 工业电源
嵌入式硬件·硬件工程
硅基手札17 小时前
CAN 技术系列 09 · CAN 传输模式:轮询 / 中断 / DMA
驱动开发·bsp·嵌入式开发·通信协议·can总线