嵌入式软件系统概述

教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社


嵌入式软件系统

嵌入式软件系统概述

软件系统

  • 软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。

  • 软件产品的特性
    软件产品的特性

嵌入式软件系统的分类

  • 分类

  • 从运行平台来分,嵌入式软件可以分为

    • 运行在开发平台上的软件:设计、开发、测试工具等
    • 运行在嵌入式系统上的软件:嵌入式操作系统、应用程序、驱动程序及部分开发工具

嵌入式软件系统的体系结构

体系结构

驱动层

板级初始化程序、与系统软件相关的驱动、与应用软件相关的驱动

操作系统层

操作系统层包括嵌入式内核(基础)、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式GUI系统和电源管理等部分

中间件层

目前在一些复杂的嵌入式系统中也开始采用中间件技术,主要包括嵌入式CORBA、嵌入式Java、嵌入式DCOM和面向应用领域的中间件软件

应用层

主要由多个相对独立的应用任务组成,每个应用任务完成特定的工作,如I/O任务、计算的任务、通信任务等,由操作系统调度各个任务的运行

嵌入式软件运行流程

基于多任务操作系统的嵌入式软件的主要运行流程,该运行流程主要分为5个阶段

上电复位、板级初始化阶段

  • 板级初始化程序具有完全的硬件特性,一般采用汇编语言实现

  • 不同的嵌入式系统,板级初始化时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的:

    • CPU中堆栈指针寄存器的初始化
    • BSS段(Block Storage Space表示未被初始化的数据)的初始化
    • CPU芯片级的初始化:中断控制器、内存等的初始化

系统引导/升级阶段

根据需要分别进入系统软件引导阶段或系统升级阶段

  • 系统引导阶段

  • 系统升级阶段

    进入系统升级阶段后系统可通过网络进行远程升级或通过串口进行本地升级

系统初始化阶段

系统初始化阶段需要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作

应用初始化阶段

在该阶段进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工作

多任务应用运行阶段

各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能