ARM基础

一、ARM

        ARM公司(正式名称为ARM Holdings Ltd.)是一家总部位于英国剑桥的半导体和软件设计公司,专注于开发和授权基于ARM架构的处理器技术。

        ARM也是一种广泛使用的计算机架构,特别适合于低功耗和高性能的应用。ARM最初由英国的Acorn计算机公司在1980年代开发,后来发展成为一个全球领先的处理器架构。

二、ARM处理器的发展

ARM处理器有多种型号,主要分为几个系列,其中每个系列针对不同的应用场景和性能需求。以下是一些主要的ARM处理器型号和系列:

1. ARM Cortex-A系列
  • Cortex-A系列适用于高性能应用,如智能手机、平板电脑和其他消费电子产品。
2. ARM Cortex-M系列
  • Cortex-M系列特别设计用于低功耗和嵌入式应用,广泛应用于物联网设备和微控制器。
3. ARM Cortex-R系列
  • Cortex-R系列适用于实时应用,特别是在汽车和航空航天领域。

三、片上系统(SOC,system on chip)

System on Chip,简称Soc,也即片上系统。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。

一个典型的最小系统可能包括以下基础组件:

  • 微控制器或微处理器:作为系统的核心,用于执行程序。
  • 随机存取存储器(RAM):用于临时存储数据和程序运行的上下文。
  • 只读存储器(ROM)或闪存:用于存储固件或操作系统。
  • 时钟电路:提供稳定的时钟信号以保证系统的稳定运行。
  • 电源管理电路:为系统提供必要的电压和电流。
  • 输入输出接口:如LED、按钮、串口等,用于与外部环境交互。

四、CPU(Central Processing Unit,CPU)

        中央处理器(Central Processing Unit,CPU)是一台计算机的运算核心和控制核心。

        CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。

        CPU通常由以下几个主要部分组成:

  1. 算术逻辑单元(Arithmetic Logical Unit,ALU)

    负责执行所有的算术和逻辑运算。
  2. 控制单元(Control Unit, CU)

    负责从内存中获取指令,解释其含义并控制其它部件的工作。
  3. 寄存器(Register,REG)

    CPU内部的小型高速存储器,用于暂时存储数据和指令,寄存器访问速度极快。
  4. 缓存(Cache)

    CPU中的高速缓存,用于提高访问频繁数据的速度,通常分为L1、L2和L3缓存。
  5. 总线接口(Bus)

    CPU与内存及其他外部设备之间的通信机制,负责数据和命令的传输。
  6. 状态指示寄存器(PSR):

计算机中的一个重要寄存器,用于存储处理器当前执行状态的信息。

五、计算机的指令集

        CPU的指令集是指令的集合,这些指令用于控制计算机的操作和执行各类计算。按照指令的复杂程度,指令集通常被划分为两大类:

        复杂指令集计算(CISC):CISC架构包含较多的指令,可以执行复杂的操作。每条指令能够完成多条RISC指令的工作。

        精简指令集计算(RISC):RISC架构简化了指令集,提供少量且一致性强的指令,并通常在一个时钟周期内完成。

        程序计数器、链接寄存器和堆栈指针是计算机架构中关键的寄存器,它们负责程序的控制流程和数据管理。

六、编译

编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级
语言或机器语言)的翻译过程。用于编译的软件为编译器 

 七、计算机的硬件组成

        硬件是计算机系统的物质基础,软件是计算机系统的灵魂。硬件和软件是相辅相成的,不可
分割的整体。

1.输入设备     

        输入设备的任务是把人们编好的程序和原始数据送到计算机中去,并且将它们转换成计算机内部所能识别和接受的信息方式。常用的有键盘、鼠标、扫描仪等。


2.输出设备


        输出设备的任务是将计算机的处理结果以人或其他设备所能接受的形式送出计算机。常用的有显示器、打印机、绘图仪等。

3.存储器


存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现“存储程序
控制”的基础。

 

 主存储器
可由CPU直接访问,用来存放当前正在执行的程序和数据。

辅助存储器
设置在主机外部,CPU不能直接访问,用来存放暂时不参与运行的程序和数据,需要时
再传送到主存。

高速缓冲存储器(Cache)
CPU可以直接访问,用来存放当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据

存储器的分类
1.易失性存储器:易失性存储器是指掉电后数据就丢失了的存储器,最常见的就是RAM;

2.非易失性存储器:非易失性存储器是指掉电后数组不会丢失的存储器,最常见的就是ROM

norflash(或非闪存):NOR Flash可以像RAM一样直接寻址
nandflash(与非闪存):不能进行寻址操作,需要先选择块(block),再进行页操作。
4.运算器


