嵌入式学习——ARM学习(1)

news2024/9/21 14:41:03

1、存储器

高速缓存(Cache)通常分为三级:L1、L2 和 L3。它们的主要功能和特点如下:

这三级缓存的设计旨在通过层次化存储来优化数据访问速度和处理器性能。

1、L1 缓存:

  • 位置:直接集成在处理器核心内。
  • 大小:通常较小(一般为 16KB 到 128KB)。
  • 速度:速度最快,延迟最低。
  • 功能:存储最常用的数据和指令,以提高处理器的访问速度。

2、L2 缓存:

  • 位置:通常也在处理器内,但可能与核心共享。
  • 大小:比 L1 大(一般为 256KB 到 2MB)。
  • 速度:速度较 L1 慢,但仍然比主内存快。
  • 功能:存储不常用但仍然频繁访问的数据和指令,作为 L1 的补充

3、L3 缓存:

  • 位置:通常是多个核心共享的缓存,位于处理器芯片上。
  • 大小:更大(一般为 2MB 到 64MB 或更多)。
  • 速度:速度比 L2 慢,但仍然比主内存快。
  • 功能:存储较少访问的数据,减少对主内存的访问,提高多核处理器的效率。

 2、指令

2.1机器指令

        机器指令又称机器码,在运算器内部存在各种运算电路,当处理器从内存中获取一条机器指令,就可以按照指令让运算器内部的指定的运算电路进行运算

2.2汇编指令

由于机器指令对人类不友好,每一条汇编指令都可以理解为一条机器指令的标识,当我们编写一条汇编指令时,相当于对应一条机器指令,就可以让运算器进行对应的运算

2.3指令集

指令集就是指令的集合。当设计一个处理器内核是,需要提前设计好内核中需要的运算器的运算电路的种类和数量,每一个运算电路都对应一条指令,所以设计内核之前先将每一条运算电路对应的指令设计出来,组成一个指令集,用于作为内核设计的框架。

2.4一条指令的执行过程分析

1)取指阶段:控制器将要执行的资料地址发送给内存,内存将指令返回给控制器

2)译码阶段:对取到的指令进行译码操作,分析当前指令的意义,通知运算器进行对应的运算 

3)执行阶段:指令译码完成后,运算器进行对应的运算操作,将运算的结果进行保存

3、精简指令集和复杂指令集

3.1复杂指令集

CISC:(Complex Instruction Set Computer)侧重于硬件执行指令的功能性,CISC指令集处理器的硬件结构复杂,但是功能强大。

CISC指令复杂,指令长度、周期都不固定,在处理能力上有优势,一般相对应的,功能、体积成本也会更高

指令长度:一条指令占用的存储空间大小

指令的周期:执行一条指令的时间

3.2精简指令集

RISC:Reduced Instruction Set Computer

RISC结构简单,选择了使用频率高的简单指令,指令长度固定,大小固定,多为单周期指令。

在功耗、体积、价格等方面有很大优势,多用于嵌入式领域

3.3其他架构

ARM架构:当前主流的精简指令集架构

RISC-V架构:开源的精简指令集架构

MIPS架构:被中国龙芯收购

4、ARM内核

ARM1-ARMV6 已经不使用了

ARMV7:    32位处理器架构,支持32位指令集

ARMV8: 64位处理器架构,支持64位指令集,同时向下兼容32位指令集

ARMv9:    64位处理器架构,支持64位指令集

//32位处理器表示一条机器指令最大能进行32位的数据运算

//32位指令集表示指令集中的每一条指令的长度是32位

内核                                    架构

cortex-a7                           ARMV7

cortex-a53                         ARMV8

cortex-a55                         ARMV8

cortex-a77                         ARMV8

cortex-a78                         ARMV8

cortex-a710                       ARMV9

cortex-a720                       ARMV9

4.1SOC

soc(system on chlip):片上系统、若干个内核组成了一个处理器,在处理器外部集成各个外设,通过总线完成连接,组成一个微型计算机系统、

