arm体系结构总结笔记6-嵌入式软件系统

本文详细介绍了嵌入式软件系统结构,包括无操作系统和有操作系统的嵌入式软件,强调了循环轮转和中断两种实现方式。文章讨论了嵌入式操作系统的核心功能,如任务调度、存储管理、设备驱动程序以及中间件的角色。同时,阐述了嵌入式系统的设备驱动层,如板级支持包(BSP)和BootLoader的工作原理,还涵盖了嵌入式操作系统如VxWorks、Linux和UC/OS-II等。此外,文章还提到了实时操作系统、存储管理方式以及I/O设备管理,展示了嵌入式系统的多层次架构和管理机制。
摘要由CSDN通过智能技术生成
嵌入式软件的体系结构
    1:无操作系统的嵌入式软件:
        早期在嵌入式的应用范围主要集中在控制领域,硬件的配置比较低,嵌入式软件的设计主要以应用为核心,
        应用软件直接建立在硬件,没有
专门的操作系统,软件规模也很小。
        无操作系统的嵌入式软件主要采用循环轮转和中断两种实现方式。
        循环轮转方式
            循环轮转方式的基本设计思想是:把系统的功能分解为若干个不同的任务,放置在一个永不结束的循环语句中,
            按照时间顺序逐一执行。当程序执行完一轮后,又回到程序的开头重新执行,循环不断。

            循环轮转方式的程序简单,直观,开销小,可预测。循环轮转方式的软件系统只有一条执行流程和一个地址空间,
          不需要任何之间的调度和切换,其程序的代码都是固定的,函数之间的调用关系也是明确的,整个系统的执行可预测。

            循环轮转方式的缺点是程序必须按顺序执行,无法处理异步事件,缺乏并行处理的能力。缺乏硬件上的时间控制机制,
            无法实现定时功能。

        中断方式
            中断方式又称为前后台系统形式,系统在循环轮转方式的基础上增加了中断处理功能。
            ISR中断服务程序负责处理异步时间,即前台程序,也称为时间处理程序。而后台程序是一个系统管理

            调度程序,一般采用的是一个无限循环形式,负责掌管整个嵌入式系统软,硬件资源的分配,管理以及任务的调度。
            后台程序也称为任务级程序,一般情形下,后台程序会检查每个任务是否具备运行条件,
            通过一定的调度算法来完成相应的操作。而一些对
实时性有要求的操作通常由中断服务程序来完成,
            大多数的中断服务程序只做一些最基本的操作,如标记中断事件的发生等,其余的事情会延迟到后台程序去完成。

    2:有操作系统的嵌入式软件
        嵌入式操作系统在嵌入式系统中的广泛应用使得在应用软件开发时,程序员不是直接面对嵌入式硬件设备,
        而是采用一些嵌入式软件开发环境,在操作系统的基础上编写程序。

        在控制系统中,采用前后台系统体系结构的软件在遇到强干扰时,可能会使应用程序产生异常,
        出错等从而造成系统的崩溃。而采用嵌入式操作系统管理的系统在遇到强干扰时,可能只会引起系统中的某一个进程被破坏,
        但这可以通过系统
的监控进程对其进行修复,系统具有自愈能力,不会造成系统崩溃。
嵌入式软件的结构层次
        最底层的是嵌入式硬件系统,包括嵌入式微处理器,存储器,键盘,LCD显示器等输入输出设备。
        硬件层之上的是设备驱动层,他负责与硬件直接打交道,并为操作系统层软件提供所需
的驱动支持。
        操作系统层可以分为基本部分和扩展部分,基本部分是操作系统的核心,
        负责整个系统的任务调度,存储管理,时钟管理,和中断管理等。
        扩展部分为用户提供网络,文件系统,图形用户界面等。

        操作系统的上一层是一些中间件。最上层是网络浏览器,电子邮件客户端等应用软件。

嵌入式系统的设备驱动
        嵌入式系统的设备驱动层用来完成嵌入式系统硬件设备所需的一些软件初始化和管理。
        设备驱动层直接对硬件进行管理和控制,并为上层软件提供所需的驱动支持。

    1:板级支持包
        设备驱动层也称为BSP(板级支持包),在BSP中把所有与硬件相关的代码都封装起来,为操作系统提供一个虚拟的硬件平台,
        操作系统运行在这个虚拟的硬件平台上。在BSP当中,使用一组定义好的编程接口来与BSP进行交互,
        并通过BSP来访问真正的硬件。在
