arm体系结构

1.可编程器件的编程原理 
(1)一个器件可以被编程就是通过他的寄存器来完成的。也就是说各种外设可以被软件控制的唯一接口就是寄存器。 
(2)CPU的工作分三步 
第一步:读取。从flash读取程序代码(二进制数) 
第二步:解码。把二进制数解码成CPU认识的汇编指令。 
第三步:执行。执行汇编指令。

这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM公司)定义的,本质上是一串由1和0组成的数字。这就是CPU的汇编指令集。我们学习CPU就是学习它的汇编指令。

从我们写代码到CPU执行该代码到底发生了什么? 
(1)写好的代码(如.c程序)被编译器解释成为.s的汇编源代码 
(2).s的汇编源代码经过汇编器解释称Elf格式二进制可执行程序 
(3)ELf格式二进制可执行程序经过Objcopy工具成为Bin格式烧录文件 
(4)Bin格式烧录文件经过CPU和flash之间的总线读取到CPU中。 
(5)CPU通过CPU内部指令流水线读取代码并解码 
(6)CPU执行解码后的指令。

1)这只是其中最主要的几部分。大体上就是这样。Elf格式的文件是Linux下的可执行程序,类似于windows的.exe文件。在linux系统中,文件的后缀名是没有意义的,关键看文件格式。 
2)从Elf格式到Bin格式,并没有发生什么特别大的变化,只是对代码进行整理方便烧录。

2.指令集对CPU的意义 
一个CPU可以进行的加减乘除这些运算,分别对应一个汇编指令。我们写相应的指令,CPU就进行相应的动作。然而CPU只认识二进制数,也就是说,CPU本身是不认识汇编指令的,汇编是方便程序员理解,每一个汇编指令对应一个特定的二进制数,对应一个CPU的命令。学习一个CPU就是学习它的汇编指令(CPU的指令)。

3.RISC和CISC 
CISC:cmplex instruction set computer 复杂的指令集CPU(intel使用的是CISC)

CISC设计理念是用最少的指令来完成任务,譬如计算乘法只需要一条指令完成任务。CISC的cpu设计复杂、工艺复杂,好处是编译器好设计。Intel至今使用CISC设计。

RISC:Readuced instruction-setComputer 精简指令集(ARM使用的RISC)

RISC的设计理念就是我们只设计最基本的指令,至于要完成更高级的功能或指令,则由软件来编写。

4.统一编址独立编址哈佛结构_冯诺依曼结构

4.1.什么是IO?什么是内存?

IO:inout、output:标准输入输出,是CPU和其他外部设备串口,LCD等之间通信的道路。一般的,IO就是指CPU的各种内部或外部设备。

内存就是一块可以存储数据的区域,CPU和内存之间通过三大总线相连接,进行数据交流。内存和CPU是直接连接方式。CPU和内存之间的总线限制了可访问内存的大小。这样一来,内存资源有限,可扩展性比较差。

IO的访问方式: 
IO指的是CPU与各个外设的连接接口。

在ARM中CPU把寄存器当作内存地址一样来访问各个外设。 
在intel中外设在CPU中没有物理地址,通过汇编指令操作该外设。比如串口。如果要添加外设就要条件对应的汇编指令。典型的CISC设计理念。

4.2.冯诺依曼结构与哈佛结构

冯诺依曼结构:代码和数据存储在一起 
哈佛结构:代码和数据分开存放

5.软件编程控制硬件的关键-寄存器 
(1)寄存器属于CPu外设的硬件组成部分 
(2)cpu可以像访问内存一样去访问寄存器 
(3)寄存器是cpu的制定者制定的,目的是可编程相关外设 
(4)编程操作寄存器类似于操作内存 
(5)寄存器中每个位的作用都不一样,按照位来使用。 
(6)单个寄存器的位宽和cpu位宽一样,和cpu数据总线位数一样大。

寄存器分为2种:通用寄存器和特殊功能寄存器(SFR) 
(1)通用寄存器:该寄存器没有特定的功能,谁都可以使用。 
(2)SFR(special function register,特殊功能寄存器)(和外设绑定)不在cpu中而在外设中。特殊功能寄存器就是说,特殊功能是制定好的,有着特定的功能,为了完成一个外设的功能。

总结:arm是统一编址的,SoC中的各种外设通过各自的SFR编程访问,这些SFR的访问和访问普通内存一样,这叫IO与内存统一编址。

时间: 2024-08-24 09:21:15

arm体系结构的相关文章

ARM体系结构调试系统

预计会有几篇较大篇幅的文章大体描述下ARM体系结构调试系统方面的软硬件接口设计. 简述 经历过软件开发基本上都知道调试的重要性,能一次写好,并且没有BUG的软件毕竟少之又少. ARM体系结构从ARMv4开始硬件支持各种调试特性,随着系统的复杂度提升,到现今的ARMv7,甚至ARMv8,ARM从硬件层面也提供了更多的调试方式. 本文从大方向上概述ARM调试系统的组成,包括其中的debug,trace,profiling等方面 ,又着重在调试系统的软硬件接口配合. 调试分类 从大方向上看,我们基本可

ARM体系结构与编程-5

