数据库系统

数据库的特征

实现数据共享,减少数据冗余度,保持数据的一致性、独立性、安全保密性,并发控制,故障恢复等;

数据的一致性:表示同一数据的多个副本之间没有矛盾,完全一致,并不是指数据库中数据类型的一致;

概念模式与存储模式互不影响;

用户数据按所对应的子模式使用数据库中的数据,用户对数据库的操作,实际上就是对子模式的记录进行操作;

关系模型

遵循数据库的三级体系结构,关系模式、关系子模式和存储模式。

关系模式——>数据库的概念模式,定义为关系模式的集合;

存储模式——>对数据库物理存储结构的描述;

关系子模式——>用户所用到的那部分数据的描述,是用户与数据库的接口,也称为用户对数据库的视图。

概念模式相对于存储模式是独立的,概念模式的改变不会影响存储模式,同样,存储模式的改变,也不会影响概念模式。

当为了某种需要改变存储模式时,可以同时改变两者之间的映射而保持模式和子模式不变,这种全局的逻辑数据独立于物理数据的特性,叫做物理数据独立性。

数据的一致性,是指表示同一数据的多个副本之间没有矛盾,完全一致,并不是指数据库中数据类型的一致。

操作系统

进程队列及队列管理/P、V操作

信号量和操作

信号量的实体:将S作为信号量的实体

S>0:系统中目前可用的资源数目;

S<0:系统中因请求该进程而阻塞等待的进程数目;

P操作:执行S=S-1;

S>=0:进程执行

S<0:阻塞一个进程

V操作:执行S=S+1;

S>0:阻塞一个进程

S<=0:进程执行

管理程序:

运行操作:cpu进入

操作系统的进程队列及队列管理

进程队列的元素就是进程。进程排队实际上是PCB(进程控制块)在排队。

通过PCB(进程控制块)的队列指针,若干个进程控制块组成一个链表。

操作系统的进程队列

类似于

运行队列

就绪队列

等待队列

队列管理

队列管理的操作有 四种:入列、出列、转列和队列整理。

所谓入列是将一个PCB(进程控制块)链入队列的队尾、队首,或插在中间(例如,按优先数插入队列)。

所谓出列,就是取出队首元素。

转列是将进程从一个队列转入另一个队列。

队列整理应用在使用动态优先数的系统中,系统重新计算优先数后,按照新的优先数整理那些基于优先数排队的队列。

实时与分时操作系统

任务调度方式

实时操作系统:基于优先级或时间戳等机制进行任务调度;

分时操作系统:采用时间片轮转方式进行任务切换;

系统响应时间

实时操作系统:规定的时间内完成任务响应并作出相应的决策;即为:被控制对象规定的时间内处理。

分时操作系统:依赖于时间片的大小,可能会产生较长的响应时间;一个时间片内处理来自外部的事件。

系统可靠性

实时操作系统:对于系统的可靠性和稳定性要求较高;

分时操作系统则:尽量保证运行时的稳定性。

内存管理方式

实时操作系统:采用静态内存分配的方式,即在程序运行之前就完成内存资源的分配,并进行优化管理;

分时操作系统:采用动态内存管理的方式,即根据需要动态分配内存资源。

分布式环境支持

实时操作系统:在嵌入式系统等分布式环境中运行,支持多种通信方式和协议;

分时操作系统:在单机或虚拟化环境下,并不需要太强的分布式支持。

分布式系统的性质

分布式系统中的资源为系统的所有用户所共享

分布式系统中各台计算机相互独立,其分布性对用户是透明的

分布式系统中的各台计算机没有主次之分

分布式系统中的任意两台计算机可以利用通信来交换信息

操作系统的操作级判定

物理级

执行内容主要涉及电子、电路、信号传输等方面。

操作级

指令译码、指令执行流程控制、寄存器和状态处理等方面。

向用户提供目录管理类命令、文件操作类命令(如复制、删除和修改)和文件管理类命令(如设置文件权限)等

存储级

内存管理、缓存管理、虚拟内存等方面。

编程级

将高级程序代码转化为机器语言执行。

向用户提供文件的系统调用类服务,例如创建文件、撤销文件、打开文件、关闭文件、读文件和写文件等。

计算机系统

指令操作

