第1章 简介
目录
1.1 嵌入式系统和软件
1.1.1 嵌入式系统
- 一个嵌入式系统可以使任何包括台式机、笔记本或者主流框架的计算器在内的计算系统
- 嵌入式系统可以被定义为嵌入到封闭产品的信息处理系统
- 基本特征
- 单功能
- 通常只反复执行一个程序
- 严格限制
- 成本、大小、性能、功率
- 反应和实时反应
- 在系统环境下发生变化,而且必须立即实时计算某些结果
- 单功能
1.1.2 嵌入式系统的应用区域
- 运输
- 汽车、飞机和火车电子产品
- antibraking系统,GPS系统,…
- 汽车、飞机和火车电子产品
- 电信
- 电话、射频设备,…
- 消费电子产品
- ,电视机、冰箱、智能手机、…
- 医疗系统
- 军事系统
- 支付系统
- ……
1.1.3 嵌入式系统模型
硬件层
- 处理器
- 微处理器、μP
- 单片机,μC
- 数字信号处理器DSP
- 图形处理单元,GPU
- 存储器
- 缓存、内存、闪存
- I/O设备
- LED,键盘,摄像头,触摸屏,……
- 总线
- 数据总线、控制总线地址总线
软件层
- 应用程序
- 浏览器、电子邮件、画廊,……
- 系统软件
- 中间件:CORBA,Java ME,……
- 操作系统:Android,μC / OS、Linux,……
- 驱动:网络驱动程序,摄像头驱动,……
- 引导装载程序:U-boot,昕薇,Redboot,……
- 支持软件
- 数据库:SQLite,PostgreSQL……
- 编程工具:IDE,调试器,编译器,……
1.1.4 硬件开发者视角
1.1.5 软件开发者视角
1.1.6 嵌入式系统开发者视角
在软件领域,比硬件开发者知道更过硬件开发技能和知识;
在硬件领域,比软件开发者知道更过硬件开发技能和知识。
1.1.7 嵌入式系统趋势
- 低功耗、低成本、小尺寸
- 多核处理器
- 物联网
- 多功能
- 更强大的开发工具
- 用户界面更加友好
- 嵌入式系统开发变为主要靠软件驱动
1.1.8 如何开发一个嵌入式系统
- 硬件开发
- 分析、设计、生产、测试、部署
- 软件开发
- 分析、设计、编程、测试、部署
- 集成
- 集成、测试、部署
1.2 软件开发生命周期
1.2.1 软件开发过程
- 是执行构造软件系统的活动的一系列阶段
- 每个阶段会产生一些向其他阶段输入的工件
- 每个阶段都有一组输入标准和输出标准
- 流程模型
- 瀑布模型、原型模型、螺旋模型、统一过程模型,敏捷开发模型等
1.2.2 瀑布模型
1.2.3 原型模型
1.2.4 螺旋模型
1.2.5 统一过程模型
1.2.6 敏捷开发模型
1.3 软件设计
1.3.1 设计阶段
- 体系结构设计
- 系统类型、子系统、模块、公共数据结构、安全框架等
- 数据库设计
- 数据库模式、数据存储、触发器、存储过程等
- 界面设计
- 输入、处理、输出、gui、通信等
- 详细设计
- 数据结构、算法、程序等
1.3.2 设计方法
- 结构化设计方法
- 面向对象的设计方法
1.3.3 建模语言
- 统一建模语言UML
UML图层级
- 结构图表,SC
SC demo
1.4 消费电子产品软件设计
1.4.1 软件特点
- 资源约束
- 屏幕大小、cpu、内存……
- 安全要求高
- 隐私保护,支付,……
- 流动性
- 位置是不固定的
- 互动的方式
- 触摸屏、虚拟键盘,……
- 多样性
- 传感器,应用领域,网络,……
1.4.2 消费类电子缠绵软件设计关注点
- 简单
- 用户界面
- 特性
- 安全
- 成本
- 性能
1.4.3 设计对象
- 软件架构
- 用户界面
- 数据结构和存储
- 网络通信
- 安全
- 性能