嵌入式软件开发(一)——嵌入式系统

前言:

  前一章主要介绍了电子信息技术的发展,我们了解大规模数字集成电路的巅峰是CPU。CPU的主要应用方 向有服务器、PC电脑和各色嵌入式设备,这一章各节将主要介绍嵌入式系统,嵌入式软件、嵌入式操作系统等相关内容。

一、嵌入式系统简介

  什么是嵌入式系统?   嵌入式系统是以应用为核心。软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗等综合 性能严格要求的专用计算机系统。   所谓专用计算机系统是相对通用计算机系统(PC电脑)来说的,社会发展到今天,各行各业都可以看到 嵌入式系统的设备:飞机、汽车等智能控制,工厂自动化智能设备,家电、智能家居设备等。还有更多应用场景此处就不 一一列举。

二、嵌入式最小系统

  嵌入式系统从开发技术来说主要分嵌入式硬件系统和嵌入式软件,此处嵌入式最小系统是指能够使得主控 芯片(MCU、CPU)正常运行所需的最少必需器件的嵌入式硬件系统,下面介绍以 STM32L1xxx为主控MCU的嵌入式最小 系统。   MCU最小系统由①主控芯片,②复位电路,③时钟电路,④电源电路组成。同时一个基本完整的单片机功 能还应包括调试下载电路。下图为STM32L1xxx的最小系统的设计参考电路:

嵌入式最小系统

其中JTAG连接去是SWJ接口的下载调试电路,自举模式是通过拨码开关选择MCU的启动方式。

三、嵌入式软件开发

  嵌入式软件的开发可以根据系统的复杂程度分为嵌入式裸机程序开发和嵌入式操作系统开发。
  嵌入式裸机程序顾名思义,就是软件在MCU或CPU上裸奔,没有操作系统,所有应用程序只有一个处理流 程,从头跑到尾,没有多任务的概念。
  嵌入式操作系统开发是指软件采用嵌入式操作系统,基于操作系统进行相应设备应用的开发。比较常用的 嵌入式操作系统有Vxworks、μC/OS-II、FreeRTOS、嵌入式linux等。
  嵌入式操作系统从处理任务的时间可控性上可以分为实时操作系统和非实时操作系统。那是么是实时操作 系统?
  实时操作系统必须在已知的关键时间内完成关键操作,至少要在绝对大多数情况下在已知时间内完成关键 操作。部分这类操作包括操作系统调用和中断处理。完全满足在指定时间内完成关键性操作的实时操作系统,被称为“硬实 时”操作系统。大多数情况下能满足在指定时间内完成关键性操作的实时操作系统,被称为“软实时”操作系统。
  通俗点说就是实时系统优先级高的任务可以打断任务优先级低的任务,并且其处理的结果又能在规定的时 间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务。这里要声明一下,实时系统不是 即时系统,不是一个任务一定要立马执行,而是只要满足“软实时”的操作系统也属于实时系统。实时操作系统有很多, Vxworks、μC/OS-II、FreeRTOS等都是实时系统,而国产的嵌入式操作系统包括Alios Things、Huawei LiteOS、 RT-Thread、SylixOS等也都是实时系统。
  非实时系统主要是分时操作系统,多个任务是通过时间片轮询的执行,任务执行时间不可控,像linux属于 非实时系统。
  因此在操作系统的选择上,像卫星这类对任务相应时间有要求的场景选择实时系统,像PC、手机这类对任务 时间不可求的场景选择非实时系统,例如Android(Linux内核)、windows。

嵌入式软件开发(一)——嵌入式系统
https://leo-hou.github.io/2022/02/07/嵌入式软件开发(一)——嵌入式系统/
作者
Leo Hou
发布于
2022年2月7日
许可协议