GET通常用于包含定义常量的源文件. 例如:GET 2440addr.inc 用AREA定义一个段,ENTRY用于指定程序的入口点,END用于告诉汇编器源文件已经结束. 例如: AREA init, CODE, READONLY ENTRY ...... END EQU用于定义常量,提醒:在每条ARM指令前必须有空格,但是用EQU定义常量时,必须顶格写,否则编译器报错. LTORG用于声明一个文字池,所谓文字池就是一个数据缓存区. ALIGN伪操作通过调整地址指针,使得当前地址满足一定的对齐方式

【嵌入式Linux+ARM】ARM体系结构与编程(ARM概述)

ARM体系结构与编程 本文章记录一些看<ARM体系结构与编程>这一本书的记录: 个人觉得,学习ARM体系时,不需要死记硬背,只要把某些关键的大致记住,比如ARM寄存器(通用寄存器.PC.LR.SP.CPSR.SPSR).ARM中断处理体系.常用的ARM汇编指令等. 本文基本都是从书上截图,都是一些关键的知识,需要我们时常去复习的. 一.ARM概述 ARM处理器的7种工作模式: ARM处理器寄存器: ARM中PC(R15)寄存器: ARM中CPSR寄存器: ARM异常处理模式--响应过程和返回过

ARM体系结构与编程-4

ARM异常中断处理: ARM体系异常中断种类:按中断的处理优先级从高到低依次为:复位.数据访问中止.快速中断请求.外部中断请求.预取指中止.未定义指令.软件中断. ARM体系中的异常中断向量表: 0x0 复位 0x4 未定义指令 0x8 软件中断(SWI) 0x0c 预取指中止 0x10 数据访问中止 0x14 保留 0x18 外部中断请求(IRQ) 0x1c 快速中断请求(FIQ) 各异常中断对应着一定的处理器模式,不同处理器模式下有各自的物理寄存器.如果异常中断处理程序中使用它自己的物理寄存

ARM体系结构与编程

ARM处理器的7中运行模式:usr.fiq.irq.svc.abt.und.sys. ARM处理器共37个寄存器:31个通用寄存器(未备份寄存器R0-R7,在所有模式下指的都是同一个物理寄存器:备份寄存器R8-R12,每个寄存器对应两个不同的物理寄存器.对于R13[sp]和R14[lr]来说,每个寄存器对应6个不同的寄存器:程序计数器R15[pc]),6个状态寄存器(当前程序状态寄存器[cpsr]:5个备份状态寄存器[spsr]). ARM体系的异常中断:复位.未定义指令.软件中断.指令预取中止

快速上手ARM体系结构--学习3 异常处理机制

以下所有截图都是来自如下链接:(侵删) 快速上手ARM体系结构 - 网易云课堂 <end> 原文地址:https://www.cnblogs.com/LearnFromNow/p/9554590.html

ARM体系结构和汇编指令

第一节 可编程器件的编程原理 1. 可编程器件的特点 1 . CPU在固定频率的时钟控制下节奏运行 2 . CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行 3 . 这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM公司)定义的,本质上是一串由1和0组成的数字.这就是CPU的汇编指令集 2. 从源代码到cpu执行过程 第二节 指令集对cpu的意义 1. 汇编语言与C等高级语言的差异 汇编无移植性,c语言有一定可移植性,jave等更高级的语言移

嵌入式开发学习(1)&lt;ARM体系结构&gt;

SoC : 在cpu 里内嵌了很多外设,现在所说的cpu 实际上都是SoC. 32位cpu指的是数据总线是32位的. 32位的地址总线寻址范围是4G.2的32次方. CISC complex instruction set computer 复杂指令集cpu:指令多,追寻一条指令完成一个操作的理念.Cpu设计复杂,但编译器简单,使用简单,功耗高,出现早,inter还在沿用.300多条指令. RISC reduced instruction set computer 精简指令集cpu:设计理念是提

ARM体系结构常用术语解释

那么A系列的处理器,会有一个相关的术语,这些术语在这里会给大家做一个介绍,大概这些术语要给大家说一下,首先是流水线,流水线就是底层架构的术语. 流水线: 流水线其实是底层架构涉及到的术语,就比如说中间是个CPU,然后外面一个转盘围绕着它在转,它们在多任务分时的处理,那么在处理的过程中,CPU会得到指令,并且处理一些指令,那么它的过程,应该先从某个地方去取指令(F),取完指令之后要译码然后在执行,也就是基于FDE,那么这个就是我们在某一个时刻它应该做的三步操作,就这三步操作我们才能完成CPU正在进

ARM体系结构(1)

嵌入式系统的构成 软件: 应用程序 第三方库(Qt,libc,myclient) 操作系统: 引导程序 内核+驱动 文件系统 硬件: 底板: 外置芯片 网卡(DM9000) 声卡 ADC 电源 USB 接口: 串口 SD LCD+触摸屏 摄像头 按键 核心板: Soc(CPU+uart+timer) DDR Nand ARM的体系结构 一.ARM的工作模式 用户模式 系统模式 快速中断模式 外部中断模式 特权模式 快速模式 未定义模式 除用户模式外,其它被称为特权模式 用户模式和系统模式外,其它