前言
本博客仅做学习笔记,如有侵权,联系后即刻更改
科普:
概述
定义
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,可满足应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统
特征
- 面对特定应用
- 量体裁衣
- 实时操作系统支持
- 与具体应用有机结合
- 固化在存储器
- 专门开发工具支持
组成
嵌入式微处理器
- 冯诺依曼体系结构(CISC)
cpu和存储器构成,程序和数据共用一个存储空间- 哈佛结构(RISC)
ARM9之后使用哈佛结构- 精简指令集计算机
外围硬件设备
- 存储器
ROM、SRAM、DRAM、Flash- 接口
并行口、RS-232串口、TrDA红外接口、USB、键盘、显示屏
嵌入式微处理器分类
分类
- 嵌入式微处理器(EMPU)
- 嵌入式微控制器(MCU)
- 嵌入式数字信号处理器(DSP)
- 嵌入式片上系统(SoC)
ARM
公司名字、一类微处理器的通称、一种技术的名字
- 特点
只有加载(load)/存储(store)可以访问寄存器,提高了指令的执行效率
支持Thumb(16位)/ARM(32位)双指令集,兼容8/16位器件- 型号
ARM7:三级流水(取指、译码、执行)
ARM9:五级流水线(取指、译码、执行、访存、回写)
ARM体系结构
ARM9嵌入式微处理器特点
ARM9:5级流水
取指译码执行访存回写
- 访存:若未实际访问内存,则ALU
简单缓冲一个时钟周期
,使所有指令具有相同的流水线流程
Thumb指令集概况
16位、半字节对齐
的Thumble指令,是对32位ARM指令集的扩充,实现高代码密度
- 使32位ARM指令集的子集,压缩了常用的ARM指令
- 执行阶段,16位的指令会被重新解码,
透明的实时解压缩位32位的ARM指令
,完成对等操作- 节省存储空间和硬件成本
ARM工作模式
- 用户模式(user)
- 快速中断模式(fiq)
- 外部中断模式(irq)
- 管理模式(svc)
- 指令/数据访问终止模式(abt)
- 系统模式(sys)
- 未定义指令终止模式(und)
非用户模式(特权模式):除了用户模式的其他模式
- 异常模式:除了用户模式和系统模式
- ARM处理核在上电或复位并开始执行程序代码时,应该处于ARM状态
- 当操作数寄存器的转态位(位0)为1,可执行BX指令
使处理器从ARM状态切换到Thumb状态,反之转换也成立
ARM9存储器组织机构
- 大/小端存储
大端:高字节存储在低字节地址
- 32位的程序计数器PC总是指向取指的指令
正在执行的指令作为第一指令的参考点,PC指向第3条指令
- I/O端口的访问方式
- 端口地址和存储器统一编址(存储器映射)
- 端口地址和存储器分开编址(I/O映射方式、独立编址)
- 内部寄存器
37个32位寄存器:通用寄存器、状态寄存器
通用寄存器
- 未分组寄存器:R0-7
所有工作模式下,物理上是同一个寄存器- 分组寄存器:R8-14
访问的物理寄存器与处理器当前的工作模式有关
R13:堆栈指针(SP),习惯用法,也可使用其他寄存器做堆栈指针
R14:用作子程序链接寄存器,工作模式下保存子程序的返回地址,异常发生时R14被设置为异常返回地址- 程序计数器:R15
程序计数器(PC):ARM下[31 : 2]保存PC的值,Thumb下[31 : 1]保存PC的值
读R15的结果,指令地址ARM+8或Thumb+4
- 程序状态寄存器
6个:一个当前程序状态寄存器CPSR和5个备份的程序状态寄存器(SPSR)
条件码标志(31-28):N、Z、C、V、Q
- N
运算结果为负数,置1- Z
运算结果为0,置1- C
加法时,运算结果产生了进位(无符号数溢出),置1
减法时,运算结果产生了借位(无符号数溢出),置1
包含移位操作的非加减运算指令,C为移出值的最后一位- V
加减法时,带符号位溢出,置1- Q
ARMv5版本以上的E系列处理器中,指示增强的DSP运算指令是否溢出控制位(7-0):I、F、T、M4-0
- I、F:中断禁止位
- T:标识/设置处理器的工作状态
=1为Thumb状态- M4-0:工作模式位
其中寄存器工作模式按顺序[10000 - 11111]:用户、FIQ、IRQ、管理、中止、未定义、系统保留位
- 用作ARM版本扩展
- 5种异常工作状态都有对应的专用SPSR寄存器
发生异常时,SPSR用于保存CPSR的当前值
Thumb寄存器
ARM状态下寄存器集的子集
- 程序可以直接访问寄存器R0-7、程序计数器PC、堆栈指针SP、连接寄存器LR和CPSR
每种特权模式下都有对应的SP、LR和SPSR
ARM9异常
定义
处理器由于内部或外部原因,停止执行当前的程序,转而处理指定的事件,处理完毕后返回原来的程序继续执行
类型及向量地址
复位、未指定指令、软件中断(SWI)、指令预取中止(取指令存储器中止)、数据中止、IRQ(中断)、FIQ(快速中断)
- 进入异常处理程序前
将该异常模式下的R14(LR)保存断点处的PC、SPSR保存断点处的CPSR- 结束异常处理返回时反向复原
进入异常
将下一条指令的地址保存在相应的LR(R14)寄存器中
ARM下保存的是下一条指令(PC+4/8:与异常的类型有关)
Thumb下保存的是当前PC的偏移量将CPSR复制到相应的SPSR中
CPSR模式位M[4:0]的值设置成对应的异常模式值
程序计数器PC从相关的异常变量取下一条指令
- 可设置中断禁止位来阻止其他无法处理的一场嵌套
若异常发生时,处理器处于Thumb状态,当中断向量地址加载程序计数器PC,自动切换进入ARM状态
退出异常
- 将LR(R14)寄存器的值减去相应的偏移量,送入程序计数器PC中
- 将SPSR复制回CPSR中
- 清除中断禁止位标志
异常返回过程
SWI软件中断和未定义指令异常中断程序
- 该类型中断是由当前执行的指令自身产生
- 中断时,PC未更新,它指向当前执行指令后面的第二条指令
- 返回操作:MOVS PC,LR
指令预取中止异常中断处理程序
- 该中断是由自身产生的
- 中断时,PC未更新,它指向当前执行指令后面的第二条指令
- 返回操作:SUBS PC,LR,4
数据访问中止异常中断处理程序
- 该中断是由自身产生的
- 中断时,PC已更新,它指向当前执行指令后面的第3条指令
- 返回操作:SUBS PC,LR,#8
IRQ和FIQ异常中断处理程序
- 中断时,PC已更新,它指向当前执行指令后面的第3条指令
- 返回操作:SUBS PC,LR,#4
嵌入式复习
- 一般而言,嵌入式系统的构架可以分为 4 个部分
处理器、(存储器)、输入/输出和软件,一般软件亦分为(操作系统)和应用软件两个主要部分
- 根据嵌入式系统使用的微处理器
可以将嵌入式系统分为(嵌入式微控制器),嵌入式 DSP,(嵌入式微处理器)以及片上系统
- 操作系统是联接硬件与应用程序的系统程序
其基本功能有进程管理、(进程间通信)、(内存管理)、I/O 资源管理
- 嵌入式系统的定义
以应用为中心、以计算机技术为基础、软硬件可裁减、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统
- 写出 uc/os 操作系统在某一任务正在执行时发生中断的处理过程。
中断现有程序->保护现场->执行中断服务程序->判断当前程序优先级或是否允许任务调度—>(否)执行原来程序/(是)执行更高优先级任务->返回
- 从底层硬件到上层应用软件,试分析嵌入式计算系统的组成主要分为哪几个部分,并写出各部分所完成的功能
(1)硬件层
(2)BSP(板级支持包 Board Support Package):将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。
(3)RTOS(实时操作系统 Real Time Operating System)
(4)文件系统,GUI(图形用户界面 Graphical User Interface)
(5)应用软件
- 专业名词解释
(1)RISC 精简指令集计算机(Reduce Instruct Set Computer) (2)IP 互联网
协议(Internet Protocol)
(3)ISR 中断服务程序(Interrupt Service Routine)
(4)JTAG 联合测试行动组(Joint Test Action Group);调试接口
(5)IDE 集成开发环境(integrated development environment)
(6)RTOS 实时操作系统(Real Time Operating System)
(7)CISC 复杂指令集计算机(complex instruction set computer)
(8)Kernel 内核
(9)Scheduler 调度
总结
小小励志
有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》