指令操作是指CPU对于内存中的指令进行执行的过程。

  1. 程序计数器(PC)寄存器指向内存中的下一条指令的地址。

  2. CPU从内存中读取该指令并进行解码,确定要执行的操作类型和操作数。

  3. CPU根据指令类型和操作数执行相应的操作,并更新PC指向下一条将要执行的指令地址。

  4. CPU重复上述过程,执行后续指令,直到遇到SW(Stop Working)或类似停止命令

在执行指令操作时,CPU需要读取和写入内存中的数据时的步骤

  1. 地址计算:根据操作码中给出的地址模式和操作数,计算出目标地址。

  2. 访存操作:通过地址总线和数据总线将目标地址和数据发送给内存,然后读取或写入对应地址的数据。

  3. 数据处理:对读取到的数据进行操作(例如加减乘除、逻辑运算等),得到最终结果。

控制

采用统一编址时,由于内存和I/O端口的地址均映射到同一地址空间中,CPU需要通过地址总线上的控制信号来判断访问的设备类型,并产生相应的控制信号来进行数据读写操作。

中断响应

中断响应是一个软硬件结合起来处理系统例外事件的机制

硬件响应中断时,要进行新老程序状态字的交换(所谓程序状态字,是指CPU的一些重要寄存器内容的有序集合)。

当出现异常情况或特殊请求时,CPU响应中断,由硬件自动将相应的中断向量地址装入程序计数器PC,转入该中断服务程序进行处理。(并不是都由cpu完成的)

输入输出(I/O)

采用统一编址时由于地址变为统一的所以没有

访存

计算机系统的I/O接口与主存采用统一编址,则输入输出操作是通过访存指令来完成的。

计算机状态

计算机运行时的状态可以分为系统态(或称管态)和用户态(或称目态)两种。

系统态(或称管态)

处于系统态运行时,它可以执行特权指令,

用户态(或称目态)

处于用户态运行时,则不能执行特权指令,如果此时程序中出现特权指令,机器将会发出特权指令使用错误的中断。

计算机系统文件管理

设文件索引节点中有8个地址项,每个地址项大小为4字节,其中5个地址项为直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,磁盘索引块和磁盘数据块大小均为1KB字节。若要访问文件的逻辑块号分别为5和518,则系统应分别采用(一级间接地址索引和二级间接地址索引);而且可表示的单个文件最大长度是 (66053)KB。

磁盘索引块为1KB字节,每个地址项大小为4字节,故每个磁盘索引块可存放1024/4=256个物理块地址。又因为文件索引节点中有8个地址项,其中5个地址项为直接地址索引,这意味着逻辑块号为0〜4的为直接地址索引;2个地址项是一级间接地址索引,这意味着第一个地址项指出的物理块中存放逻辑块号为5〜260的物理块号,第一个地址项指出的物理块中存放逻辑块号为261〜516的物理块号;1个地址项是二级间接地址索引,该地址项指出的物理块存放了256个间接索引表的地吐,这256个间接索引表存放逻辑块号为517〜66052的物理块号。 经上分析不难得出,若要访问文件的逻辑块号分别为5和518,则系统应分别采用一级间接地址索引和二级间接地址索引。 单个文件的逻辑块号可以从0〜66052,而磁盘数据块大小为1KB字节,所以单个文件最大长度是66053KB。

计算机指令集

特权指令集

特权指令通常与系统资源的操纵和控制有关

访外指令用于通道启动通道;

时钟控制指令用于取、置时钟寄存器的值;

程序状态字控制指令用于取、置程序状态字;

通道控制指令用于访问通道状态字:

中断控制指令则用于访问中断字;

计算机系统的结构

单数据流(SISD)——>

单指令流多数据流(SIMD)——>高性能计算机多采用并行技术,因此其结构属于SMD或MIMD。

多指令流单数据流(MISD)——>

多指令流多数据流(MIMD)——>高性能计算机多采用并行技术,因此其结构属于SMD或MIMD。大规模并行处理机MPP

计算机系统硬件

中断方式下的数据传送是当I/O接口准备好接收数据或准备好向CPU传送数据时,就发出中断信号通知CPU。

对中断信号进行确认后,CPU保存正在执行的程序的现场,转而执行提前设置好的I/o中断服务程序,完成一次数据传送的处理。

