当前位置: 首页 > news >正文

ARM32开发——DMA

🎬 秋野酱:《个人主页》
🔥 个人专栏:《Java专栏》《Python专栏》

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

文章目录

    • 基础概念
      • CPU
      • RAM
      • 外设
    • ARM32程序
      • 存储
    • 执行过程
      • 取数据
    • 执行操作
    • 流程总结

基础概念

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会将对应的数据通过总线传递给外设
    这里的每一份数据都是这么个操作流程。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 011. Oracle-约束
  • 【设计模式】UML类图和六大设计原则
  • [基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 08 创建项目的目录结构介绍
  • ggplot2 缩小的/一般长度的、带箭头的坐标轴 | R语言
  • django自用教程
  • 3个WebSocket的.Net开源项目
  • 赋能百业:多模态处理技术与大模型架构下的AI解决方案落地实践
  • 【Mysql】记录sql在执行过程中很慢
  • 配电房数字式仪表读数识别算法开发
  • 开放式激光振镜运动控制器在Ubuntu+Qt下的文本标刻
  • Leetcode3271. 哈希分割字符串
  • Tranformer分布式特辑
  • 【C++】Stack
  • 【ShuQiHere】探索人工智能核心:机器学习的奥秘
  • 计算机毕业设计 智能推荐旅游平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • ES6简单总结(搭配简单的讲解和小案例)
  • gops —— Go 程序诊断分析工具
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • ng6--错误信息小结(持续更新)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • webgl (原生)基础入门指南【一】
  • 从setTimeout-setInterval看JS线程
  • 机器学习学习笔记一
  • 数据仓库的几种建模方法
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • postgresql行列转换函数
  • #HarmonyOS:Web组件的使用
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $.ajax,axios,fetch三种ajax请求的区别
  • (03)光刻——半导体电路的绘制
  • (7)svelte 教程: Props(属性)
  • (BFS)hdoj2377-Bus Pass
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (黑马C++)L06 重载与继承
  • (六)vue-router+UI组件库
  • (十二)Flink Table API
  • (十六)、把镜像推送到私有化 Docker 仓库
  • (算法)Travel Information Center
  • (算法)前K大的和
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)memcache、redis缓存
  • .gitignore文件---让git自动忽略指定文件
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • @Autowired 和 @Resource 区别的补充说明与示例