MCU:微控制器

MPU:微处理器

4.2 Cortex-A系列

主要用于高性能应用,如智能手机、平板电脑、智能电视和嵌入式系统。适合需要运行复杂操作系统和应用程序的场景。

4.3 Cortex-R系列

专为实时应用设计,常用于汽车、工业控制、医疗设备和其他需要高可靠性和实时性能的领域。

4.4 Cortex-M系列

主要用于低功耗、低成本的嵌入式系统,如物联网设备、传感器、家电和消费电子产品。

4.5 SecurCore系列

SecurCore系列用于对安全性能要求比较高的场景

4.6 Cortex-X系列

cortex-X系列是ARM在2016年新推出的一种内核系列,这系列的内核在云计算、边缘计算方面性能比较优越

5、ARM数据约定

A7采用的是32位架构

ARM约定:

        Byte 8 bits.

        Halfword 16 bits.

        Word 32 bits.

        Doubleword 64 bits.

大部分ARM core 提供:

        ARM 指令集(32-bit)

        Thumb 指令集(16-bit )        

6.ARM工作模式

cortex-A特有的模式:

1.monitor模式:执行安全监控代码时进入的模式

2.HYP模式:虚拟化支持模式

7.ARM V-7架构寄存器

8.ARM V-7架构下的一些特殊寄存器

8.1 R15寄存器 PC

R15寄存器又被称为(PC:program counter)程序计数器

PC寄存器保存即将被从内存中取出来的指令的地址

当PC保存的指令地址被处理器发送给内存之后PC的值会自动向下加一条指令的大小,

这也是程序可以继续向下顺序执行的原因

实现程序跳转的本质就是修改PC的值

一条指令的执行过程:

        取指:将要执行的指令从内存中取出来

        译码:对取出来的指令进行分析和译码操作

        执行:将译码之后的指令交给运算器进行运算处理

8.2 R14寄存器 LR

R14又被称为(LR:link register)链接寄存器

LR寄存器的作用是当执行指令时进行程序跳转时,LR会保存跳转指令下一条指令的地址,方便程序返回

8.3 R13寄存器 SP

R13寄存器又被称为(SP:stack pointer)栈指针寄存器

SP寄存器保存栈内存栈顶的地址,对一些临时数据进行压栈出栈操作时需要使用SP的值来找到栈区位置

8.4 CPSR/SPSR

8.4.1  CPSR/SPSR概念

CPSR寄存器又叫(current program status register)当前程序状态寄存器

这个寄存器的作用是保存当前程序的工作状态

工作状态中包含程序的工作模式、中断禁止位以及程序的运算结果条件位等信息

SPSR寄存器又叫(saved program status register)被保存的程序状态寄存器

这个寄存器当处理器因为各种异常切换到异常模式工作时会将CPSR值提前保存到SPSR中,处理器处理完异常之后会将SPSR的值

赋值给CPSR,用于恢复处理器的工作状态

8.4.2 CPSR/SPSR 32位 数据含义

1. N[31] : 指令的运行结果为负数时,N位被自动置1,否则为0.

                eg : 100 - 200

2. Z[30] : 指令的运行结果为零时,Z位被自动置1,否则为0.

                eg:100-100

3. C[29] : 加法:加法运算如果产生进位,C位被自动置1,否则为0.

                        32位指令:低32位向高32位进位

         ex:两个32位数运算得到超过32位的结果

         0XFFFFFFFE+0x3

                减法:减法运算如果产生借位,C位被自动清0,否则位1.

                        32位指令:低32位向高32位借位

        1-0XFFFFFFFE

4. V[28] : 符号位发送变化,V位被自动置1,否则清0.

5. I[7] : IRQ中断屏蔽位

         I = 0 : 不屏蔽IRQ中断

         I = 1 : 屏蔽IRQ中断