这样,CPU就不需要主动查询外设的状态,在等待数据期间可以执行其他程序,从而提高了CPU的利用率。

采用中断方式管理I/O设备,CPU和外设可以并行地工作。 程序查询方式下,CPU通过执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据 。 直接内存存取(DMA)方式的基本思想是通过硬件控制实现主存与I/O设备间的直接数据传送,数据的传送过程由DMA控制器(DMAC)进行控制,不需要CPU的干预。

在DMA方式下,由CPU启动传送过程,即向设备发出“传送一块数据”的命令,在传送过程结束时,DMAC通过中断方式通知CPU进行一些后续处理工作。

存储器/嵌入式

存储器

典型的嵌入式系统存储器层次结构如题中图所示。

在这种存储器分层结构中,上一层的存储器作为下一层存储器的高速缓存。CPU寄存器就是Cache的高速缓存,Cache又是主存储器的高速缓存。在这种存储器分层结构中,层次越高,存储器容量越小,读写速度越快,存储设备也越昂贵;层次越低,存储容量越大,读写速度越慢,存储设备也越便宜。

存储机制

保证Cache和Memory的数据一致性

write through(直写法)——>在将数据写入Cache的同时也会立即将数据写入内存。高性能的读取操作

post write(后写法) ——>是指当写操作发生时,只将数据写入到Cache中,而暂时不将数据写入到主存中,而是等待一段时间之后再进行写回(也称为合并写回)。高性能的写入操作

write back(回写法)——>是指在进行写操作时,只将数据同时写入Cache和寄存器,并在一段时间内保持不变。工作负载具有低功耗、写入活动率较低和长延迟标准化突发请求的系统。

大端、小端模式

  • 以x = 0x1122为例;存入内存地址为0x0010~0x0011内

大端模式

内存地址正叙

x = 0x1122 0x0010~0x0011

0x11 存入 0x0010 ;

0x22 存入 0x0011。

小端模式

内存地址倒叙

x = 0x1122 0x0010~0x0011

0x11 存入 0x0011 ;

0x22 存入 0x0010。

存储系统

存储系统中的存储器,按访问方式可分为按地址访问的存储器和按内容访问的存储器;按寻址方式分类可分为随机存储器、顺序存储器和直接存储器。

随机存储器(RAM)——>指可对任何存储单位存入或读取数据,访问任何一个存储单元所需的时间是相同的。

顺序存储器(SAM)——>指访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。

直接存储器(DAM)——>是介于随机存取和顺序祥取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内,则是顺序寻址。

相联存储器——>是一种按内容访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字,将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字。

软件中间件

中间件屏蔽了操作系统和编程语言的异构性;

中间件是一个软件层,它提供一个编程抽象以及对底层网络、硬件、操作系统和编程语言异构性的屏障,处于操作系统与应用软件的中间,是一类系统软件或服务程序;

中间件表示成一组计算机上的进程或对象,它们相互交互,实现分布式应用的通信和资源共享支持

中间件的使用提高了嵌入式软件开发的效率与能力;

中间件的使用降低了应用软件设计的复杂度;

中间件的使用提高了应用软件可移植性;

中间件通过标准接口,实现与应用程序的关联,提供特定功能的服务;

除了解决异构性,中间件还为分布式应用编程人员提供一致的计算模型。

嵌入式系统(Embedded system)

嵌入式系统,是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。

嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

嵌入式系统通常的定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

系统调试

在嵌入式系统设计中,对于裸系统(系统存储介质中没有加载任何代码)而言,需要进行系统初始化代码的调试。

测试协议

JTAG

是一种国际标准测试协议(IEEE1149。1兼容),主要用于芯片内部测试,系统初始代码调试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA等。

标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择,时钟数据输入和数据输出线。

PCI

一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准

USB

是一个外部总线标准,用于规范计算机与外部设备的连接和通讯,是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。

RJ45(IEEE802.3标准):网络接口

它遵循IEEE802.3标准,传输速率通常为10M/100/1000Mbps,可工作在全双工、半双工模式。

嵌入式指令系统

RISC好于CISC

RISC

RISC指令集更少、功能更单一、格式更简单

长度和格式:固定

寻址方式:采用精简的地址寻址方式

实现方式:硬件电路

