ARM开发基本概念

一.计算机组成原理

1.CPU核

        1.1机器码设计

  • 单片工作且能识别和运行的一类代码,常见的格式有二进制BIN格式、十六进制HEX格式等
  • 简单来说就是便于机器识别的高低电平组合,每个单片机里都有状态分析电路能分析每个机器码的含义从而驱动单片机运行
  • 机器码的优点是一般存储较小,便于单片机识别,缺点也很明显就是人无法读懂和直接进行功能修改

        1.2 主频

        1.3高速缓存cache

  • 速缓冲存储器是存在于主存与CPU之间的一级存储器
  • 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度
  • 在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器
  • 它和主存储器一起构成一级的存储器

        1.4 架构

        冯诺依曼架构核心是存储程序,顺序执行

  •          把需要的程序和数据送至计算机中
  •         必须具有长期记忆程序、数据、中间结果及最终运算结果的能力
  •         能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力;
  •         能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作;
  •         能够按照要求将处理结果输出给用户

        哈佛结构:冯诺依曼结构是程序存储区和数据存储器都是可以放到内存中,统一编码的,而哈弗结构是分开编址的。MICU (单片机)几于都是用哈佛结构,些如广泛使用的51单片机、典型的STM32单片机 (核心是ARM Cortex-M系列的)都是哈佛结构。

        1.5 主流CPU核:

                ARM,MIPS,PowerPC,inte(x86)

        1.6 指令集,多核集成,数据运算,功耗

二. SOC芯片(片上系统)

        System on Chip的缩写,称为系统级芯片,也称片上系统,意指它是一个产品
是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。

三. ARM微处理器体系

 1.ARM处理器在芯片上的应用

  • 高性能方向
  • 实时方向
  • 低功耗、低成本的微控制器方向

  2.ARM处理器的内核

        RISC结构特性:
        RISC (Reduced Instruction Set Computer) 是精简指令集处理器,RISC把着眼点放在如何使计算机的结构更加简单和如何使计算机的处理速度更加快速上。RISC选取了使用频率高的简单指令,抛弃复杂指令,固定指令长度,指令多为单周期指令,在功耗、体积、价格等方面有很大优势,多用于嵌入式领域。                                                                                      ——ARM MIPS
        CISC是复杂指令集处理器,侧重于硬件执行指令的功能性,CISC指令及处理器的硬件结构复杂。CISC指令复杂,指令长度与周期不固定,在处理能力上有优势                    ——INTEL AMD

3.ARM工作模式

用户模式 (USR: User)

  • 用户模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限去操作其它硬件资源
  • 只能执行处理自己的数据,也不能切换到其它模式下,要想访问硬件资源或切换到其它模式只能通过软中断或产生异常。

系统模式(SYS: System)

  • 系统模式是特权模式,不受用户模式的限制。
  • 用户模式和系统模式共用一套寄存器。
  • 操作系统在该模式下可以方便的访问用户模式的寄存器,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。

中止模式(ABT:Abort)

  • 中止模式用于支持虚拟内存或存储器保护。
  • 当用户程序访向非法地址,没有权限读取的内存地址时,会进入该模式。

  • linux下编程时经常出现的segment fault通常都是在该模式下抛出返回的。

未定义模式 (UDF: Undifined)

  • 未定义模式用于支持硬件协处理器的软件仿真
  • CPU在指令的译码阶段不能识别该指令操作时会进入未定义模式。

快速中断模式 (FIO:Fast Interrupt Reguest)

  • 快速中断模式是相对一般中断模式而言的。
  • 它是用来处理对时间要求比较紧急的中断请求主要用于高速数据传输及通道处理中。

一般中断模式 (IRO:Interrupt Request)

  • 一般中断模式也叫普通中断模式。
  • 用于处理一般的中断请求,通常在硬件产生中断信号之后自动进入该模式,该模式为特权模式
  • 可以自由访问系统硬件资源

管理模式(SVC:Supervisor)

管理模式是CPU上电后默认模式,因此在该模式下主要用来做系统的初始化,软中断处理也在该模式下。当用户模式下的用户程序请求使用硬件资源时,通过软件中断进入该模式。
说明:系统复位或开机、软中断时进入到SVC模式下

安全监管模式(MON: Monitor)

  • 是为了安全而扩展出的用于执行安全监控代码的模式,也是一种特权模式
  • TrustZone在概念上将SoC的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界,所有需要保密的操作在安Cortex-A特有模式全世界执行(如指纹识别、密码处理、数据加其余操作在非安全世界执行(如用户操作系统、各种应用程序等),安全世界和非安全世身Mode的模式进行转换。

注意:

  • ARM系列有7个基本工作模式,Cortex-A系列有8种基本工作模式
  • 用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式 (Privileged Modes)
  • 其中除去用户模式和系统模式以外的5种又称为异常模式 (ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

四.寄存器资源

1.寄存器

2.总结

所有模式都共享的寄存器

  • R0-R7
  • R15
  • CPSR

除了FIQ模式其他模式共享

  • R8-R12
  • FIQ(R8-R12)

5种异常模式私有的寄存器

  • R13-R14
  • SPSR
  • USR/SYS(R13-R14) --非异常模式

MON模式私有的寄存器

  • R13-R14
  • SPSR

3.用途

R0-R10 存放用户数据

R11  fp:framepointer  用来记录一个栈空间的开始地址
R12  ip:The Intra-Procedure-Call scratch register 一 用来临时存储sp

R13  sp:stack pointer 栈指针寄存器。每一种模式有自己的 r13,所以允许每一种异常都有自己的堆栈指针

R14  lr: link register  在发生跳转的时候,用来保存PC寄存器的值。每一种模式有自己的 r14。

R15  pc;program counter

  • 用来存放CPU需要执行的指令所在的内存地址
  • 通常用作程序计数器
  • 在程序开始执行前,将程序指令序列的起始地址,即程序的第一条指令所在的内存单元地址送入PC,CPU 按照 PC的指示从内存读取第一条指令。
  • 当执行指令时,CPU自动地修改PC 的内容,即每执行一条指令PC增加一个量,使 PC总是指向正在取指的指令地址

CPSR    Current Program Status Register   用来记录当前CPU状态

SPSR Saved Program Status Register

  • 异常产生的时候,用来保存CPSR的值
  • 特权模式下,私有的 SPSR (Saved Program StatusRegister)-当一个异常发生时保存当前的CPSR 值。结合连接奇存器可使处理器返回先前的状态(异常产生会去到其他模式去执行,执行完成在返回以前 的状态系统模式和用户模式没有 -- 因为其他模式都是异常模式)
  • 注意共享的寄存器要注意保存

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值