嵌入式软件常用的几种代码架构

admin 2023年11月20日21:01:48评论24 views字数 1698阅读5分39秒阅读模式

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯


对于单片机程序来说,大家都不陌生,但是真正使用架构,考虑架构的恐怕并不多,随着程序开发的不断增多,架构是非常必要的。

一、时间片轮询法

介于前后台顺序执行法和操作系统之间的一种程序架构设计方案。

该设计方案需能帮助嵌入式软件开发者更上一层楼,在嵌入式软件开发过程中,若遇到以下几点,那么该设计方案可以说是最优选择,适用于程序较复杂的嵌入式系统;

目前的需求设计需要完全没有必要上操作系统。

任务函数无需时刻执行,存在间隔时间(比如按键,一般情况下,都需要软件防抖,初学者的做法通常是延时10ms左右再去判断,但10ms极大浪费了CPU的资源,在这段时间内CPU完全可以处理很多其他事情)

实时性有一定的要求。

该设计方案需要使用一个定时器,一般情况下定时1ms即可(定时时间可随意定,但中断过于频繁效率就低,中断太长,实时性差),因此需要考虑到每个任务函数的执行时间,建议不能超过1ms(能通过程序优化缩短执行时间则最好优化,如果不能优化的,则必须保证该任务的执行周期必须远大于任务所执行的耗时时间),同时要求主循环或任务函数中不能存在毫秒级别的延时。

嵌入式软件常用的几种代码架构

以下介绍两种不同的实现方案,分别针对无函数指针概念的朋友和想进一步学习的朋友。

1、无函数指针的设计方式

嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构

2、含函数指针的设计方式

嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构

二、操作系统

嵌入式操作系统EOS(Embedded OperatingSystem)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。

对于单片机来说,比较常用的有UCOS、FreeRTOS、RT-Thread Nano和RTX 等多种抢占式操作系统(其他如Linux等操作系统不适用于单片机)

操作系统和“时间片轮询法”,在任务执行方面来说,操作系统对每个任务的耗时没有过多的要求,需要通过设置每个任务的优先级,在高优先级的任务就绪时,会抢占低优先级的任务;操作系统相对复杂,因此这里不详细介绍了。

关于如何选择合适的操作系统(uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点:

  • uCOS:网上资料丰富,非常适合学习,但是在产品上使用则需要收费。

  • FreeRTOS:使用免费,因此很多产品都在用。

  • RT-Thread:国产物联网操作系统,有着十分丰富的组件,也免费,资料:RT-Thread文档中心。

  • RTX:为ARM和Cortex-M设备设计的免版税,确定性的实时操作系统。

借网上一张对比图:

嵌入式软件常用的几种代码架构

三、前后台顺序执行法

这是初学者们常用的程序框架设计方案,不用考虑太多东西,代码简单,或者对系统的整体实时性和并发性要求不高;初始化后通过while(1){}或for(;;){}循环不断调用自己编写完成的函数,也基本不考虑每个函数执行所需要的时间,大部分情况下函数中或多或少都存在毫秒级别的延时等待。

优点:对于初学者来说,这是最容易也是最直观的程序架构,逻辑简单明了,适用于逻辑简单,复杂度比较低的软件开发。

缺点:实时性低,由于每个函数或多或少存在毫秒级别的延时,即使是1ms,也会造成其他函数间隔执行时间的不同,虽然可通过定时器中断的方式,但是前提是中断执行函数花的时间必须短。当程序逻辑复杂度提升时,会导致后来维护人员的大脑混乱,很难理清楚该程序的运行状态。

嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构
嵌入式软件常用的几种代码架构


来源:https://blog.csdn.net/an520_/article/details/124877026




嵌入式软件常用的几种代码架构

嵌入式软件常用的几种代码架构

码上报名

谈思实验室AutoSec智能汽车安全攻防实训课程,11月,上海

更多文章

智能网联汽车信息安全综述

华为蔡建永:智能网联汽车的数字安全和功能安全挑战与思考

汽车数据合规要点

车载以太网技术发展与测试方法

车载以太网防火墙设计

SOA:整车架构下一代的升级方向

软件如何「吞噬」汽车?

汽车信息安全 TARA 分析方法实例简介

汽车FOTA信息安全规范及方法研究

联合国WP.29车辆网络安全法规正式发布

滴滴下架,我却看到数据安全的曙光

从特斯拉被约谈到车辆远程升级(OTA)技术的合规

如何通过CAN破解汽

会员权益: (点击可进入)谈思实验室VIP会员


嵌入式软件常用的几种代码架构

嵌入式软件常用的几种代码架构

原文始发于微信公众号(谈思实验室):嵌入式软件常用的几种代码架构

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月20日21:01:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   嵌入式软件常用的几种代码架构http://cn-sec.com/archives/2223888.html

发表评论

匿名网友 填写信息