设置:设置大量通用寄存器,访问存储器指令简单

指令:指令种类少;选取使用频率较高的一些简单指令

CISC

长度:不固定

寻址方式:丰富

实现方式:只读存储器里的微码

设置:对寄存器要求低

指令:功能尽量强

嵌入式操作系统的种类

WindowsCE是微软的一款嵌入式操作系统

VxWorks是美国风河公司著名的嵌入式操作系统

μC/OS-II是一个源码公开的嵌入式实时操作系统

双工系统

嵌入式系统中,利用双机的方法可以达到容错的目的。其中,一个联机工作,另一个作备份,若备份也一直保持与承担联机工作的机器同步运行,一旦工作机出现故障,只需要将备份机切入系统,便能立即代替原有工作机,这种备份叫热备份。

当备份机平时停机或做其他工作,仅在工作机出现故障时才让它替代,使系统恢复正常,这样的系统称为双工系统。

指令系统

嵌入式处理器的指令系统可以是精简指令集(RISC)或者是复杂指令(CISC)。

RISC

是计算机中央处理器的一种设计模式。这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行进程度更好,编译器的效率更高。目前常见的精简指令集微处理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、Power Architecture(包括PowerPC、PowerXCell)和SPARC等。

精简指令集设计中常见的特征有:

统一指令编码(例如,所有指令中的op-code永远位于同样的比特位置、等长指令),可快速解释;

泛用的暂存器,所有暂存器可用于所有内容,以及编译器设计的单纯化(不过暂存器中区分了整数和浮点数);

单纯的寻址模式(复杂寻址模式以简单计算指令串行取代);

硬件中支持少数数据类型(例如,一些CISC计算机中存有处理字节字符串的指令,这在RISC计算机中不太可能出现)。

CISC

是一种微处理器指令集架构,每个指令可执行若干低阶操作,诸如从内存读取、储存和计算操作,全部集于单一指令之中。

复杂指令集的特点是指令数目多而复杂,每条指令字长并不相等。属于复杂指令集的处理器有CDC 6600、System/360、VAX、PDP-11、Motorola 68000家族、x86等。

嵌入式系统的特点

①可裁剪性。支持开放性和可伸缩性的体系结构。

②强实时性。实时性一般较强,可用于各种设备控制中。

③统一的接口。提供设备统一的驱动接口。

④操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。

⑤强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的操作系统具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。

⑥固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。

⑦更好的硬件适应性,也就是良好的移植性。

⑧嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

嵌入式系统与个人计算机(PC)通用计算机系统的关系

任务生产

嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。 嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。

嵌入式系统上的软件

与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的,所以经常称为“固件”。 普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬户可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。

即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。 综上所述,只有可执行多任务不是嵌入式系统独具的特点。

嵌入式系统的存储资源

嵌入式系统的存储资源,比如ROM、EEPROM、NAND Flash、Nor Flash、DDR、SD卡等。 ROM是只读内存(Read-OnlyMemory)的简称,是一种只能读出事先所存数据的固态半导体存储器。

其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。

ROM

EPROM、EEPROM、Flash ROM(NOR Flash和NAND Flash),性能同ROM,EEPROM被称为电擦除的ROM。

NOR

NOR闪存是随机存储介质,用于数据量较小的场合;

由于NOR地址线和数据线分开,所以NOR芯片可以像SRAM—样连在数据线上。NOR芯片的使用也类似于通常的内存芯片,它的传输效率很高,可执行程序可以在芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。由于NOR的这个特点,嵌入式系统中经常将NOR芯片做启动芯片使用。

NAND

NAND闪存是连续存储介质,适合存放量大的数据。

NAND上面的代码不能直接运行。

RAM(random access memory,随机存储器)

RAM(random access memory,随机存储器)的内容可按需随意取出或;字入,且存取速度与存储单元的位置无关。

这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序和数据。

所谓“随机存取”,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。

相对地,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系(如磁带),如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。

随机存储器分类

按照存储信息的不同,为静态随机存储器(SRAM)和动态随机存储器(DRAM)。

SRAM

DRAM

特点

NOR的存储密度低,所以存储一个字节的成本也较高,而NAND闪存的存储密度和存储容量均比较高;