6. F[6] : FIQ中断屏蔽位

        F = 0 : 不屏蔽FIQ中断

        F = 1 : 屏蔽FIQ中断

7. T[5] : 状态位

        T = 0 : 表示ARM状态,执行的是ARM指令集

        T = 1 : 表示Thumb状态,执行的是Thumb指令集

        ARM指令集 : 一条汇编指令编译生成32位的机器码

        thumb指令集:一条汇编指令编译生成16位的机器码

        ARM指令集的代码的密度低,而thumb指令记得代码密度高。

        ARM指令集的功能性要高于Thumb指令集。

8. M[4:0] : 模式位

        10000 User mode;

        10001 FIQ mode;

        10010 IRQ

        10011 SVC mode;

        10111 Abort mode;

        11011 Undfined mode;

        11111 System mode;

        10110 Monitor mode;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

西门子PLC不得不说的事:S7-200SMART通信端口及连接方式

今天我们来聊聊西门子S7-200 SMART的“通信大法”!挺简单的,咱们来捋捋~ S7-200 SMART 是西门子公司推出的一款面向小型控制应用的PLC(可编程逻辑控制器)。目前S7-200SMART PLC在小型PLC市场使用率占比最大,以高性价等…

C_07_指针

指针 地址编号: 存的是值 指针: 存储的是地址编号值 的数据类型 是地址编号的数据类型,强调的是类型 指针变量: 数据类型为指针的变量,用于保存地址编号 地址编号 概述: 地址编号是内存每一个字节的编号统称。 如 ​ int n 10…

轻松获取商品细节!淘宝天猫详情接口API带你看遍全球好物

随着互联网的飞速发展,网络购物已经成为人们生活中不可或缺的一部分。而作为国内最大的电商平台,淘宝和天猫自然成为了消费者们选购商品的首选之地。为了更好地满足用户需求,淘宝天猫推出了详情接口API,让用户能够更轻松地获取商品…

【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)

目录 一、引言 二、填充蒙版(fill-mask) 2.1 概述 2.2 技术原理 2.2.1 BERT模型的基本概念 2.2.2 BERT模型的工作原理 2.2.3 BERT模型的结构 2.2.4 BERT模型的应用 2.2.5 BERT模型与Transformer的区别和联系 2.3 应用场景 2.4 pipeline参数…

在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64

在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64 一、卸载MariaDB(如果已安装)二、下载MySQL源码包并解压三、安装编译所需的工具和库四、创建MySQL的安装目录及数据库存放目录五、编译安装MySQL六、配置MySQL七、设置环境变量八…

计算机系统-内存与CPU

CPU(中央处理单元,Central Processing Unit)是计算机系统的核心组件,负责执行程序中的指令并处理数据。它被称为计算机的“大脑”,因为它控制了计算机的所有计算和操作。CPU主要由以下几个部分组成: 算术逻…

如何在UE5.4中重新定位动画?

动画在游戏和电影制作中扮演着至关重要的角色,而在虚幻引擎5.4(UE5.4)这一强大的实时3D创作平台中,重新定位动画的能力更是将创意表达推向了新的高度。本文将引导您探索UE5.4中重新定位动画的技巧,确保您的动画作品不仅…

leetcode 169 多数元素

正文 本题较为简单,但是有一些比较有趣的方法,这里特来记录一下。 普通方法 遍历整个数组,使用 count 进行统计,然后选择出现次数大于 len(nums) / 2 的元素。 class Solution:def majorityElement(self, nums: List[int]) -&g…

工业相机测长仪的组成部分

关键字:工业相机测长仪,高精度测长仪,视觉测量系统,蓝鹏测控测长仪,工业测长仪, 本文介绍了蓝鹏测控公司机器视觉业务 测长仪的核心产品及技术特点,主要涵盖相机部分、相机防护系统、补光系统和软件部分。 (一)相机部分 我司的机器视觉业务…

双轴测径仪的四种样式!

