IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ARM期末部分知识点 -> 正文阅读

[嵌入式]ARM期末部分知识点

什么是嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统
嵌入式CPU分类
通用型嵌入式微处理器
微控制器
可扩展开发平台
嵌入式DSP处理器EDSP
可编程片上系统SOC
嵌入式单核/多核处理器
ARM处理器的基本组成
嵌入式硬件系统 & 嵌入式软件系统
嵌入式系统的硬件组成
1) CPU
2) 外围电路:I/O接口控制器电路、时钟电路、各式总线 等
3) 外部设备:RAM、ROM、Flash闪存、键盘、LED、液晶屏、触摸屏、手写笔 等
嵌入式系统的软件组成:含操作系统的嵌入式软件(LOSES) & 不含操作系统的嵌入式软件(NOSES)
ARM数据对齐
现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为32位系统)如果存放在偶地址开始的地方,那么一个读周期就可以读出这32bit,而如果存放在奇地址开始的地方,就需要2个读周期,并对两次读出的结果的高低字节进行拼凑才能得到该32bit数据。显然在读取效率上下降很多。

ARM大端序小端序
ARM支持两种端序,大端序和小端序。端序选择由硬件引脚接线决定,默认设置为小端序(字节最低位存储在内存最低位)
七种处理器模式
用户模式 USR 正常程序执行模式
快中断模式 FIQ 支持高速数据传输或通道处理

中断模式 IRQ 用于通道中断处理
管理模式 SVC 操作系统保护模式
中止模式 ABT 实现虚拟存储器和/或存储器保护
未定义模式 UND 支持硬件协处理器的软件仿真
系统模式 SYS 运行特权级的操作系统任务

特权模式:除用户模式以外,其余6种模式称之为特权模式(Privileged Modes),当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的

异常模式:除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes), 常用于处理中断或异常,以及需要访问受保护的系统资源等情况

转变方式:用指令将特定的位序列写入到CPSR的M[4:0]字段(最低5位)
ARM7两种工作状态
ARM 状态是 32 位指令,Thumb 状态是 16 位指令。
进入 Thumb 状态:执行 BX 指令,当操作数寄存器最低位为 1 时,可以使微处理器从 ARM
状态切换到 Thumb 状态(处理器工作在 Thumb 状态,如果发生异常并进入异常处理子程
序,则异常处理完毕返回时,自动从 ARM 状态切换到 Thumb 状态)。
进入 ARM 状态:执行 BX 指令,当操作数寄存器最低位为 0 时,可以使微处理器从 Thumb
状态切换到 ARM 状态(处理器工作在 Thumb 状态,如果发生异常并进入异常处理子程序,
则进入时处理器自动从 Thumb 状态切换到 ARM 状态)。
ARM寄存器的组织
共有37个32位寄存器,其中31个通用寄存器,6个状态寄存器,编程时按照模式不同采用不同分组的寄存器组 p60
R0-R3:a1-a4
R4-R11:v1-v8
R9-R11:SB,SL,FP
R12-R15:IP(写入寄存器),SP(栈指针),LR(链接指针),PC
ARM7TDMI含义
T:支持Thumb指令
D:可线上调试(JTAG)
M:8位乘法器
I:Embedded ICE 逻辑单元,实现断点观测,变量观测
流水线
三级流水线:取值,译码,执行(PC=当前+8,Thumb+4)
五级流水线:取值,译码,执行,数据缓冲,写回
ARM寻址方式
寄存器寻址,立即寻址,移位寄存器寻址,寄存器间接寻址,变址寻址,多寄存器寻址,堆栈寻址,快拷贝寻址,相对寻址
在这里插入图片描述

LSL:逻辑左移,LSR:逻辑右移,ASR:算术右移,ROR:循环右移,RRX:扩展循环右移
ARM体系结构
低档处理器多采用哈佛结构,高档处理器多采用冯·诺伊曼结构。
哈佛结构
即数据存储空间和程序存储空间分离
较大的程序存储器(用于固化已调试好的控制程序)
较小的数据存储器(用于存放少量的随机数据——高速)

异常与中断
5个异常类型:复位,未定义指令,软件中断SWI,指令预取异常,数据访问中止
2个中断异常:外部中断请求,快速中断请求
响应过程:

  1. 将CPSR中的内容保存到将要执行的异常中断模式的SPSR中
  2. 设置当前程序状态寄存器CPSR中的模式字段位,改变处理器模式
  3. 将异常发生时程序的下一条指令地址保存到新的异常模式的R14(未定义指令,软件中断SWI,指令预取异常LR+4、数据访问中止,外部中断请求,快速中断请求LR+8)

返回过程:

  1. 所有修改过的用户寄存器必须从处理程序的保护栈中恢复
  2. 恢复被中断程序在被终端时刻的CPSR寄存器,即将SPSR_mode恢复到CPSR中
  3. 返回到发生异常中断的指令位置或异常中断的下一条指令,即LR_mode经过减法计算复制到PC中
  4. 清除CPSR的终端禁止标志位(I,T)

指令

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:37:47  更:2021-07-13 17:38:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 18:05:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码