嵌入式系统中,BSP类似于PC系统中的BIOS和驱动程序。
        BSP把嵌入式操作系统和硬件平台隔离开来。
通常BSP是针对某个特定的单板设计的,
        系统都会提供相应的演示版本的BSP,BSP对于系统开发人员是开放的,
        开发人员可以根据不同的硬件需求对其进行改动或二次开发。在实际开发一个嵌入式系统的时候,

        通常可以找到一个与自己硬件系统相近的演示版本的BSP,并以此为基础进行修改和完善,
        以适应不用单板的需求。BSP主要包括BootLoader和设备驱动程序两个方面的内容。

    2:BootLoader:
        Bootloader是在操作系统内核运行之前运行的一小段程序,通过这段程序,初始化硬件设备,建立内存空间的映射图,
        从而将系统的软硬件环境设置到一个合适的状态,以便最终为调用操作系统内核做好准备。
        BootLoader用来完成整个系统的加载启动任务。通常在系统上电或复位时,BootLoader程序
从地址0x00000000处开始执行。
        BootLoader的功能与嵌入式系统的硬件平台直接相关,不同的CPU体系结构和板级设备配置,BootLoader的功能不同。
        一般来说,BootLoader主要包括片级初始化,板级初始化和加载内核等基本功能。

        片级初始化
            片级初始化是一个纯硬件的初始化过程,把微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。
            片级初始化主要完成设置微处理的核心寄存器和控制寄存器,微处理器的核心工作模式及其局部总线模式等初始化。

        板级初始化
            板级初始化是一个同时包含有软件和硬件在内的初始化过程,
            通过正确地设置各种寄存器的内容来完成微处理器以外的其他硬件设备的初始化。

            如初始化LED显示设备,定时器,串口通信和内存控制器,建立内存空间的地址映射,
            设置中断控制寄存器和某些软件的数据结构和参数等。

        加载内核
            将操作系统和应用程序的映像从Flash存储器复制到系统的内存当中,然后跳转到系统内核的第一条指令处继续执行。
    3:设备驱动程序
            在一个嵌入式系统中,可以没有操作系统,但设备驱动程序是必不可少的。
            设备驱动程序是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供访问接口。

            不同功能的硬件设备,他们的设备驱动程序是不同的。但大多数的设备驱动程序都具有硬件启动,
            硬件关闭,硬件停用,硬件启用,读操作,写操作等基本功能。

            设备驱动程序通常可以完成一些特定的功能,这些功能一般采用函数的形式来实现,
            这些函数有分层结构和混合结构两种组织结构形式。

        分层结构
            设备驱动程序中的函数分为硬件接口和调用接口两种类型,硬件接口直接跟硬件打交道,直接去操作和控制硬件设备。
            调用接口不直接与硬件打交道,他们调用硬件接口当中的函数,与上层软件如操作系统中间件和应用软件打交道。
            分层结构
把所有与硬件有关的细节都封装在硬件接口当中,在硬件升级时,只需要改动硬件接口当中的函数即可。
        混合结构
            上层接口和硬件接口的函数是混在一起的,相互调用,之间没有明确的层次关系。
        嵌入式中间件
            中间件是一种软件平台技术,是指不包括操作系统内核,设备驱动程序和应用软件在内的所有系统软件。
            嵌入式中间件把原本属于应用软件层的一些通用的功能模块抽取出来,形成
独立的一层软件,
            为应用软件提供一个灵活,安全移植性好的平台。

            嵌入式中间件可以分为消息中间件,对象中间件,远程过程调用等不同的类型。
            一些公司可提供嵌入式中间件集成解决方案,如Sun公司的嵌入式Java
嵌入式操作系统基础
    嵌入式系统中工作的操作系统称为EOS,EOS的基本功能主要体现在以下两个方面
    1:构成一个易于编程的虚拟机平台
    EOS构成一个虚拟机平台,EOS把底层的硬件细节封装起来,
    为运行在它上面的软件如中间件软件和各种应用软件提供了一个抽象的编程接口。

    软件开发在这个编程接口上进行,而不直接与硬件层打交道。
    EOS所提供的变成接口实际上就是操作系统对外提供的系统调用函数。

    2:系统资源的管理者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值