嵌入式系统复习资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章嵌入式系统导论

1.嵌入式系统的概念:

是以现代计算机技术为基础,以应用为中心,可以根据系统或用户需求(功能、可靠性、成本、体积、功耗、环境等),灵活裁剪软硬件模块的专用计算机系统。

2.嵌入式系统的分类及分类依据:

嵌入式系统由硬件和软件两大部分组成,用于实现对其他设备的控制、监视或管理等功能。前者是整个系统的物理基础,它提供软件运行平台和通信接口;后者实际控制系统的运行。

硬件:嵌入式微处理器、外围电路、外围硬件设备。

软件:BootLoader 、嵌入式操作系统、用户的应用程序等。

3.几种典型嵌入式操作系统:(1) uC/OS II

(2)uCLinux

(3)Windows CE

(4)嵌入式Linux 等

4.任务调度:

任务的调度有三种方式:可抢占式、不可抢占式和时间片轮转。

【不可抢占式调度是指一个任务一旦获得CPU就独占其运行,除非由于某种原因使它决定放弃CPU的使用权;

可抢占式调度是基于任务优先级的,当前正在运行的任务可以随时让位给优先级更高的处于就绪态的其他任务;

当两个或两个以上任务有同样的优先级时,不同任务轮转使用CPU,直到系统分配的CPU时间片用完,这就是时间片轮转调度。】

目前,大多数嵌入式操作系统对不同优先级的任务采用基于优先级的可抢占式调度法,对相同优先级的任务则采用时间片轮转调度法。

5.针对有内存管理单元(MMU,Memory Management Unit)的处理器而设计的一些桌面操作系统,如Windows、Linux,使用了虚拟存储器的概念。

6.计算机的发展:

冯诺依曼架构:将指令和数据存放在同一存储空间中,统一编址,指令和数据通过同一总线访问。

哈佛结构(冯诺依曼架构的扩展):主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。CortexM3

7.Cortex系列

按嵌入式系统的典型应用分类:

① Cortex-A:高性能(High Performance),【针对日益增长的运行Linux、WinCE、Symbian等操作系统在内的消费者娱乐和无线产品设计与实现。】

② Cortex-M:微控制器类(Microcontroller),【针对应用系统对功耗、成本敏感,同时对微处理器性能要求较高的工业领域(汽车、家电、医疗器械等)。】③ Cortex-R:【实时类(Real Time),针对实时性要求较高的领域,可以运行RTOS。】

④ Cortex-W:【Wireless】

Cortex指令完全采用Thumb-2体系架构。

第2章Cortex-M3 内核原理

1.Cortex-M3是ARM公司推出的新一代32位低成本、高性能通用微控制器内核。

2.Cortex-M3 体系结构:

Cortex-M3 处理器主要由两大部分组成:

① Cortex-M3 内核:

中央处理器核心(Cortex-M3 Core

嵌套向量中断控制器(NVIC )

系统时钟(SYSTICK )

存储器保护单元(MPU)

总线

②调试系统

3.AMBA总线:

(l)AHB:Advanced High Performance Bus,用于高性能系

统模块的连接,支持突发模式数据传输和事务(ACID:原子性、一致性、隔离性和持久性)分割;

(2)ASB:Advanced System Bus,也用于高性能系统模块的

连接,支持突发模式数据传输,这是较老的系统总线格式,后来由AHB总线替代;

(3)APB:Advanced PeriPheral Bus,用于较低性能外设的简单连接,一般是接在AHB或ASB系统总线上的第二级总线。

(4)

4. Cortex-M3内核是典型的32位处理器内核:

①内部数据路径宽度为32位,

②寄存器宽度为32位,

③存储器接口宽度也是32位,

• Cortex-M3内核拥有独立的指令总线和数据总线,其寻址能力均为4G,且共享同一个存储器空间,取指与数据访问可同时进行。

5.Cortex-M3寄存器:

(1). 低组寄存器(R0~R7)【所有指令均能访问,字长为32位,复位后的初始值是随机的。绝大多数16 位 Thumb 指令只能访问R0~R7 。】

(2). 高组寄存器(R8~R12)【只有很少的 16 位Thumb 指令能访问,32位指令则不受限制,复位后的初始值是随机的。】

(3). 堆栈寄存器(R13)又称“堆栈指针SP”【Cortex-M3处理器内核有两个堆栈,但这两个寄存器不会同时生效,根据系统运行状态进行堆栈切换,以保证程序运行的快速性、安全性等要求。】

①主堆栈指针(MSP ),或写作SP_main。【缺省堆栈指针,它由OS内核、异常服务例程以及所有需要特权访问的应用程序代码来使用。】

②进程堆栈指针(PSP ),或写作SP_process。【用于常规的应用程序代码

6.在系统连接结构中,通常借助AHB-APB 桥实现内核内部高速总线到外部低速总线的数据缓冲和转换。

7.Cortex-M3是一个32 位处理器,支持 4GB 存储空间,与ARM 架构相比,有很多优点:

(1)预定义存储器映射和总线配置;

(2)支持“位带(bit ‐band )”操作;

(3)支持非对齐访问和互斥访问;

(4)支持小端和大端两种存储格

8.位带操作:

(1)概念:位带操作,只适用于数据访问,不适用于取指。通过位带的功能,可以把多个布尔型数据打包在单一的字中,却依然可以从位带别名区中,像访问普通内存一样地使用它们。位带别名区中的访问操作是原子的,消灭了传统的“读-改-写”三步曲以及由此产生的被中断的可能。

(2)为什么采用位带操作?

可以显著提高位操作的效率和安全性,对许多底层软件开发特别是操作系统和驱动程序具有重要意义。

(3)片内外设区(Peripheral ,0x40000000~0x5FFFFFFF ,512MB)外部RAM 区(External Ram ,0x60000000~0x9FFFFFFF ,256KB )

外部设备区(External Device ,0xA0000000~0xDFFFFFFF ,768KB )

(4)映射公式:

bit_word_addr =bit_band_alias_base + (byte_offset ×32) + (bit_number ×4)

– bit_word_addr 是别名存储器区中字的地址,它映射到某个目标位。

– bit_band_alias_base 是别名区的基址,即起始地址。

– byte_offset 是包含目标位的字节在位带区里的序号。

– bit_number 是位带区目标位所在字节中的位置(0-7)。

(5)例题:

例1 :

位带区SRAM地址为0x20000300的字节中的位2,其位带别名区的映射地?

相关文档
最新文档