运算器是对信息进行处理和运算的部件,经常进行的运算是算术运算和逻辑运算,因此运算器
的核心是算术逻辑运算部件ALU。运算器中有若干个寄存器(如累加寄存器、暂存器等)。

5.控制器


控制器是整个计算机的指挥中心。控制器中主要包括时序控制信号形成部件和一些专用的寄存器。

 6 计算机的总线结构


将各大基本部件,按某种方式连接起来就构成了计算机的硬件系统。目前许多计算机(主要指小、微型计算机)的各大基本部件之间是用总线(Bus)连接起来的。总线是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息

 

八、处理器的工作模式

 

 

  1. 通用寄存器

    • ARM处理器通常有16个通用寄存器(R0到R15)。其中,R0到R12可以用于一般的数据操作,R13(SP)是堆栈指针,R14(LR)是链接寄存器,R15(PC)是程序计数器。
  2. 特殊寄存器

    • 程序计数器(PC):存储当前执行指令的地址。
    • 链接寄存器(LR):用于存储返回地址,通常在调用子程序时使用。
    • 堆栈指针(SP):指向当前栈顶位置,在函数调用和局部变量管理中非常重要。
  3. 状态寄存器

    • 程序状态寄存器(CPSR):包含了处理器的运行状态信息,包括标志位(如零标志、进位标志、溢出标志等)以及处理器的模式(用户模式、特权模式等)。
    • 保存程序状态寄存器(SPSR):用于保存程序状态信息。当处理器在执行过程中发生中断或异常时,当前的程序状态寄存器(CPSR,Current Program Status Register)的内容会被保存到 spsr 中。这使得处理器能够在服务中断或异常后恢复到中断前的状态。

 

九、异常处理

 

 

向量表

  • 向量表包含了不同异常类型的处理入口地址,如:
    • FIQ(快速中断请求)
    • IRQ(中断请求)
    • 数据中止
    • 预取中止
    • 软件中断
    • 未定义指令
    • 重置

向量表的地址可以在特定的内存位置

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】分布式锁之 Redission

一、基于setnx实现的分布式锁问题 重入问题:获得锁的线程应能再次进入相同锁的代码块,可重入锁能防止死锁。例如在HashTable中,方法用synchronized修饰,若在一个方法内调用另一个方法,不可重入会导致死锁。而synchroni…

WebGL入门(一)绘制一个点

源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><scr…

2-103 基于matlab的光电信号下血氧饱和度计算

基于matlab的光电信号下血氧饱和度计算&#xff0c;光转换成电信号时&#xff0c;由于动脉对光的吸收有变化而其他组织对光的吸收基本不变&#xff0c;得到的信号就可以分为直流DC信号和交流AC信号。提取AC信号&#xff0c;就能反应出血液流动的特点。这种技术叫做光电容积脉搏…

STM32基础学习笔记-Timer定时器面试基础题5

第五章、TIMER 常见问题 1、基本概念&#xff1a;什么是定时器 &#xff1f;作用 &#xff1f;分类 &#xff1f; 2、时基单元 &#xff1f;组成 &#xff1f;计数模式 &#xff1f;溢出条件 &#xff1f; 溢出时间计算 &#xff1f; 3、systick原理 &#xff1f;代码讲解 &…

MODIS/Landsat/Sentinel下载教程详解【常用网站及方法枚举】

⛄前言 在当今快速发展的地球观测时代&#xff0c;遥感技术作为获取地球表面及其环境信息的重要手段&#xff0c;正以前所未有的广度和深度改变着我们对自然界的认知与管理方式。MODIS&#xff08;Moderate-resolution Imaging Spectroradiometer&#xff0c;中分辨率成像光谱…

网络通信——OSI七层模型和TCP/IP模型

OSI模型 一.OSI七层模型 OSI&#xff08;Open System Interconnect&#xff09;七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能&#xff0c;从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时&#xff0c;更…

分享课程:VUE数据可视化教程

在当今这个数据驱动的世界中&#xff0c;数据可视化已经成为了一种至关重要的工具&#xff0c;它帮助我们理解复杂的数据集&#xff0c;发现模式、趋势和异常。数据可视化不仅仅是将数字转换成图表&#xff0c;它是一种将数据转化为洞察力的艺术。 1.什么是数据可视化&#xf…

DNS协议解析

DNS协议解析 什么是DNS协议 IP地址&#xff1a;一长串唯一标识网络上的计算机的数字 域名&#xff1a;一串由点分割的字符串名字 网址包含了域名 DNS&#xff1a;域名解析协议 IP>域名 --反向解析 域名>IP --正向解析 域名 由ICANN管理&#xff0c;有级别&#xf…

CVE-2024-46101

