用于时间触发的嵌入式软件的IDE

news/2024/7/16 8:15:10 标签: ide

TTE Systems的RapidiTTy IDE为希望创建“时间触发”微控制器软件以提高整体系统可靠性的开发人员提供了一个独立的环境。RapidiTTy(下面的图1)旨在解决深度嵌入的应用,包括医疗,国防,汽车和工业部门以及白色和棕色商品中的控制和监视操作。

时间触发(TT)系统的关键特征是,开发人员在软件设计过程中定义系统在整个连续操作过程中的行为方式:即TT系统的行为是完全可预测的(例如,“此时,系统将运行任务X”)。

这样的系统不仅具有固有的可靠性,而且通过准确地知道任何给定的瞬间系统应该做什么,还可以采取其他步骤来监视甚至纠正与预期行为的偏差。嵌入式物联网学习路线领取

图1。RapidTTy:完整的独立IDE

这不同于更熟悉的“事件触发”(ET)系统的方法,在该方法中,软件开发人员定义系统应如何响应一组事件中的每一个。ET系统的行为充其量是通过统计确定的(例如,“在90%的时间中,考虑到这一系列先前的事件,系统应运行taskY”),但这并不是严格可预测的。因此,可以在设计时(和运行时)对系统行为进行不那么严格的检查。

目前,很明显,用于商业嵌入式软件设计的主流方法是基于ET原理的。这通常涉及与实时操作系统(RTOS)结合使用多个基于中断的事件处理程序。至少部分原因是因为传统上将ET方法视为更容易设计,甚至(可能)更节省资源。

之所以出现效率论点,是因为ET系统是需求驱动的,并且仅需要提供足够的处理资源来覆盖最坏情况,而最坏情况在统计上被认为是可能的。相比之下,提供TT系统以解决可能发生的最坏情况下的负载。

随着32位微控制器的出现以大约£0.50的价格出现,与最初做出许多RTOS设计决策的资源严重受限的8位系统相比,可用于大多数嵌入式系统的处理资源数量已显着增长。

因此,现在可以在以前认为这种方法不切实际的许多情况下使用时间触发设计。另外,TT设计通常将不需要RTOS,结果是切换到TT甚至可能导致资源需求降低(并且通常还减少了使用费)。

更正byC​​onstruction

这使开发时间不再适合 TT软件。许多学术研究都在研究这个问题。总而言之,这些研究得出的结论是,TT系统是“按构造正确”的,因此在开发阶段可能需要付出额外的努力。

相比之下,ET系统具有“通过校正构造”的特征:采用这种设计,初始构造可能相对简单,但是在测试和验证阶段可能会产生大量额外成本。

近年来,随着系统复杂性的增加,变得更加清晰的是,ET软件验证所需的时间增长到了这样的程度,对于许多项目而言,测试和调试所花的时间比初始代码开发所花的时间要多得多。

与ET方法的无限数量的代码和验证周期相比,开发时间触发的应用程序的关键步骤已明确定义:

1. 采用良好的设计规范,使单个任务符合TT准则

2. 确定每个任务的最大持续时间

3. 使用此信息来创建涵盖所有可能情况的总体处理计划。

这个开发过程很简单。这些步骤易于扩展,甚至适用于大型系统。但是,当前的工具无法协助完成此过程。

总体而言,考虑到过程性能的提高和TT系统开发技术的最新进步,希望通过TT技术手段提高系统可靠性的开发人员面临的主要挑战是缺乏适当的工具支持。

RapidiTTy是一个可简化TT设计过程的IDE。为了实现这一目的,IDE包括四个主要功能:首先,提供了一组设计模板。这些帮助用户非常容易地引入时间触发的设计功能。其次,IDE允许用户自动(从多个任务执行中)确定系统中任务的最大持续时间:然后将结果数据以可用于制定决策的形式呈现给用户。

这些数据也可以从IDE的不同形式(例如PDF或XML)中导出,以用于系统文档中。第三,IDE帮助用户选择适当的调度策略。最后,IDE创建一个资源节约型的运行时可执行文件。

RapidiTTy IDE基于Eclipse框架,最终将允许各种编译器,调试器和其他实用程序软件“插入”工具。第一个版本RapidiTTy Preview包括GNU / ARM工具链,OpenOCD和在Windows XP下运行。

RapidiTTy Preview为针对基于ARM7的微控制器的单处理器时间触发设计提供了完整的开发环境。该版本还包括许多高级功能的“预览”(即,受限使用评估),这些功能将在RapidiTTy Professional的更高版本中完全可用,例如多处理器通信,任务保护和更正机制以及与其他编译器的接口。


http://www.niftyadmin.cn/n/5057593.html

相关文章

AUTOSAR通信篇 - CAN网络通信(六:CanNm)

文章目录 功能介绍协调算法工作模式网络模式Repeat Message State(重复消息状态)Normal Operation State(正常运行/工作状态)Ready Sleep State(就绪睡眠状态) Prepare Bus Sleep Mode(预休眠模…

【DRAM存储器七】SDRAM介绍-part1

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考资料:《镁光SDRAM数据手册》、《PC SDRAM specification》 目录…

什么是DOM和DOM操作

什么是DOM? DOM(文档对象模型):HTML文档的结构化表示。允许JavaScript访问HTML元素和样式来操作它们。(更改文本,HTML属性甚至CSS样式) 树结构由HTML加载后自动生成 DOM树结构 这个是一个很简单的HTML代…

实用设计模式实战:工厂+策略(另一种实现)

本节主要的知识点InitializingBean接口和DependsOn注解 书接上回,我们要用设计模式改造这个if/else public static void main(String[] args){String type "common";operateByType(type);}private static void operateByType(String type) {if ("c…

第五章——文件内容显示

5.1 浏览普通文件内容 注意 以上命令的语法:命令 【option】所查文件名 set命令 显示5到10行的信息 [rootcomeon ~]#sed -n 5,10p /etc/passwd 5.2 过滤文件内容显示--grep 语法 grep 【option】... 关键字符串 所查文件名... 使用特殊符号进行字符串的匹配 5…

机器学习-特征选择:如何使用交叉验证精准选择最优特征?

一、引言 在机器学习任务中,选择最重要和相关的特征对于构建高性能的模型至关重要。特征选择旨在从原始数据中挑选出最具信息量和预测力的特征,以降低维度和噪声的影响,提高模型的泛化能力和效率。有效的特征选择可以帮助我们理解数据、简化模…

【STM32】sct 分散加载文件的格式与应用

简介 当工程按默认配置构建时,MDK 会根据我们选择的芯片型号,获知芯片的内部FLASH 及内部 SRAM 存储器概况,自动生成一个以工程名命名的后缀为*.sct 的分散加载文件(Linker Control File,scatter loading),链接器根据…

【C++11保姆级教程】深入浅出异常说明符、异常操作符和lambda表达式

文章目录 前言一、异常说明符1.1异常说明符是什么?1.2异常说明符的格式1.3异常说明符的优势 二、异常操作符2.1异常操作符是什么?2.2异常操作符的使用2.3优势 二、Lambda表达式2.1Lambda表达式是什么?2.2各个部分的意义2.3示例代码2.4优势 总…