当前位置:文档之家› 嵌入式系统的软件系统

嵌入式系统的软件系统

▪ ROM空间 ▪ RAM空间 ▪ 定时器 ▪ 中断 ▪ 堆栈
13
3 板级支持包-BSP
❖ BSP的运行流程
▪ 1. 复位向量入口,此时中断是禁止的; ▪ 2. 设置处理器的工作模式,通常使用复位时的缺省模
式; ▪ 3. 设置RAM和ROM的工作参数,包括DRAM的刷新
参数、地址空间分配等,到此嵌入式系统的处理器和 存储器子系统可以达到运行状态; ▪ 4. 设置操作系统运行所需要的数据段、堆栈空间等; ▪ 5. 设置中断向量,中断向量的设置根据需要进行,也 可以在其它的时候设置,但是一定要在中断允许之前 完成设置; ▪ 6. 操作系统的初始化; ▪ 7. 进入用户的应用;
组件。
18
BSP-3:INC_Initialize
❖ 操作系统的初始化:
▪ 初始化操作系统的每一个组件, ▪ 初始化完成后进入Application_Initialize, ▪ 进入用户开发的应用程序。 ▪ 这一部分代码不需要用户编写。
19
BSP-4:Application_Initialize
4
嵌入式系统的软件结构
5
1.2初始化引导代码
❖ 初始化引导代码是任务嵌入式系统上电复位后第 一个执行的代码
❖ 复位向量
▪ 80186:FFFF0H ▪ MCS51 ▪ 引导操作系统 ▪ 进入初始化(硬件、软件)
6
1.3 BSP板级支持包
❖ AT平台的标准化 ❖ 嵌入式系统平台的多样化 ❖ BSP的功能
▪ 例如常用的应用软件用于PDA上,记事本、通 讯录、计算器等。
▪ 应用于工业现场总线领域的应用软件如控制软 件等。
▪ 应用软件的开发基于操作系统、网络通信协议 栈、图形用户接口、文件系统等一系列的低层 API。
10
1.7 GUI
❖ 对于大多数嵌入式系统,图形用户接口是 必要的,特别是随身设备如PDA、手机等。
❖ 协议栈的运行必须基于嵌入式操作系统的平台支 持,但是并不意味着协议栈必须依赖于嵌入式操 作系统的API。事实上,许多的嵌入式协议栈, 如inter niche的嵌入式TCP/IP协议栈做到了与操 作系统的最大独立性,可以与大多数嵌入式操作 系统集成运行。
9
1.6应用软件
❖ 嵌入式系统的应用软件一般需要自主开发, 不同的嵌入式系统的应用软件各具特色和 功能。
❖ 目前开发嵌入式系统,监控程序的作为正在减少, 只用在一些小的嵌入式系统中。
❖ 有的嵌入式控制器的制造商把监控程序驻留在 ROM中提供给用户在开发时使用,提供的功能 如程序下载、调试、固化等。
▪ 如motorola公司的某些8位嵌入式微控制器
12
3 板级支持包-BSP
❖ 嵌入式操作系统运行的必要条件
❖ GUI运行在嵌入式操作系统之上。用户开 发的与用户交互的应用软件通过调用GUI 的功能调用(API)来实现。
11
2 监控程序-monitor
❖ 监控程序是运行在嵌入式系统中的一段代码,具 有与用户进行交互,管理系统资源的功能,具有 操作系统内核的一小部分功能。嵌入式系统正式 运行时,通常不需要监控程序的干预。
▪ 用户定制的系统各不相同 ▪ 用户定制的系统主要部分相同
❖ 含有存储器、定时器、中断等操作系统运行所需的基本部 件
▪ 嵌入式操作系统与用户定制硬件平台之间的接口
7
1.4嵌入式操作系统
❖ 复杂系统需要嵌入式操作系统的支持
❖ 简单系统可以不使用嵌入式操作系统
❖ 嵌入式操作系统可裁减
▪ 嵌入式操作系统的内核
14
3.2 nucleus的BSP
❖ 1. 跳转到INT_reset;系统上电复位程序入口; ❖ 2. 执行Int_Initialize; ❖ 3. 执行Inc_Initialize; ❖ 4. 进入应用程序入口Application_Initialize。
15
start
INT_reset INT_initialize INC_Initialize application_initialize
过程调用
的 执 行 过 程
16
nucleus
BSP-1:INT_reset
❖ (1) 初始化处理器的硬件寄存器; ❖ (2) 设置处理器的片上译码器的寄存器,
为FLASH,RAM,I/O等分配存储空间。
17
BSP-2:INT_Initialize
❖ (1) 设置必要的处理器/系统控制寄存器; ❖ (2) 初始化中断向量表; ❖ (3) 设置系统堆栈指针; ❖ (4) 设置定时器中断; ❖ (5) 计算定时器的优先级和堆栈; ❖ (6) 计算出可用的存储器的首地址; ❖ (7) 跳转到INC_Initialize,初始化所有的系统
❖ 处理机管理(任务、任务之间的通信和同步等)
❖ 存储器管理
▪ 完整的嵌入式操作系统
❖ 内核
❖ 文件系统
❖ 人机界面
❖ 设备驱动等
8
1.5网络协议栈
❖ 协议栈对于具有网络功能的嵌入式系统产品是必 要的,目前嵌入式协议栈的提供有两种方式,
▪ 一种是独立的第三方协议栈产品, ▪ 一种是嵌入式操作系统的提供商提供协议栈产品。
“退出”,整个程序的结构应该是无限的循环。 5. 嵌入式系统的软件设计需要考虑硬件的支持、
操作系统的支持、程序的初始化和引导等诸多 的方面。 6. 嵌入式系统的软件可能没有操作系统,在裸机 上直接开发。
3
1.1嵌入式系统的软件组成
❖ 初始化引导代码 ❖ 板级支持包 ❖ 操作系统 ❖ 通信协议栈 ❖ 图形用户界面 ❖ 应用软件
内容
❖ 软件的结构和组成 ❖ 监控程序 ❖ BSP ❖ 软件系统的设计方法 ❖ 软件的移植
1
1 软件的结构和组成
#include <stdio.h> main() {
printf(“hello,world\n”); }
2
嵌入式系统的软件开发问题
1. 嵌入式操作系统。 2. 操作系统与应用软件的集成。 3. 软件的结构。 4. 嵌入式系统的软件是没有出口的,程序不能
❖ 用户的应用:应用程序入口
Application_Initialize() {
/* to do: 用户编写的应用程序 */ … }
20
4 软件系统的设计方法 1. 无操作系统的嵌入式软件设计 2. 有操作系统的嵌入式软件设计
相关主题