嵌入式系软件架构

嵌入式系软件架构

嵌入式软件架构
嵌入式软件基础
嵌入式操作系统
1. 嵌入式软件基础

考点分析:嵌入式软件分类设备驱动层板级支持包引导加载程序设备驱动程序

1.1 嵌入式软件分类

嵌入式软件是指应用在嵌入式计算机系统当中的各种软件

  • 系统软件:控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件
  • 应用软件:嵌入式系统的上层软件,定义了嵌入式设备的主要功能和用途,并负责与用户交互,一般面向特定的应用领域
  • 支撑软件:辅助软件开发的工具软件
1.2 设备驱动层

设备驱动层又称为板级支持包BSP,包含了嵌入式系统中所有与硬件相关的代码,直接与硬件打交道,对硬件进行管理和控制,并为上层软件提供所需的驱动支持

BSP的基本思想是把嵌入式操作系统与具体的硬件平台隔离,即把所有与硬件相关的代码都封装起来,并向上提供一个虚拟的硬件平台,而操作系统就运行在这个虚拟的硬件平台上。它使用一组定义好的编程接口来与BSP进行交互,并通过BSP来访问真正的硬件

BSP主要包括两个方面的内容:引导加载程序设备驱动程序

1.3 引导加载程序

引导加载程序是嵌入式系统加电后运行的第一段软件代码,是在操作系统内核运行之前运行的一小段程序,通过这段程序,初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置到一个合适的状态,以便为最终调用操作系统内核做好准备。包括以下功能

  • 片级初始化:主要完成微处理器的初始化
  • 板级初始化:主要完成微处理器以外的其他硬件设备的初始化
  • 系统级初始化:加载内核,将操作系统和应用程序的映像从Flash存储器复制到系统的内存当中,然后跳转到系统内核的第一条指令处继续执行
1.4 设备驱动程序

设备驱动程序就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口。

不同的硬件设备,功能不一样,所以他们的设备驱动程序也是不一样的,但大多数的设备驱动程序都会具备以下的基本功能

  • 硬件启动:开机上电或系统重启时,对硬件进行初始化
  • 硬件关闭:将硬件设置为关机状态
  • 硬件停用:暂停使用该硬件
  • 硬件启用:重新启用该硬件
  • 读操作:从硬件中读取数据
  • 写操作:往硬件中写入数据
2. 嵌入式操作系统

考点分析:嵌入式操作系统嵌入式实时操作系统多任务系统上下文切换BIT自检测微内核操作系统

2.1 嵌入式操作系统概述

嵌入式操作系统(EOS)是指用于嵌入式系统的操作系统,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通讯协议、图形界面、标准化浏览器等

嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。其特点如下:

– 系统内核小
– 专业性强
– 系统精简
– 高实时性
– 多任务的操作系统

2.2 嵌入式实时操作系统

嵌入式实时操作系统是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。在嵌入式实时系统中,要求系统在投入运行前即具有确定性和可预测性

实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作;软实时则只要按照任务的优先级,尽可能快地完成操作即可

实时操作系统的特征包括:

– 高精度计时系统
– 多级中断机制
– 实时调度机制

2.3 多任务系统上下文切换

在多任务系统中,上下文切换指的是当处理器的控制权由运行任务转移到另外一个就绪任务时所执行的操作。任务的上下文是任务控制块(TCB)的组成部分,记录着任务的寄存器、状态等信息。当运行的任务转为就绪、挂起或删除时,另外一个被选定的就绪任务就成为当前任务。上下文切换包括保存当前任务的状态,决定哪一个任务运行,恢复将要运行的任务的状态。保护和恢复上下文的操作是依赖特定的处理器的。上下文切换时间是影响嵌入式实时操作系统性能的一个重要指标

2.4 机内自检

在嵌入式实时系统中,通常用机内自检BIT(Built In Test)完成对故障的检测和定位。BIT一般包括以下四种

  • 上电BIT:系统上电时对所有硬件资源进行自检测的程序,拥有100%CPU控制权,可对系统中所有的硬件进行完整测试
  • 周期BIT:在系统运行的空闲时间,周期性对硬件进行检测,由于系统处于正常运行状态,测试程序必须采取非破坏性测试算法,对部分可测部件进行测试
  • 维护BIT:是在地面维护状态下,对系统硬件的部分或全部进行维护性测试,测试软件拥有100%CPU控制权,可对系统中所有的硬件进行完整测试
  • 启动BIT:是在系统维护或检修时进行,通过控制按钮等手段启动BIT,检查或确认硬件资源故障
2.5 微内核操作系统

微内核操作系统的基本思想是尽可能地将操作系统核心缩小,仅仅实现核心基础部分,如中断、并行调度等于硬件有关的部分,而策略、应用层次则面向用户,这样大量的代码就移向进程,因此其只是操作系统中最基本的部分。微内核可以支持多处理机运行,适用于分布式系统环境

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
嵌入式软件开发技术栈通常包括以下方面: 1. 编程语言:常用的嵌入式软件开发语言包括C、C++和汇编语言。C语言是最常用的嵌入式开发语言,因为它具有高效的执行速度和低级别的硬件访问能力。 2. 操作统:嵌入式统通常需要运行在实时操作统(RTOS)或者裸机环境下。常见的RTOS包括FreeRTOS、ThreadX和VxWorks等,它们提供了任务调度、内存管理和驱动支持等功能。 3. 微控制器和硬件平台:嵌入式软件开发需要选择适合的微控制器或硬件平台。常见的微控制器包括ARM Cortex-M列和PIC列等,而硬件平台可以是Arduino、Raspberry Pi等。 4. 驱动开发:嵌入式软件通常需要与外设进行交互,如传感器、执行器和通信设备等。驱动开发涉及到硬件接口层的编程,需要了解相关的通信协议和接口标准。 5. 嵌入式统架构:了解嵌入式统的架构是开发嵌入式软件的基础。这包括了解处理器架构、内存管理单元(MMU)和外设的工作原理等。 6. 调试和测试:嵌入式软件开发需要进行调试和测试,以确保软件的正确性和稳定性。这包括使用调试工具、代码覆盖率工具和性能分析工具等。 7. 版本控制和团队协作:嵌入式软件开发通常是团队协作的工作,使用版本控制统(如Git)可以方便团队成员之间的代码管理和协作。 请注意,以上只是嵌入式软件开发技术栈的一些方面,具体的技术栈可能会根据项目需求和行业特点有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安迪西嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值