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

ARM1.(ARM体系结构)

1.基本概念

        嵌入式:以应用为心,以计算机技术为础,软便件可被的专用计算机系统。

        计算机系统的软件基本组成:   系统软件、应用软件。

        计算机系统的硬件基本组成:运算器、控制器、存诸器、输入设备、输出设备

日常生活中遇到的专业术语:

        CPU中央处理器(Center Processing Unit):一种通用的强大处理器。

        GPU图形处理器(Graphics Processing Unit):处理图像的处理器

        FPU浮点型运算单元(Float Processing Unit)

在嵌入式行业里:

        MPU(Mico Processing Unit):微处理器,偏向处理,强调通用

        MCU(Mico Contral Unit):微控制器,偏向控制,强调集成度

        单片机:单片微型计算机

        DSP(Digital Signal Processing):数字信号处理器,高强度数学计算的专用芯片

        SOC(System On Chip):片上系统,SOC是一个设计和集成的概念,把MPU,MCU,

GPU,DSP,modam(调制解调器)规划在一起形成功能完善的蓝图。

     RAM(随机存储器)(Random Access Memory):价格贵,地址总线链接,每一个字节都可以被处理器直接寻址,运行速度较ROM快,掉电数据丢失

     ROM(只读存储器)(Read-only Memory)(块设备):价格便宜,运行速度满,掉电数据不丢失。

本次我们学习ARM使用的开发板是正点原子的IMAX6ULL

CISC:复杂指令集架构(体积大,功耗大,适用于电脑)

SISC:精简指令集架构(体积小,功耗小,适合应用于小型移动设备)

ARM

核心架构版本:ARM1-ARM11,11之后ARM分为A(CortexA-app应用),R(CortexR-realtime实时),M(CortexM-mcu单片机)

指令集版本:v1-v9

ALU算数逻辑单元:位于内核,如int a = 1,int b = 2, int c = a + b ,RAM将数据发送到位于内核的通用寄存器,通过ALU计算得出结果。由于通用寄存器不能被指针地址访问,因此无法通过c语言进行操作,需要用汇编语言对通用寄存器进行操作。而外设寄存器下挂在地址总线,需要通过总线(指针)进行访问。

存储器分类:RAM(内存),ROM(外存),register(寄存器),Cache(高速缓存)其分为数据Cache和指令Cache,其与MMU类似,使用那部分就打开那部分,将不使用的部分关闭,避免地址映射错误,使用Cache可以避免例如for循环中对变量的重复读取和修改,提高了运行效率。

 栈(顶)背靠内核,向下生长,避免向上生长数据越界到内核空间导致系统崩溃。

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

SPSR(saved program status register):备份程序状态寄存器

寄存器组示意图:

sp(stack point):栈指针寄存器,用来记录栈顶位置。 

lr(link regist):链接寄存器,保存程序跳转前的下一行程序地址,方便程序执行完后返回继续执行。

pc(program conter):程序计数器 ,指向要执行的下一行代码,每执行一行代码会自加一次,向后偏移,当执行函数调用时,pc跳转到要执行的函数地址,在函数执行完后返回lr寄存器保存的跳转前的下一行程序位置继续执行 。

那么问题来了,lr只有一个,当进行函数嵌套的时候,lr多次保存会导致地址覆盖,那函数是怎么精准的返回的呢?

        答案是lr在被覆盖前会将先前的地址放入栈中,虽然lr只能存放一个地址,但是相对栈来说栈的空间无限大且连续,压栈和弹栈的顺序都是固定的,因此通过lr和栈配合下程序可以做到准确返回。

面向应用的ARM最小系统:

存储器的结构层次:

单总线结构和多总线结构

RAM和ROM的分类:

冯诺依曼架构(普林斯顿架构):其核心是共享存储,分时访问。代码和数据公用一个内存空间和总线,取数据和取指令串行交替执行。

哈佛架构:其核心是分离存储,并行访问。指令和数据存储在两个独立的物理内存模块中,并且使用两条独立的总线进行访问。我们所学的ARM就是采用的改进型哈佛架构,即在芯片内部采用哈佛架构,在芯片外部采用冯诺依曼架构。

ARM工作模式:

每种模式的栈是独立的,sp指向的空间不同。        

cpsr(程序状态寄存器):

N:程序执行后最高位的数值(运算符号1负0正)

Z:记录操作结果是否为0。如果结果为0,则 Z = 1。如果结果不为0,则 Z = 0

