1、单片机系统基础软件架构
在单片机编程中,裸机系统和多任务系统是两种最基础的软件架构模式,此外还有一些结合两者特点的中间形态或经典变种。
2、裸机系统(Bare Metal System)
裸机系统是指不运行操作系统,直接在硬件上编写程序的架构,程序裸机通过主循环或中断协作完成。
核心特点:
- 结构简单:通常由“主循环+中断服务程序”组成,无任务调度器。
- 资源占用低:无需为操作系统分配内存资源。
- 实时性可控:程序执行路径固定。
- 开发门槛低:无需涉及操作系统。
典型实现方式:
1、轮询系统
- 在裸机编程的时候,先初始化好相关的硬件,然后让主程序在主循环中不断循环,顺序做各种事情。
2、前后台系统 - 在轮询系统的基础上加入了中断,外部事件的响应在中断中完成,事件的处理还是在轮询系统中完成。
- 前台:中断服务程序(外部中断、定时器等),一般只用来置起事件触发标志位。
- 后台:主循环(各项任务处理)
3、多任务系统
多任务系统基于实时操作系统或轻量化内核,将程序拆分为多个独立任务,由内核负责调度和资源管理。
相比于前后台系统,多任务系统的事件响应也是在中断中完成的,但是事件的处理是在任务中。
核心特点:
- 任务独立:每个任务都有自己的栈空间和执行逻辑。
- 抢占式调度:每个任务都存在优先级,调度器会根据任务优先级(静态或动态)决定执行顺序。
- 同步与通信:任务之间可以通过信号量、消息队列、共享内存、互斥锁等解决竞争。
- 可维护性强:功能模块化,便于维护和扩展。
4、软件框架图
想知道这几种系统框架的图该怎么画,但一直无从下手。