今天开始对嵌入式学习重新学习一下,虽然有点基础,但是显得很乱,摸不着头绪,现在开始好好整理一下:
(1)嵌入式系统的组成与特点:
总体上嵌入式系统可以划分成硬件和软件两部分
硬件一般由高性能的微处理器和外围的接口电路组成
软件一般由实时操作系统和其上运行的应用软件构成
系统内核小
嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多
专用性强
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植
系统精简
嵌入式系统一般不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于系统安全
实时性操作系统
这是嵌入式软件的基本要求,而且软件要求固化存储,以提高速度,软件代码要求高质量和高可靠性、实时性
专用的开发工具和开发环境
应用层:特定的应用程序
文件系统/图形用户应用程序接口
OS层: 实时操作系统
驱动层:设备驱动程序、HAL、BSP
嵌入式开发分类;
硬件开发: 电路设计
驱动开发
系统开发: Linux开发
WINCE开发
软件开发: 应用程序
图形界面
(2) 嵌入式系统与PC的区别:
设备名称 | 嵌入式系统 | PC |
CPU | 嵌入式处理器(ARM,MIPS,Score+) | CPU(Intel、AMD等) |
内存 | SDRAM芯片 | SDRAM或DDR内存条 |
存储设备 | Flash芯片 | 硬盘 |
输入设备 | 触摸屏,按键 | 鼠标、键盘、麦克等 |
输出设备 | LCD | 显示器 |
其它设备 | 音频芯片、USB芯片、网卡芯片等 | 主板集成或外接卡 |
名称 | 嵌入式系统 | PC |
引导代码 | Bootloader引导,针对不同电路进行移植 | 主板的BIOS引导,无须改动 |
操作系统 | Linux、WinCE、VxWorks等,需要移植 | Windows、Linux等,无需移植 |
驱动程序 | 每个设备驱动针对电路板进行开发或移植,一般不能直接下载使用 | 操作系统含有大多数驱动程序,或下载直接使用 |
开发环境 | 交叉编译 | 本机编译 |
协议栈 | 需要移植 | 操作系统或第三方提供 |
(3)嵌入式开发流程:
1.裸机开发:
对于功能简单仅包括应用程序的嵌入式系统一般不使用操作系统,仅有应用程序和设备驱动程序
2. 带操作系统的开发:
当设计较复杂的程序时,可能就需要一个操作系统(OS)来管理控制内存、多任务、周边资源等,现代高性能嵌入式系统应用越来越广泛,操作系统使用成为必然发展趋势。
带操作系统的开发:
通常基于linux系统的嵌入式开发步骤如下:
如选择微处理器、Flash及其它外设等
安装交叉编译工具链、安装开发调试工具