NAND闪存在擦、写文件(特别是连续的大文件)时速度非常快,非常适用于顺序读取的场合,而NOR的读取速度很快,在随机存取的应用中有良好的表现。

RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会。

硬件系统

嵌入式硬件系统是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入输出接口和外围设备组成。

硬件分类

核心微处理器

核心微处理器可以分为由通用的计算机CPU演变而来的微处理器、嵌入式微控制器,又称之为单片机,即MCU、嵌入式DSP处理器,专门用于信号处理和嵌入式片上系统。

外围控制电路

外围电路主要用于进行外部的控制,系统必要的资源支撑等。

外设与扩展

外设与扩展主要进行系统对外的交互和扩展实现,包括各种接口外设,各种交互实现等。

嵌入式系统时钟

嵌入式系统主时钟可以由外部时钟源提供,也可以由外部振荡器提供。

时钟控制逻辑可以在不需要锁相环(Phase Locked Loops,PLL)的情况下产生慢速时钟,并且可以通过软件来控制时钟与每个外围模块是连接还是断开,从而降低功耗。

系统时钟源直接采用外部晶振时,内部PLL电路可以调整系统时钟,使系统运行速度更快。

由于片内的PLL电路可以兼具频率放大和信号提纯的功能,因此,系统可以以较低的外部时钟信号获得较高的工作频率,从而降低因高速并关时钟所造成的高频噪声。

锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住。

嵌入式里实时系统和系统时钟的关系

实时系统需要使用这个时钟信号来跟踪时间并进行任务调度。因此,系统时钟与实时系统密切相关。

任务间同步机制

定时器不属于任务间同步机制。

信号量

事件

信号

时序电路

时序电路的特点是:在任何时刻电路产生的稳定输出信号不仅与该时刻电路的输入信号有关,而且还与电路过去的状态有关。

由于它与过去的状态有关,所以电路中必须具有“记忆”功能的器件,记住电路过去的状态,并与输入信号共同决定电路的现在输出。

图示为其对应的电路框图:

图示为其对应的电路框图

从图中可以看出,对组合电路而言,它有两组输入和两组输出,其中X1(t),X2(t),…Xn(t)称为时序电路的外部输入信号Q1n(t),Q2n(t),…QIn(t)称为时序电路的内部输入,F1(t),…Fr(t)称为时序电路的外部输出,W1(t)…Wm(t)称为时序电路的内部输出,或称为记忆原件的控制函数或激励函数。

实时系统

实时系统是一种特殊的嵌入式系统,其正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。

实时系统不是响应快的系统,而是能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。

JTAG

JTAG是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。

基本原理是在器件内部定义一个TAP(TestAccessPort测试访问口)通过专用的JTAG测试工具对内部节点进行测试。

JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。

现今多数的高级器件都带有JTAG接口,支持JTAG协议,如DSP、FPGA、ARM、部分单片机器件等,方便多目标系统进行测试,同时还可以实现ISP(In-System Programmable在线编程),对FLASH等器件进行编程。

触摸屏(touch screen)

触摸屏是一种可接收触头等输入信号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连接装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。

触摸屏作为一种最新的电脑输入输出设备,是目前最简单、方便、自然的一种人机交互方式,主要应用于公共信息的查询、领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。

看门狗电路

看门狗电路是一个独立的定时器,有一定时器控制寄存器,可以设定时间。当系统工作正常时,应用程序在到达时间之前要置位(喂狗),表明程序正常运行,如果没有置的话,就认为是程序跑飞,看门狗电路发出RESET指令,迫使系统自动复位而重新运行程序。

作用

看门狗的主要作用是防止程序跑飞或死锁。

看门狗的定时周期一般应大于软件运行周期。

在软件程序运行过程中需要定时修改定时器的计数值(俗称“喂狗”),只要程序正常运行,定时器就不会溢出。

若由于软件异常等原因使软件程序不能在看门狗定时周期内修改定时器的计数值,定时器将会产生溢出(或超时),引发系统复位中断,使系统得以重新运行。

只要程序正常运行,看门狗就不会引起系统复位。这句话,哪里错了

看门狗是一种用于检测系统故障并引起复位的机制,其作用是在程序崩溃或死锁时触发系统复位以防止系统长时间停滞不前。因此,即使程序正常运行,看门狗仍然需要定期接收信号以保持其工作状态。

