嵌入式系统原理及开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 驱动层 –驱动层是直接与硬件打交道的一层,它对 板级初始化程序 操作系统和应用提供所需的驱动的支持。 – 与系统软件相关的驱动 这些程序在嵌入式系统上电后初始化系统的硬 该层主要包括三种类型的程序。
件环境,包括嵌入式微处理器、存储器、中断 – 与应用软件相关的驱动 • 这类驱动是操作系统和中间件等系统软件所 控制器、 DMA、定时器等的初始化。 需的驱动程序,它们的开发要按照系统软件 与应用软件相关的驱动不一定需要与操作系统
为软件开发的困难所在,直接影响到项目的成败。
嵌入式软件系统的分类
系统软件
控制、管理计算 பைடு நூலகம்系统的资源
嵌入式操作系统 嵌入式中间件(CORBA、 Java) 等等 系统分析设计工具 仿真开发工具 交叉开发工具 测试工具 配置管理工具 维护工具等 手机软件 路由器软件 交换机软件 飞控软件等
嵌 入 式 软 件
•
但却无法看到软件本身的形态,必须通过观察、分 本。所以对软件的质量控制,必须着重在软件开发 软件在生存周期后期不会因为磨损而老化,但会为 • 软件对硬件和环境有着不同程度的依赖性。这 析、思考、判断,才能了解它的功能、性能等特性 。 方面下工夫。 了适应硬件、环境以及需求的变化而进行修改,而 导致了软件移植的问题。 这些修改有不可避免的引入错误,导致软件失效率 • 软件的开发至今尚未完全摆脱手工作坊式的开 升高,从而使的软件退化。当修改的成本变得难以 发方式,生产效率低。 接受时,软件就被抛弃。
的要求进行。 连接,这些驱动的设计和开发由应用决定。 • 目前操作系统内核所需的硬件支持一般都已 集成在嵌入式微处理器中了,因此操作系统 厂商提供的内核驱动一般不用修改。
嵌入式软件系统的体系结构
• 操作系统层 – 操作系统层包括嵌入式内核、嵌入式 TCP/IP网络系统、嵌入式文件系统、嵌 入式GUI系统和电源管理等部分。 – 其中嵌入式内核是基础和必备的部分, 其他部分要根据嵌入式系统的需要来确 定。
嵌入式软件系统的体系结构
• 应用层 – 应用层软件主要由多个相对独立的应用 任务组成 – 每个应用任务完成特定的工作,如I/O任 务、计算的任务、通信任务等,由操作 系统调度各个任务的运行。
嵌入式软件运行流程
上电复位 板级初始化 远程升级 系统升级 本地升级 系统初始化
引导/升级系统
应用初始化
•基于多任务操作系统的嵌入 式软件的主要运行流程 •该运行流程主要分为5个阶段
嵌入式系统原理及开发
第六讲 嵌入式软件系统基础
主要内容
• 嵌入式软件系统概述 • 嵌入式操作系统 • 嵌入式应用软件-Java
第一节 嵌入式软件系统概述
软件系统 嵌入式软件系统的分类 嵌入式软件系统的体系结构 嵌入式软件运行流程
软件系统
•
软 件 (software) 是 计 算 机 系 统 中 与 硬 件 (hardware) 相互依存的另一部分,它包括 程序 (program) 、相关数据 (data) 及其说明 文档(document)。 其中:
软件是复杂的,而且以后会更加复杂。 • 软件的成本相当昂贵。 软件是人类有史以来生产的复杂度最高的工业产品。 软件涉及人类社会的各行各业、方方面面,软件开 • 软件工作牵涉到很多社会因素。 软件开发需要投入大量、高强度的脑力劳动,成本
•
发常常涉及其它领域的专门知识,这对软件工程师 非常高,风险也大。现在软件的开销已大大超过了 许多软件的开发和运行涉及机构、体制和管理方式等问题, 提出了很高的要求。 硬件的开销。 还会涉及到人们的观念和心理。这些人的因素,常常成
嵌入式软件系统的体系结构
• 中间件层 – 目前在一些复杂的嵌入式系统中也开始 采用中间件技术,主要包括嵌入式 CORBA、嵌入式Java、嵌入式DCOM和 面向应用领域的中间件软件。 – 如基于嵌入式CORBA的应用于软件无线 电台的应用中间件SCA(Software Core Architecture)等。
返回
• CPU芯片级的初始化:中断控制器、内存 等的初始化。
嵌入式软件运行流程
• 系统引导/升级阶段 – 根据需要分别进入系统软件引导阶段或 系统升级阶段。 – 软件可通过测试通信端口数据或判断特 定开关的方式分别进入不同阶段。
嵌入式软件运行流程
• 系统引导阶段
系统引导有几种情况: – 将系统软件从NOR Flash中读取出来加载到 RAM中运行:这种方式可以解决成本及Flash 速度比RAM慢的问题。软件可压缩存储在 Flash中。 – 不需将软件引导到RAM中而是让其直接在 NorFlash上运行,进入系统初始化阶段。 – 将软件从外存(如NandFlash、CF卡、MMC 等)中读取出来加载到RAM中运行:这种方 式的成本更低。
支撑软件
辅助软件开发的 工具
应用软件
面向应用领域
嵌入式软件系统的分类
•
从运行平台来分,嵌入式软件可以分为
–
–
运行在开发平台上的软件 :设计、开发、测试 工具等。
运行在嵌入式系统上的软件:嵌入式操作系统、 应用程序、驱动程序及部分开发工具。
嵌入式软件系统的体系结构
应用 任务1 应用 任务2
应用层
……
多任务应用
嵌入式软件运行流程
• 上电复位、板级初始化阶段
– 嵌入式系统上电复位后完成板级初始化工作。 – 板级初始化程序具有完全的硬件特性,一般 采用汇编语言实现。不同的嵌入式系统,板 级初始化时要完成的工作具有一定的特殊性, 但以下工作一般是必须完成的:
• CPU中堆栈指针寄存器的初始化。
• BSS段(Block Storage Space表示未被初 始化的数据)的初始化。
程序 是按照事先设计的功能和性能要求执行的 指令序列; – 数据是程序能正常操纵信息的数据结构; – 文档 是与程序开发维护和使用有关的各种图文 资料。
–
软件系统
软 件 产 品 的 特 性 软件是一种逻辑实体,具有抽象性。 • 软件没有明显的制造过程。 这个特点使它与其它工程对象有着明显的差异。人 们可以把它记录在纸上、内存、和磁盘、光盘上, • 软件在使用过程中,没有磨损、老化的问题。 一旦研制开发成功,就可以大量拷贝同一内容的副
应用 任务n
中间件层
嵌入式 CORBA 嵌入式 JAVA 嵌入式 DCOM 面向应用领域 的中间件
TCP/IP 网络系统
操作系统层
文件 系统 内核
电源 管理
嵌入式 GUI
驱动层
板级 FLASH RTC/定 初始化 驱动 时器驱动
串口 驱动
以太网 驱动
LCD 驱动
键盘 驱动
其他 驱动
硬件
嵌入式软件系统的体系结构
件环境,包括嵌入式微处理器、存储器、中断 – 与应用软件相关的驱动 • 这类驱动是操作系统和中间件等系统软件所 控制器、 DMA、定时器等的初始化。 需的驱动程序,它们的开发要按照系统软件 与应用软件相关的驱动不一定需要与操作系统
为软件开发的困难所在,直接影响到项目的成败。
嵌入式软件系统的分类
系统软件
控制、管理计算 பைடு நூலகம்系统的资源
嵌入式操作系统 嵌入式中间件(CORBA、 Java) 等等 系统分析设计工具 仿真开发工具 交叉开发工具 测试工具 配置管理工具 维护工具等 手机软件 路由器软件 交换机软件 飞控软件等
嵌 入 式 软 件
•
但却无法看到软件本身的形态,必须通过观察、分 本。所以对软件的质量控制,必须着重在软件开发 软件在生存周期后期不会因为磨损而老化,但会为 • 软件对硬件和环境有着不同程度的依赖性。这 析、思考、判断,才能了解它的功能、性能等特性 。 方面下工夫。 了适应硬件、环境以及需求的变化而进行修改,而 导致了软件移植的问题。 这些修改有不可避免的引入错误,导致软件失效率 • 软件的开发至今尚未完全摆脱手工作坊式的开 升高,从而使的软件退化。当修改的成本变得难以 发方式,生产效率低。 接受时,软件就被抛弃。
的要求进行。 连接,这些驱动的设计和开发由应用决定。 • 目前操作系统内核所需的硬件支持一般都已 集成在嵌入式微处理器中了,因此操作系统 厂商提供的内核驱动一般不用修改。
嵌入式软件系统的体系结构
• 操作系统层 – 操作系统层包括嵌入式内核、嵌入式 TCP/IP网络系统、嵌入式文件系统、嵌 入式GUI系统和电源管理等部分。 – 其中嵌入式内核是基础和必备的部分, 其他部分要根据嵌入式系统的需要来确 定。
嵌入式软件系统的体系结构
• 应用层 – 应用层软件主要由多个相对独立的应用 任务组成 – 每个应用任务完成特定的工作,如I/O任 务、计算的任务、通信任务等,由操作 系统调度各个任务的运行。
嵌入式软件运行流程
上电复位 板级初始化 远程升级 系统升级 本地升级 系统初始化
引导/升级系统
应用初始化
•基于多任务操作系统的嵌入 式软件的主要运行流程 •该运行流程主要分为5个阶段
嵌入式系统原理及开发
第六讲 嵌入式软件系统基础
主要内容
• 嵌入式软件系统概述 • 嵌入式操作系统 • 嵌入式应用软件-Java
第一节 嵌入式软件系统概述
软件系统 嵌入式软件系统的分类 嵌入式软件系统的体系结构 嵌入式软件运行流程
软件系统
•
软 件 (software) 是 计 算 机 系 统 中 与 硬 件 (hardware) 相互依存的另一部分,它包括 程序 (program) 、相关数据 (data) 及其说明 文档(document)。 其中:
软件是复杂的,而且以后会更加复杂。 • 软件的成本相当昂贵。 软件是人类有史以来生产的复杂度最高的工业产品。 软件涉及人类社会的各行各业、方方面面,软件开 • 软件工作牵涉到很多社会因素。 软件开发需要投入大量、高强度的脑力劳动,成本
•
发常常涉及其它领域的专门知识,这对软件工程师 非常高,风险也大。现在软件的开销已大大超过了 许多软件的开发和运行涉及机构、体制和管理方式等问题, 提出了很高的要求。 硬件的开销。 还会涉及到人们的观念和心理。这些人的因素,常常成
嵌入式软件系统的体系结构
• 中间件层 – 目前在一些复杂的嵌入式系统中也开始 采用中间件技术,主要包括嵌入式 CORBA、嵌入式Java、嵌入式DCOM和 面向应用领域的中间件软件。 – 如基于嵌入式CORBA的应用于软件无线 电台的应用中间件SCA(Software Core Architecture)等。
返回
• CPU芯片级的初始化:中断控制器、内存 等的初始化。
嵌入式软件运行流程
• 系统引导/升级阶段 – 根据需要分别进入系统软件引导阶段或 系统升级阶段。 – 软件可通过测试通信端口数据或判断特 定开关的方式分别进入不同阶段。
嵌入式软件运行流程
• 系统引导阶段
系统引导有几种情况: – 将系统软件从NOR Flash中读取出来加载到 RAM中运行:这种方式可以解决成本及Flash 速度比RAM慢的问题。软件可压缩存储在 Flash中。 – 不需将软件引导到RAM中而是让其直接在 NorFlash上运行,进入系统初始化阶段。 – 将软件从外存(如NandFlash、CF卡、MMC 等)中读取出来加载到RAM中运行:这种方 式的成本更低。
支撑软件
辅助软件开发的 工具
应用软件
面向应用领域
嵌入式软件系统的分类
•
从运行平台来分,嵌入式软件可以分为
–
–
运行在开发平台上的软件 :设计、开发、测试 工具等。
运行在嵌入式系统上的软件:嵌入式操作系统、 应用程序、驱动程序及部分开发工具。
嵌入式软件系统的体系结构
应用 任务1 应用 任务2
应用层
……
多任务应用
嵌入式软件运行流程
• 上电复位、板级初始化阶段
– 嵌入式系统上电复位后完成板级初始化工作。 – 板级初始化程序具有完全的硬件特性,一般 采用汇编语言实现。不同的嵌入式系统,板 级初始化时要完成的工作具有一定的特殊性, 但以下工作一般是必须完成的:
• CPU中堆栈指针寄存器的初始化。
• BSS段(Block Storage Space表示未被初 始化的数据)的初始化。
程序 是按照事先设计的功能和性能要求执行的 指令序列; – 数据是程序能正常操纵信息的数据结构; – 文档 是与程序开发维护和使用有关的各种图文 资料。
–
软件系统
软 件 产 品 的 特 性 软件是一种逻辑实体,具有抽象性。 • 软件没有明显的制造过程。 这个特点使它与其它工程对象有着明显的差异。人 们可以把它记录在纸上、内存、和磁盘、光盘上, • 软件在使用过程中,没有磨损、老化的问题。 一旦研制开发成功,就可以大量拷贝同一内容的副
应用 任务n
中间件层
嵌入式 CORBA 嵌入式 JAVA 嵌入式 DCOM 面向应用领域 的中间件
TCP/IP 网络系统
操作系统层
文件 系统 内核
电源 管理
嵌入式 GUI
驱动层
板级 FLASH RTC/定 初始化 驱动 时器驱动
串口 驱动
以太网 驱动
LCD 驱动
键盘 驱动
其他 驱动
硬件
嵌入式软件系统的体系结构