ARM,基础、寄存器

news/2025/2/12 4:16:07/

1.认识ARM
    1)是一家公司
    2)做RISC处理器内核
    3)不生产芯片
2.ARM处理器的最新发展(重要)
    高端产品线: cortex-A9 主要做音视频开发,例如:手机 平板.....
    中端产品线:cortex-R   主要做实时性要求比较高的系统 例如:汽车的刹车系统
    低端产品线:cortex-M   主要做单片机开发 例如:小恐龙 小马达 手表....
3.编程模型
    1)ARM 采用的是32位架构.
    2)ARM 约定
        byte:8bits
        word:字 4bytes
        halfword:半字   2bytes
        doubleword:双字 8bytes
    3)ARM Core状态
        ARM状态:ARM指令集 即每条指令占4bytes
        Thumb状态:Thumb指令集 即每条指令占2bytes
4. ARM有8个基本工作模式(Cortex-A系列) (重点)
    user:正常模式 正常情况下,程序运行在此模式
    FIQ:快速中断模式(高优先级) 
    IRQ:普通中断模式(低优先级)
    svc:超级用户模式 当复位或软中断异常时cpu切换到此模式
    abort:存取异常模式 越界或访问磁盘出错cpu就会切换到此模式
    undef:未定义指令异常模式 当cpu执行过程中遇到未定义指令时就切换到此模式
    system:同user
    monitor:特权模式 cortex-A处理器特有的模式
5.ARM寄存器(Cortex-A有40个)
    r0-r12: 通用寄存器 13个 每个寄存器4字节
    r13,r14: 2*7=14个
    r15(pc):1个
    cpsr:1个
    spsr:1*6=6个 user/system没有spsr
    FIQ:r8-r12 5个
    
6.寄存器说明
    r13(sp):栈顶指针寄存器 即保存的是栈顶指针 应用:异常、函数调用
    r14(lr):链接寄存器 保存函数或异常的返回地址
    r15(pc):程序寄存器 保存取指指令的地址
    cpsr:当前程序状态寄存器 记录当前cpu的工作模式、中断状态、cpu的状态(ARM/Thumb状态)、运算结果
    spsr:保存当前程序状态寄存器 即 spsr = cpsr 异常
7.cpu的发展历程    
    ARM 体系: ARMv4       ARMv5             ARMv6         ARMv7    
    ARM CPU:   arm7     arm9  arm10          arm11     arm-cortex-a8  
    流水线:    3       5      6              8             13
    频率(MHZ)  80       150   260            335           667 
    MMU        无/有        有                ... 
    结构:    冯诺依曼       哈佛              ...                            


http://www.ppmy.cn/news/1172945.html

相关文章

LeetCode75——Day14

文章目录 一、题目二、题解 一、题目 643. Maximum Average Subarray I You are given an integer array nums consisting of n elements, and an integer k. Find a contiguous subarray whose length is equal to k that has the maximum average value and return this v…

Qt 之 QUrlQuery使用详解

Qt 之 QUrlQuery 一、QUrlQuery构造函数二、QUrlQuery添加参数2.1 void addQueryItem(const QString &key, const QString &value):添加查询参数。2.2void setQueryItems(const QMap<QString, QString> &map):从`QMap`中批量添加查询参数。三、QUrlQuery获…

k8s集群镜像下载加gradana监控加elk日志收集加devops加秒杀项目

展示 1.配套资料2.devops 3.elk日志收集 4.grafana监控 5.dashboard![在这里插入图片描述](https://img-blog.csdnimg.cn/bf294f9fd98e4c038858a6bf5c34dbdc.png 目的 学习k8s来来回回折腾很久了&#xff0c;光搭个环境就能折腾几天。这次工作需要终于静下心来好好学习了一…

解密Java中神奇的Synchronized关键字

文章目录 &#x1f389; 定义&#x1f389; JDK6以前&#x1f389; 偏向锁和轻量级锁&#x1f4dd; 偏向锁&#x1f4dd; 轻量级锁&#x1f4dd; 自旋锁&#x1f4dd; 重量级锁&#x1f525; 1. 加锁&#x1f525; 2. 等待&#x1f525; 3. 撤销 &#x1f389; 锁优化&#x1f…

【Kotlin精简】第5章 简析DSL

1 DSL是什么&#xff1f; Kotlin 是一门对 DSL 友好的语言&#xff0c;它的许多语法特性有助于 DSL 的打造&#xff0c;提升特定场景下代码的可读性和安全性。本文将带你了解 Kotlin DSL 的一般实现步骤&#xff0c;以及如何通过 DslMarker &#xff0c; Context Receivers 等…

C++中的多态以及如何实现多态(近万字图文详解)

C中的多态 1. 多态的概念1.1 概念 2. 多态的定义及实现2.1多态的构成条件&#xff08;重点&#xff09;2.2 虚函数2.3 虚函数的重写(重点)2.4 C11 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 抽象类3.1 概念3.2 接口继承和实现继承 4. 多态的原理4.1虚函数…

SQL查询优化---单表使用索引及常见索引失效优化

如何避免索引失效 1、全值匹配 系统中经常出现的sql语句如下&#xff1a; EXPLAIN SELECT SQL_NO_CACHE * FROM emp WHERE emp.age30 EXPLAIN SELECT SQL_NO_CACHE * FROM emp WHERE emp.age30 and deptid4EXPLAIN SELECT SQL_NO_CACHE * FROM emp WHERE emp.age30 and dept…

【C++和数据结构】位图和布隆过滤器

目录 一、位图 1、位图的概念 2、位图的实现 ①、基本结构 ②、set ③、reset&#xff1a; ④、test ⑤、问题&#xff1a; ⑥、位图优缺点及应用&#xff1a; ⑦、完整代码及测试 二、布隆过滤器 1、布隆过滤器的提出 2、布隆过滤器的实现 ①、基本结构 ②…