嵌入式系统原理与应用技术

文章目录

  • 前言
  • 概述
    • 组成
    • 嵌入式微处理器分类
  • ARM体系结构
    • ARM9嵌入式微处理器特点
    • ARM工作模式
    • ARM9存储器组织机构
    • ARM9异常
  • 嵌入式复习
  • 总结


前言

本博客仅做学习笔记,如有侵权,联系后即刻更改

科普:


概述

定义

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,可满足应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统

特征

  1. 面对特定应用
  2. 量体裁衣
  3. 实时操作系统支持
  4. 与具体应用有机结合
  5. 固化在存储器
  6. 专门开发工具支持

组成

嵌入式微处理器

  1. 冯诺依曼体系结构(CISC)
    cpu和存储器构成,程序和数据共用一个存储空间
  2. 哈佛结构(RISC)
    ARM9之后使用哈佛结构
  3. 精简指令集计算机

外围硬件设备

  • 存储器
    ROM、SRAM、DRAM、Flash
  • 接口
    并行口、RS-232串口、TrDA红外接口、USB、键盘、显示屏

嵌入式微处理器分类

分类

  1. 嵌入式微处理器(EMPU)
  2. 嵌入式微控制器(MCU)
  3. 嵌入式数字信号处理器(DSP)
  4. 嵌入式片上系统(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工作模式

  1. 用户模式(user)
  2. 快速中断模式(fiq)
  3. 外部中断模式(irq)
  4. 管理模式(svc)
  5. 指令/数据访问终止模式(abt)
  6. 系统模式(sys)
  7. 未定义指令终止模式(und)

非用户模式(特权模式):除了用户模式的其他模式

  • 异常模式:除了用户模式和系统模式
  • ARM处理核在上电或复位并开始执行程序代码时,应该处于ARM状态
  • 当操作数寄存器的转态位(位0)为1,可执行BX指令
    使处理器从ARM状态切换到Thumb状态,反之转换也成立

ARM9存储器组织机构

  1. 大/小端存储

大端:高字节存储在低字节地址

  • 32位的程序计数器PC总是指向取指的指令
    正在执行的指令作为第一指令的参考点,PC指向第3条指令
  1. I/O端口的访问方式
  • 端口地址和存储器统一编址(存储器映射)
  • 端口地址和存储器分开编址(I/O映射方式、独立编址)
  1. 内部寄存器

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
  • 结束异常处理返回时反向复原

进入异常

  1. 将下一条指令的地址保存在相应的LR(R14)寄存器中
    ARM下保存的是下一条指令(PC+4/8:与异常的类型有关)
    Thumb下保存的是当前PC的偏移量

  2. 将CPSR复制到相应的SPSR中

  3. CPSR模式位M[4:0]的值设置成对应的异常模式值

  4. 程序计数器PC从相关的异常变量取下一条指令

  • 可设置中断禁止位来阻止其他无法处理的一场嵌套
    若异常发生时,处理器处于Thumb状态,当中断向量地址加载程序计数器PC,自动切换进入ARM状态

退出异常

  1. 将LR(R14)寄存器的值减去相应的偏移量,送入程序计数器PC中
  2. 将SPSR复制回CPSR中
  3. 清除中断禁止位标志

异常返回过程

SWI软件中断和未定义指令异常中断程序

  • 该类型中断是由当前执行的指令自身产生
  • 中断时,PC未更新,它指向当前执行指令后面的第二条指令
  • 返回操作:MOVS PC,LR

指令预取中止异常中断处理程序

  • 该中断是由自身产生的
  • 中断时,PC未更新,它指向当前执行指令后面的第二条指令
  • 返回操作:SUBS PC,LR,4

数据访问中止异常中断处理程序

  • 该中断是由自身产生的
  • 中断时,PC已更新,它指向当前执行指令后面的第3条指令
  • 返回操作:SUBS PC,LR,#8

IRQ和FIQ异常中断处理程序

  • 中断时,PC已更新,它指向当前执行指令后面的第3条指令
  • 返回操作:SUBS PC,LR,#4

嵌入式复习

  1. 一般而言,嵌入式系统的构架可以分为 4 个部分

处理器、(存储器)、输入/输出和软件,一般软件亦分为(操作系统)和应用软件两个主要部分

  1. 根据嵌入式系统使用的微处理器

可以将嵌入式系统分为(嵌入式微控制器),嵌入式 DSP,(嵌入式微处理器)以及片上系统

  1. 操作系统是联接硬件与应用程序的系统程序

其基本功能有进程管理、(进程间通信)、(内存管理)、I/O 资源管理

  1. 嵌入式系统的定义

以应用为中心、以计算机技术为基础、软硬件可裁减、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统

  1. 写出 uc/os 操作系统在某一任务正在执行时发生中断的处理过程。

中断现有程序->保护现场->执行中断服务程序->判断当前程序优先级或是否允许任务调度—>(否)执行原来程序/(是)执行更高优先级任务->返回

  1. 从底层硬件到上层应用软件,试分析嵌入式计算系统的组成主要分为哪几个部分,并写出各部分所完成的功能

(1)硬件层
(2)BSP(板级支持包 Board Support Package):将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。
(3)RTOS(实时操作系统 Real Time Operating System)
(4)文件系统,GUI(图形用户界面 Graphical User Interface)
(5)应用软件

  1. 专业名词解释

(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 调度

总结

小小励志

有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》

你可能感兴趣的:(大三上课程,系统架构)