如果看门狗没有正常工作,那么它将无法检测到系统故障并引起复位。这可能会导致系统出现问题而无法得到及时处理,最终导致系统崩溃或数据丢失。

因此,在设计和实现嵌入式系统时,应该正确配置并及时更新看门狗计时器,以确保看门狗能够正常工作并对系统进行监视。

板级支持包:BSP

在嵌入式系统中,Board Support Package(简称BSP,板级支持包)是实现特定的支持代码,通常会与bootloader—起设置,bootloader包含最小的设备驱动来加载操作系统与所有在板上的设备的驱动程序。

BSP是介于主板硬件和操作系统之间的一层,主要目的是为了支持操作系统,使之能够更好地运行于硬件主板。

不同的操作系统对应不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义完全不同。 嵌入式实时操作系统可以分为基本内核和扩展内核。

其对应的定义为:当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。

在工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。

嵌入式操作系统通常是实时操作系统。比如μC/OS-II,eCOS和Linux。故对嵌入式实时操作系统的理解应该建立在对嵌入式系统的理解之上加入对响应时间的要求。

在实际的嵌入式系统设计中,应用编程接口一般以库或者组件的形式而存在,选择哪种则依赖于对应的嵌入式操作系统,在实际的系统构建时,并不一定需要对应的接口API。

SD卡

是一种为满足安全性、容量、性能和使用环境等各个方面需求而设计的一种新型存储器件,

SD卡两种工作模式:SD模式和SPI模式。

一般的嵌入式处理器中都集成了SD卡接口模块,外围只需简单电路即可设计而成。 SD卡包括9个管脚,分别是CLK时钟信号;CMD命令和回复线信号;DATA0-3数据线,是双向信号;另外还包括电源、片选等信号线。

SD卡与MicroSD卡仅仅是封装上的不同,MicroSD卡更小,大小上和一个SIM卡差不多,但是协议与SD卡相同。SD模式支持一主多从架构,时钟、电源、地所有卡共有。SD卡的操作是通过命令来进行。

SD卡的初始化一般是按照以下顺序进行:发送CMD0复位命令,返回1-复位成功,0-复位失败;发送CMD8命令,

验证SD卡接口操作条件:有响应-2.0SD卡;无响应-1.0SD卡或不可用卡;循环发送CMD55+ACMD41命令,判断是否有响应,有响应则轮询OCR忙标志位,等待初始化完成,并判断是否是SDHC卡;发送CMD2命令,得到每张卡的CID号;发送CMD3命令,通知卡返回一个新的RCA,主机使用这个相对地址作为之后数据传输模式的地址;发送CMD9命令,返回CSD128位寄存器数据,包含卡的具体数据:块长度、存储容量、速度传输速率等;发送CMD7命令,选择一张卡,并将它切换到数据传输模式,每次只会有一张卡处于传输模式;发送CMD55+ACMD51命令,返回SCR寄存器数据,获取SD卡支持的位宽信息;发送CMD55+ACMD6命令,配置4bit传输模式。

通信模式

写通(write through)

是指:每当缓存接收到写数据指令,都直接将数据写回到内存。如果此数据地址也在缓存中,则必须同时更新缓存。

由于这种设计会引发造成大量写内存操作,有必要设置一个缓冲来减少硬件冲突。这个缓冲称作写缓冲器(Write buffer),通常不超过4个缓存块大小。写通较回写易于实现,并且能更简单地维持数据一致性。

回写(write back)

是指:仅当一个缓存块需要被替换回内存时,才将其内容写入内存。如果缓存命中,则总是不用更新内存。为了减少内存写操作,缓存块通常还设有一个脏位(Dirty bit),用以标识该块在被载入之后是否发生过更新。如果一个缓存块在被置换回内存之前从未被写入过,则可以免去回写操作。

异步通信协议Post write

是指:CPU更新Cache数据时,把更新的数据写入到一个更新缓冲器,在合适的时候才对Memory进行更新。这样可以提高Cache访问速度,但是,在数据连续被更新两次以上的时候,缓冲区将不够使用,被迫同时更新Memory。

微处理器

cpu传送方式的选择:

采样周期 < 转换时间 :中断传送方式读取数据

采样周期 > A/D转换时间 :?传送方式读取数据

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