如何设计适用于时间触发的嵌入式系统调度器?

2026-05-27 13:420阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计7346个文字,预计阅读时间需要30分钟。

如何设计适用于时间触发的嵌入式系统调度器?

一、超级循环+简单嵌入式系统使用的软件结构都是一种超级循环的形式,如下源程序所示:

1

一、超级循环

许多简单的嵌入式系统所使用的软件结构都是一种超级循环的形式,如下源程序清单所示:

1 #include "x.h" 2 3 void main (void) 4 { 5 X_Init(); //准备任务X 6 while(1) //“死循环,也叫超级循环” 7 { 8 x(); //执行任务 9 } 10 }

超级循环结构的主要优点是:

1、简单,因此易于理解;

2、几乎不占用系统存储器或CPU资源。

超级循环占用很少的存储器和处理器资源是因为它们几乎不为开发人员提供什么功能。

尤其是这种结构,它很难在精确的时间间隔执行任务X。这种限制是一个非常大的缺点。

例如:考虑从一系列不同的嵌入式项目汇集的许多要求(没有特别的前后顺序):

  • 必须以0.5s间隔测量汽车的当前速度。
  • 每秒必须刷新显示40次。
  • 计算出来的新的油门位置必须每隔0.5s输出。
  • 必须每秒执行20次时间-频率变换。
  • 如果已经发出警报,则必须在20分钟之后关掉(法律上的要求)。
  • 当前门被打开时,如果在30s内没有输入正确的口令,则必须发出警报。
  • 必须每秒釆样1 000次发动机振动数据。
  • 必须每秒执行20次频域数据分类。
  • 必须每200ms扫描一次键盘。
阅读全文

本文共计7346个文字,预计阅读时间需要30分钟。

如何设计适用于时间触发的嵌入式系统调度器?

一、超级循环+简单嵌入式系统使用的软件结构都是一种超级循环的形式,如下源程序所示:

1

一、超级循环

许多简单的嵌入式系统所使用的软件结构都是一种超级循环的形式,如下源程序清单所示:

1 #include "x.h" 2 3 void main (void) 4 { 5 X_Init(); //准备任务X 6 while(1) //“死循环,也叫超级循环” 7 { 8 x(); //执行任务 9 } 10 }

超级循环结构的主要优点是:

1、简单,因此易于理解;

2、几乎不占用系统存储器或CPU资源。

超级循环占用很少的存储器和处理器资源是因为它们几乎不为开发人员提供什么功能。

尤其是这种结构,它很难在精确的时间间隔执行任务X。这种限制是一个非常大的缺点。

例如:考虑从一系列不同的嵌入式项目汇集的许多要求(没有特别的前后顺序):

  • 必须以0.5s间隔测量汽车的当前速度。
  • 每秒必须刷新显示40次。
  • 计算出来的新的油门位置必须每隔0.5s输出。
  • 必须每秒执行20次时间-频率变换。
  • 如果已经发出警报,则必须在20分钟之后关掉(法律上的要求)。
  • 当前门被打开时,如果在30s内没有输入正确的口令,则必须发出警报。
  • 必须每秒釆样1 000次发动机振动数据。
  • 必须每秒执行20次频域数据分类。
  • 必须每200ms扫描一次键盘。
阅读全文