软考-4.2嵌入式软件-RTOS-软件开发
前言
内容:
- 嵌入式软件
中论
嵌入式软件
分类
- 系统软件:控制和管理嵌入式系统资源,比如设备驱动程序、嵌入式操作系统、嵌入式中间件
- 应用程序:嵌入式系统中的上层软件,比如飞控软件、手机软件
- 支撑软件:辅助软件开发的工具软件,比如系统分析设计工具、在线仿真工具
板级支持包(BSP)
介于主板硬件和操作系统中驱动层程序之间的一层。主要包括两个方面:引导加载程序BootLoader和设备驱动程序
功能:
- 单板硬件初始化,主要是CPU的初始化
- 为操作系统提供设备驱动程序和程序中断服务程序
- 定制操作系统的功能,为软件系统提供一个实时的多任务的运行环境
- 初始化操作系统,为操作系统的正常运行做好准备
特点:
- 硬件相关性
- 操作系统相关性
BootLoader
嵌入式系统加电后运行的第一段软件代码,在操作系统内核运行之前的一小段程序。主要是初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置到一个合适的状态。
功能:
- 片级初始化。主要完成微处理器初始化
- 板级初始化。主要完成微处理器以外的其他硬件设备初始化。
- 加载内核(系统级初始化)。将操作系统和应用程序的映像从Flash存储器复制到系统的内存中,然后跳转到系统内核的第一条指令处继续执行。
在一个嵌入式系统中,操作系统是可有可无的。但设备驱动程序是必不可少的。
设备驱动程序:一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口。
设备驱动程序基本功能:
- 硬件启动
- 硬件关闭
- 硬件停用
- 硬件启用
- 读操作
- 写操作
嵌入式系统
嵌入式系统的组成
- 嵌入式处理器
- 相关支撑硬件
- 嵌入式操作系统
- 支撑软件
- 应用软件
嵌入式系统的特点
- 专用型强
- 技术融合
- 软硬一体软件为主
- 比通用计算机资源少
- 程序代码固化在非易失的存储器中
- 需专门开发工具和环境
- 体积小、价格低
- 对安全性和可靠性要求高
嵌入式系统的分类
用途:嵌入式实时(强实时和弱实时)和嵌入式非实时
安全:安全攸关和非安全攸关系统
嵌入式系统的层级
- 硬件层
- 抽象层(驱动)
- 操作系统层
- 中间件层
- 应用层
嵌入式数据库系统
特点:
- 设备随时移动性
- 网络频繁断接
- 网络条件多样化
- 信息能力不对称
组成:
- 主数据库
- 同步服务器
- 嵌入式数据库
- 网络连接
嵌入式移动数据库比如满足数据一致性(复制性)、高校的事务处理以及数据的安全性等关键问题。
嵌入式操作系统EOS
特点:
- 微型化
- 代码质量高
- 专业化
- 实时性强
- 可裁减和可配置
实时操作系统RTOS
特点:能够接受并以足够快的速度予以处理,能够提供及时响应和高可靠性。
特征:高精度计时系统;多级中断机制;实时调度机制
嵌入式实时系统中,要求系统在投入运行前即具有确定性和可预测性。
- 可预测性:在运行之前,其功能、响应特性和执行结果是可预测的。
- 确定性:系统在给定的初试状态和输入条件下,在确定的时间内给出确定的结果。
嵌入式软件设计
嵌入式软件开发是一个典型的交叉平台开发环境,包含三个高度集成的部分
- 运行在宿主机和目标机上的强有力的交叉开发工具和实时程序
- 运行在目标机上的高性能、可裁剪的实时操作系统
- 连接宿主机和目标机的多种通信方式。
特点:
- 交叉编译:在一个平台上生成可以在另一个平台上执行的代码。(嵌入式系统的开发需要借助宿主机【通用计算机】来编译出目标机的可执行代码)
- 交叉调试:调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中,二者通过串口或者网络进行通信。
软件开发工具
-
嵌入式软件开发阶段:编码、交叉编译、交叉调试
-
编辑器:用于编写嵌入式源代码程序,比如keil
-
编译器gcc:根据源代码交叉编译生成可执行的目标文件
-
调试器gdb:调试器运行在宿主机上,被调试程序运行在目标机上。二者通过通信(串口、并口、网络、JTAG)等方式建立联系。
后记
生活中真正的勇士向来默默无闻,喧哗不止的永远是自视高贵的一群。——————路遥《平凡的世界》
评论