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

嵌入式软件系统PPT课件

24
完整的嵌入式操作系统 内核 文件系统 人机界面等
25
2.4网络协议栈
协议栈为嵌入式系统产品提供网络功能 嵌入式协议栈的提供方式
独立的第三方协议栈产品 例如: inter niche的嵌入式TCP/IP
嵌入式操作系统的提供商提供协议栈产品 例如:NetBIOS、IPX/SPX
26
27
2.5应用软件


LCD
USB
键盘
海量 存储器
时钟 日历
14
API函数(应用程序编程接口)
API 函数
绘图函数 Display.h
后台 缓冲区
文件读写函数 OSFile.h
文件管理函数 File.h
双向链表函数 List.h
系统控件函数 Control.h
15
操作系统
信号量
邮箱
消息 队列
任务调 度模块
动态内 基于uCOS-II 存管理 的RTOS内核
绘图函数 Display.h
后台 缓冲区
文件读写函数 OSFile.h
文件管理函数 File.h
双向链表函数 List.h
系统控件函数 Control.h
键盘扫描
系统消息
系统 消息队列 OSMessage.h
主任务
信号量
驱动 程序 drv.h LCD240.h
USB.h
Flash.h
Keyboard16.h
• 由于其本身不具备自主开发能力,必须有一套 开发工具和环境才能进行开发。
• 调试需要各种逻辑分析仪、混合信号示波器等。
3 概念列示
• 通用计算机程序开发和编译在一台计算机上完成
——直接编译。
• 嵌入式系统采用“宿主机/目标机”方式——交叉编译。
USB/RS232/以太网
内存小 存储空间有限 计算能力有限
内容
一、嵌入式软件的基本特征 二、嵌入式软件结构和组成 三、软件系统的设计方法 四、软件的移植
1
一、基本特征
1.1 嵌入式软件开发需要交叉编译 1.2 嵌入式软件不一定需要操作系统 1.3 嵌入式软件都是无限循环 1.4 嵌入式软件都要响应中断 1.5 嵌入式软件的硬件相关性
2
1.1 嵌入式软件开发需要交叉编译
Rtc.h


LCD
USB
键盘
海量 存储器
时钟 日历
信号量
邮箱
消息 队列
LCD刷新 系统任务
任务调 度模块
用户任务n
用户任务2 用户任务1
动态内 基于uCOS-II 存管理 的RTOS内核
13
驱动程序
驱动 程序 drv.h LCD240.h
USB.h
Flash.h
Keyboard16.h
Rtc.h
执行 ISR1
{ action1(); /* 常规循环操作 */
action2();
}
}
……
/* 中断1对应的服务程序 __interrupt ISR1()
*/ CPU中
{
断源1
/* 中断服务工作 */
}
编译器自动加入现场出入栈代码
外部 事件
11
main()
{ /* 超级循环 */
while(1) enter_low_power(); /* 进入低功耗状态 */
20
嵌入式软件组成
初始化引导代码 板级支持包 操作系统 通信协议栈 图形用户界面 应用软件
21
2.1初始化引导代码
嵌入式系统上电复位后第一个执行的代码
执行:
系统自检
进入初始化(硬件、软件)Biblioteka 引导操作系统复位向量
80186 : FFFF0H
MCS51 : 0H
ARM : 0H
22
2.2 BSP板级支持包(Board Supporting Package)
16
系统任务及消息队列
键盘扫描
系统消息
系统 消息队列 OSMessage.h
主任务
信号量
LCD刷新 系统任务
17
用户应用程序
用户界面
用户应用程序
任务之间 的通讯
用户任务n
用户任务2 用户任务1
18
软件功能必须硬件可实现 更换硬件,BSP必须重编。
19
二、嵌入式软件结构和组成
嵌入式系统的软件结构
29
Qt/Embedded
30
Microwindows
31
Tiny X Server
32
三、软件系统的设计方法
无操作系统的嵌入式软件设计 有操作系统的嵌入式软件设计
宿主机:通用计算机(PC),开发环境。
目标机:嵌入式系统,运行环境。
4 提问:为何嵌入式要用这种方式
1.2 嵌入式软件不一定需要操作系统
• 简单的嵌入式系统上,譬如MCS-51处理器上, 可以直接运行裸机程序。
• 复杂嵌入式系统上,需要嵌入式操作系统来调 度资源和控制。
5
6
7
1.3 嵌入式软件都是无限循环
} /* 中断1对应的服务程序 */
__interrupt ISR1()
{ /* 中断服务工作 */
}
…… /* 中断n对应的服务程序 */
低功耗程序设计
__interrupt ISRn()
{ /* 中断服务工作 */
} 12
1.5 嵌入式软件的硬件相关性
用户应用程序
用户界面
任务之间 的通讯
API 函数
• 嵌入式软件的结构上都是没有出口的,程序不 能退出,整个程序的基本结构是无限循环。配 合中断构成整体。
8 列概念
main() {
Init_HardWare(); /* 硬件初始化 */
/* 超级循环 */
while(1)
{ action1(); /* 常规循环操作 */
action2();
}
}
……
嵌入式操作系统与用户定制硬件平台之间的接口 有效解决硬件平台的差异性
BSP完成系统硬件的初始化 硬件配置寄存器 存储器配置 I/O参数配置等
23
2.3嵌入式操作系统
主要功能(嵌入式系统大管家) 管理全部软硬件资源 控制程序运行 提供人机界面;
基于操作系统的开发模式 嵌入式操作系统的内核 处理器管理(任务、任务之间的通信和同步等) 存储器管理
用户自主开发的软件 用于PDA上的记事本、通讯录、计算器等。 用于工业现场的控制软件等。
应用软件的开发基于一系列的低层API 操作系统 网络通信协议栈 图形用户接口 文件系统等
28
2.6 GUI
与用户交互的应用软件 LCD显示、键盘输入、触摸屏输入等
GUI运行在嵌入式操作系统之上,通过GUI的功 能调用(API)来实现。
9
main() {
Init_HardWare(); /* 硬件初始化 */
/* 超级循环 */ for(;;)
/* 也有人这样写 */
{ action1(); /* 常规循环操作 */
action2();
}
}
……
10
main() {
1.4嵌入式软件都要响应中断
/* 超级循环 */
while(1)
相关主题