嵌入式系统——基础知识篇2

时间:2021-03-02 20:04:40

嵌入式微处理器
    微处理器主要由3大部分构成:
    1、控制单元:负责取指、译码和取数等基本操作,并发送主要的控制指令,其中包括两个重要的寄存器:PC 和 IR;
    2、算术逻辑单元:分为两部分,算术运算单元和逻辑运算单元;
    3、寄存器:存储暂时性的数据。

微处理器体系结构
    1、冯诺依曼(Von Neumann)与哈佛(Harvard)
    在冯诺依曼体系结构的计算机中,程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同位置。采用统一的地址和数据总线,程序指令和数据的宽度相同。冯诺依曼体系结构的计算机由CPU和存储器构成,PC是CPU内部指示指令和数据存储位置的寄存器,而不决定程序流程。
    哈佛体系结构是一种将程序指令存储和数据存储分开的体系结构。程序指令和数据分开存储,独立编址,独立访问,4套总线。分离的程序总线和数据总线可允许在一个机器周内同时获取指令字和操作数,数据吞吐率提高一倍。

    2、CISC 与 RISC
    CISC通常包括一个复杂的数据通路和一个微程序控制器。微程序控制器由微程序存储器、微程序计数器和地址选择逻辑构成。微程序存储器中的每个字都表示一个控制字,并且包含了一个时钟周期内所有数据通路控制信号的值。每个处理器指令都由一系列控制字组成。IBM801,世界上第一台采用RISC思想的计算机。  

    RISC处理器的数据通路通常由一个大的寄存器文件和一个ALU组成。大的寄存器文件包含了程序计算中所有的操作数和结果。Load指令将数据放到Reg文件中,通过Store指令将其放回内存。由于指令数目的减少,RISC编译器将需要一系列的RISC指令完成复杂的操作,给编译器带来了灵活的优化性能。
    CISC 和 RISC比较:指令系统、执行时间、编码长度、寻址方式、操作、编译。
    实现RISC思想的主要方法有:
    (1)减少指令种类;
    (2)Load/Store结构;
    (3)采用指令流水线技术;
    (4)在处理器中配置更多的通用Reg;

    3、信息存储的字节顺序
     小端存储法:低字节数据存放在内存低地址处;
     大端存储法:低字节数据存放在内存高地址处;
     不同存储模式的微处理器间通信时要遵循已建立好的关于字节顺序的规则。

嵌入式软件体系结构
    1、无OS情形
   (1)循环轮转方式:把系统的功能分成若干不同的任务,然后把它们包含在一个永不结束的循环语句中,按照顺序逐一执行,之后再循环。
        缺点:过于简单,无法处理异步事件,缺乏并发处理能力。
   (2)前后台系统:在循环轮转的基础上,增加了中断处理功能;
        foreground(前台程序:事件处理级程序):中断服务程序ISR,处理异步事件;
        background(后台程序:任务级程序):系统管理调度程序,无限的循环,负责整个嵌入式系统软硬件资源的分配、管理及任务调度。

    2、有OS情形
   (1)提高了系统可靠性;
   (2)提高了系统开发效率,降低了开发成本,缩短了开发周期;
   (3)有利于系统的扩展和移植;

    对不同的嵌入式操作系统,所包含的组件可能各不相同。一般来说,所有的OS都会有一个内核Kernel,内核指OS中的一个组件,包含了OS的主要功能,即OS的各种特性及其相互间的依赖关系。(任务管理、存储管理、文件管理、设备管理、网络管理)

嵌入式操作系统分类
    1、按“系统类型”分类:商用系统、专业系统、开源系统;
    2、按“响应时间”分类:RTOS、非RTOS;
    3、按“软件结构”分类:单体结构、分层结构、微内核结构;
       差别体现在两方面:(1)内核的设计,即内核中包含了哪些功能组件;(2)系统中集成了哪些其他的系统软件。
    (1)单体结构(eg:linux):在单体结构的OS中,中间件和设备驱动程序通常集成在系统内核中,整个系统通常只有一个可执行文件,包含了所有的功能组件。整个OS由一组功能模块构成,这些功能模块间可以相互调用。
         优点:性能较好,系统各模块间可以相互调用,通信开销小;
         缺点:OS体积庞大,高度集成,在系统裁剪、修改和调试等方面较为困难。
    (2)分层结构:在分层结构中,一个OS被划分为若干个层次,各层间的调用关系是单向的。分层结构的OS也只有一个大的可执行文件,包含设备驱动程序和中间件。要求在每个层次上都要提供一组API接口函数。
    (3)微内核结构(eg:VxWorks):在内核中,把OS的大部分功能都剥离出去,只保留最核心的功能单元。内核非常小,大部分的系统功能都位于内核之外。在微内核OS中,新的功能组件可以被动态地添加进来,具有易于扩充、调试方便和易于移植等特点。核内组件与核外组件间的通信是消息传递,而不是直接的函数调用。

嵌入式操作系统重要概念  
    1、先占式内核:当前最高优先级任务一旦就绪,就立即获得CPU控制权,且控制权可知;
    2、调度策略分析:(强实时、弱实时)
    3、任务优先级分配:(静态优先级、动态优先级)
    4、时间的可确定性: 强RTOS的函数调用与服务的执行时间具有可确定性。系统服务的执行时间不依赖于应用程序任务的多少。系统完成某个确定任务的时间可预测。
    5、任务切换时间:(取决于CPU有多少Reg要入栈)
    6、中断响应时间:在先占式内核中,中断响应时间 = 关中断最长时间 + 保护CPU内部寄存器时间 + 进入中段服务函数的执行时间 + 开始执行ISR第一条指令的时间;
    7、优先级反转:(解决方法:优先级继承、优先权极限)
    8、任务执行时间的抖动
    9、任务划分:(原则:I/O原则、优先级原则、大量原则、功能耦合、偶然耦合、频率组合)