双轴测径仪主要是用于外径及椭圆度的检测,适用于线缆电缆、橡胶塑料、金属、纸管等各种材质的线棒管材的外径及椭圆度尺寸检测。 双轴测径仪是由两个单测头垂直布置组合而成,目前根据用户的不同需求,为双轴测径仪设计了四种外观样式。 45角…

【开端】从黑神话。悟空看国产游戏技术能否引领全球

国产游戏技术能否引领全球? 近年来,国产游戏行业蓬勃发展,技术水平不断提升,多款作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,中国游戏开发者在各个领域都取得了显著进步。面对…

博主自用智能猫砂盆分享!CEWEY、空气萝卜、糯雪三款区别到底在哪里

不得不说,智能猫砂盆真的是我们这些经常外出的养猫人必备的一个智能产品了,自动铲屎的功能可以让我完全不用担心猫砂盆里会堆积猫便便,然后发臭生虫。有智能猫砂盆在,这些都不是问题,但是想要买一款合适的智能猫砂盆也…

sql-labs36-40通关攻略

第36关 一.判断闭合点 http://127.0.0.1/Less-36/?id1%df%20--http://127.0.0.1/Less-36/?id1%df%20-- 二.查询数据库 http://127.0.0.1/Less-36/?id-1%df%27%20union%20select%201,database(),3--http://127.0.0.1/Less-36/?id-1%df%27%20union%20select%201,database…

vue中使用vue-video-player插件播放视频 以及 audio播放音频

一、使用vue-video-player插件播放视频 安装 npm install vue-video-player --save 在main.js中引用 //引入视频播放插件 // main.js import VueVideoPlayer from vue-video-player import video.js/dist/video-js.css import vue-video-player/src/custom-theme.cssVue.use(V…

web3js连接测试网并完成交易

ps:有个需求是要等待确认交易。写这篇之后,我发现直接用回调函数要等好久好久好久。找到解决方案在这个链接但是有点麻烦。我已经弃用web3,直接使用ethersjs配合infura了,贼快。 本文将介绍如何使用web3js在Sepolia测试网完成一次…

应用案例|亚克力板CNC加工自动化上下料

在现代化制造领域,自动化和智能化已成为提升生产效率、降低成本的关键。针对当前CNC加工过程中亚克力板上下料环节的人工操作问题,富唯智能提出了基于AMR(自主移动机器人)的复合机器人解决方案。传统的人工取料、放置以及加工完成…

PSINS工具箱函数介绍——gpssimu

关于工具箱 gpssimu是生成GPS的位置和速度信息的函数,在psins240101\base\base1目录下 本文所述的代码需要基于PSINS工具箱,工具箱的讲解: PSINS初学指导:https://blog.csdn.net/callmeup/article/details/137087932 gpssimu是…

【ubuntu24.04】AX210/MT9621/USB网络共享访问无线网络

发现华硕的路由器访问网络经常有问题,比如clash 经常不能正常工作。 即使内网丢包严重? 期望能给台式机增加一个无线网卡访问外网。 我的五代网卡U12, 无法使用wap2企业版的无线网络:【ubuntu24.04】腾达U12 8812au无线网卡成功安装 普通的是没问题的。 对比了一些网卡,wifi…

认知杂谈37

今天分享 有人说的一段争议性的话 I 《别让焦虑困住自己》 嘿,朋友!这大热天的,实在是热得让人心里发慌。 I 咱可别再给自己找不痛快啦,赶紧找个舒服的地儿坐下,泡上一杯茶,好好唠唠嗑,给咱的心…

如何克服编程学习中的挫折感:哲学与心理学的启示

在编程学习的道路上,挫折感几乎是每个人都会遇到的障碍。无论是新手还是资深开发者,都会在面对难题时感到沮丧、焦虑甚至是无助。然而,挫折不仅是挑战,更是成长的机会。在这篇博客中,我们将结合哲学与心理学的智慧&…