前言 自己挖的第一个CVE~ 喜提critical 这里简单说一下。 漏洞简介 GDidees CMS < 3.9.1 的版本&#xff0c;存在一个任意文件上传漏洞。允许登录后的攻击者上传webshell获得网站的权限。 影响版本&#xff1a; GDidees CMS < 3.9.1 &#xff08;其它的我没测。。&am…

二叉树之堆树

堆树是一种完全二叉树&#xff0c;完全二叉树特点&#xff1a;除了最后一层所有层都填满&#xff0c;最后一层节点从左到右排列。堆树分为两种类型&#xff1a;大顶堆和小顶堆。 大顶堆&#xff1a;每个节点的值都大于或等于其子节点的值&#xff0c;根节点是最大值。 小顶堆…

降准降息一揽子措施点燃 A 股激情,4% 大涨之后趋势深度剖析

文章目录 牛回速归原因分析引爆点情绪和信心一根大阳线&#xff0c;千军万马来相见阴霾是否一扫而空还未可知 流动性和增量 潜在隐患等待经济复苏配套政策期待中美关系进展 短期内趋势分析空军短期内仍有余力如何看待第2日的回撤外围 趋势分析结论短期内可能仍有波折中长期会是…

Flink Task 日志文件隔离

Flink Task 日志文件隔离 任务在启动时会先通过 MdcUtils 启动一个 slf4j 的 MDC 环境&#xff0c;然后将 jobId 添加到 slf4j 的 MDC 容器中&#xff0c;随后任务输出的日志都将附带 joid。 MDC 介绍如下&#xff1a; MDC ( Mapped Diagnostic Contexts )&#xff0c;它是一个…

C/C++逆向:循环语句逆向分析

在逆向分析中&#xff0c;循环语句通常会以特定的汇编模式或结构体现出来。常见的循环语句包括 for 循环、while 循环和 do-while 循环。由于不同的编译器会根据代码优化的级别生成不同的汇编代码&#xff0c;分析循环的模式也可能会有所不同。以下是三种常见循环语句的汇编分析…

【C++ Primer Plus习题】17.7

问题: 解答: #include <iostream> #include <vector> #include <string> #include <fstream> #include <algorithm>using namespace std;const int LIMIT 50;void ShowStr(const string& str); void GetStrs(ifstream& fin, vector<…

ShardingSphere 分库分表

中间件 常用中间件 MyCat 是基于 Proxy&#xff0c;它复写了 MySQL 协议&#xff0c;将 Mycat Server 伪装成⼀个 MySQL 数据库客户端所有的jdbc请求都必须要先交给MyCat&#xff0c;再有 MyCat转发到具体的真实服务器缺点是效率偏低&#xff0c;中间包装了⼀层代码⽆侵⼊性…

【刷题3】找到字符串中所有字母异位词、串联所有单词的子串

目录 一、找到字符串中所有字母异位词二、串联所有单词的子串 一、找到字符串中所有字母异位词 题目&#xff1a; 思路&#xff1a; 用一个变量count来统计有效字符的个数。哈希表2统计字符串p的每个字符出现的个数&#xff0c;然后遍历字符串s&#xff0c;先进窗口&#xf…

Unity-物理系统-碰撞检测-物理材质

物理材质的作用&#xff1a;改变碰撞效果 因为碰撞的过程是相互的&#xff0c;所以在碰撞双方都要加相同的物理材质才能实现效果 物理材质创建 参数

微软宣布弃用WSUS,企业用户尽早准备替换方案

微软最近宣布将逐步弃用Windows Server Update Services (WSUS)&#xff0c;不再为其开发新功能&#xff0c;但会继续支持现有的更新和功能。这一决定对企业客户来说影响深远&#xff0c;尤其是那些依赖WSUS来管理大规模Windows设备更新的组织。 对企业客户的影响 安全性与合规…

模型Alignment之RLHF与DPO

1. RLHF (Reinforcement Learning from Human Feedback) RLHF 是一种通过人类反馈来强化学习的训练方法&#xff0c;它能够让语言模型更好地理解和执行人类指令。 RLHF 的三个阶段 RLHF 的训练过程一般分为三个阶段&#xff1a; 监督微调&#xff08;Supervised Fine-Tuning,…

Apache ZooKeeper 及 Curator 使用总结

1. 下载 官网地址&#xff1a;Apache ZooKeeper 点击下载按钮 选择对应的版本进行下载 2. 使用 1、解压 tar -zxf apache-zookeeper-3.9.2-bin.tar.gz2、复制配置文件&#xff0c;有一个示例配置文件 conf/zoo_sample.cfg&#xff0c;此文件不能生效&#xff0c;需要名称为…