C:记录无符号数运算的进位或借位。对于加法(ADD, ADC):如果加法产生了进位(结果小于任意一个加数),则 C = 1,否则为0。对于减法(SUB, SBC, CMP):如果减法没有发生借位,则 C = 1;如果发生了借位,则 C = 0。这一点容易混淆,可以理解为:C = 1 表示无符号减法结果有效(被减数 >= 减数),C = 0 则表示下溢(被减数 < 减数)。

V:记录有符号数运算是否发生了溢出。如果操作导致溢出(结果超出了有符号数所能表示的范围),则 V = 1。否则,V = 0

M位(0-4bit):负责记录处理器模式。

SPSR保存的程序状态寄存器):它的唯一目的就是:当异常(或中断)发生时,自动地、硬件地保存当前模式下的 CPSR 状态。

异常向量表:CPU硬件设计中的一个关键机制,它决定了当发生异常或中断时,CPU应该去哪里找到处理这个事件的代码。存放着异常处理程序的入口地址。


文章转载自:

http://54sq73i1.dgxrz.cn
http://wZu6ZBIv.dgxrz.cn
http://aPqaaKjo.dgxrz.cn
http://EBs48RO4.dgxrz.cn
http://yU9edSrl.dgxrz.cn
http://lmvz4euI.dgxrz.cn
http://sHlwIJQv.dgxrz.cn
http://TCG36LvU.dgxrz.cn
http://7S7FH1Ib.dgxrz.cn
http://FlJzuOhh.dgxrz.cn
http://WF4Olm5c.dgxrz.cn
http://OAlCF4Nt.dgxrz.cn
http://3bbT8Y0d.dgxrz.cn
http://WfDp8E8c.dgxrz.cn
http://4vCNfktz.dgxrz.cn
http://hSeJxFxy.dgxrz.cn
http://32L5jo3v.dgxrz.cn
http://IUnkkoQz.dgxrz.cn
http://iweG6Gj3.dgxrz.cn
http://erokB89O.dgxrz.cn
http://TBS5GXxB.dgxrz.cn
http://H2CbRTcj.dgxrz.cn
http://HjPioLvH.dgxrz.cn
http://G4OBUKgA.dgxrz.cn
http://uJuqbrX5.dgxrz.cn
http://RjdP98r6.dgxrz.cn
http://vTgmXRdZ.dgxrz.cn
http://4djTtmhw.dgxrz.cn
http://qz2JoKSA.dgxrz.cn
http://slBiU58J.dgxrz.cn
http://www.dtcms.com/a/378345.html

相关文章:

  • Linux开机启动设置全攻略
  • 解决Pytest参数化测试中文显示乱码问题:两种高效方法
  • PHP弱类型比较在CTF比赛中的深入分析与实战应用
  • 科大讯飞一面
  • html块标签和内联标签的通俗理解
  • 【C++】STL--Vector使用极其模拟实现
  • QT子线程与GUI线程安全交互
  • 论 Intel CPU 进化史:德承工控机全面进化 搭载新一代 Intel® Core™ Ultra 7/5/3 处理器
  • 论文阅读/博弈论/拍卖:《Truthful Auction for Cooperative Communications》
  • 【论文阅读】Towards Privacy-Enhanced and Robust Clustered Federated Learning
  • [论文阅读] 告别“数量为王”:双轨道会议模型+LS,破解AI时代学术交流困局
  • 【UE】2D SphereNormalsMap - 实时计算2D “球形法线” 贴图
  • 保护模式下的特权级_考研倒计时 100 days
  • 中科米堆CASAIM高精度蓝光3D扫描激光抄数服务逆向三维建模
  • 【Canvas与几何图案】六钩内嵌大卫之星黑白图案
  • 智能体工作流画布:提升企业业务流程自动化效率
  • 如何从 iPhone 打印联系人信息
  • FOC系列(六)----学习DRV8313/MS8313芯片,绘制驱动板
  • Android开发值Android官方模拟器启动失败问题跟踪排查
  • hardhat 项目目录介绍
  • IROS 2025 多智能体深度强化学习算法实现Crazyflie无人机在复杂环境中协同追逐
  • 光平面标定 (Laser Plane Calibration) 的原理和流程
  • sqbks二面(准备)
  • Linux云计算系统安全:PAM
  • DenseNet详解与实现
  • 计算机毕业设计 基于Hadoop豆瓣电影数据可视化分析设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试
  • 25.9.11 QTday1作业
  • unity 陶艺制作模拟
  • Unity 三维数学方法
  • 【氮化镓】GaN基半导体器件电离辐射损伤基可靠性综述