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

news2024/11/25 14:45:52

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.coloradmin.cn/o/1049612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Linux远程访问Windows下的MySQL数据库

1.建立Windows防火墙规则 首先需要开放windows防火墙,针对3306端口单独创建一条规则,允许访问。 打开windows安全中心防火墙与保护,点击高级设置 进入之后,点击入站规则,新建一条规则 新建端口入站规则 端口填写330…

【计算机网络】 基于TCP的简单通讯(客户端)

文章目录 流程伪代码代码实现加载库创建套接字连接服务端收发数据关闭套接字、卸载库 测试 流程伪代码 //1、加载库//2、创建套接字//3、连接服务端while(true){//4、发送数据//5、接收数据} //6、关闭套接字、卸载库代码实现 加载库 int err 0;WORD version MAKEWORD(2, 2…

表单控件拖拽平台都有哪些特点?

什么样的表单控件拖拽平台可以提升办公协作效率?在竞争激烈的当今社会,利用低代码技术平台的优势和特点,可以将企业内部的数据资源真正利用起来,帮助更多领域的客户朋友做出更有竞争优势的经营决策,实现数字化转型和流…

【Verilog 教程】6.3Verilog状态机

关键词:状态机,售卖机 有限状态机(Finite-State Machine,FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。状态机不仅是一种电路的描述工具,而且…

0x23根据地址读取内存服务

诊断仪从ECU通过起始地址和内存大小空间来读取指定内存的数据,高地址范围未使用到的字节用0x00去填充。 请求报文格式 肯定响应报文形式

Makefile 优化编译速度

Makefile 优化编译速度 编写一个通用的 Makefile 模板,用来实现任意工程的编译管理架构搭建。 这里我主要有两种想法: 1. 用一个 Makefile 管理所有的文件。所有的文件都放到最顶层的 Makefile 中,一次性直接加载所有的 .c 文件完成编译。 …

使用ElementUI结合Mock完成主页的搭建

目录 一、Mock ( 1 ) 讲述 ( 2 ) 作用 二、引用 三、主页搭建 学习后带来的收获 一、Mock ( 1 ) 讲述 Mock.js是一个用于前端开发中模拟数据的库。它可以帮助开发人员在前端开发过程中模拟接口返回的数据,从而实现前后端分离开发。Mock.js提供了一套简单易…

优维产品最佳实践:实例视图

背 景 模型可以定义很多的字段,当这些字段越来越多的时候,直接打开实例页面,会杂乱无章的呈现出来,对于用户来说无法快速的找到想要的信息,也不便于查看数据。而且并不是所有的字段都一定会录入了数据,常常…

软件测试/测试开发丨结对编程助手 GitHubCopilot

点此获取更多相关资料 简介 GitHub Copilot 是一款 AI 结对程序员,可帮助您更快、更少地编写代码。GitHub Copilot 由 GitHub、OpenAI 和 Microsoft 开发的生成式 AI 模型提供支持。它可作为 Visual Studio Code、Visual Studio、Neovim 和 JetBrains 集成开发环境…

Vovsoft Text Edit Plus 专业文本编辑器工具软件:简洁高效的创作利器

作为一名专业软件评测人员,我有幸使用了一款备受赞誉的文本编辑器工具软件——Vovsoft Text Edit Plus。在这篇评测中,我将客观、细致地分析它的实用性和使用场景,同时揭示它的优缺点,帮助您更好地了解这款软件。 第一部分&#x…

ROS2 从头开始:第 4 部分 - 使用 ROS2 组合构建强大的机器人系统

一、说明 组件编程是软件规模庞大后,有限的程序个体不能满足系统的动态扩张的系统设计方案。组件编程的首要用途就是计算机操作系统。而ROS2也是操作系统,动态扩大或缩减是必然存在的,因此需要组件实现。 组件编程的其它参考资料: 【BOOST C++】组件编程(…

01-http概述

HTTP概述 HTTP使用的是可靠地数据传输协议。HTTP属于应用层协议 Web客户端和服务器 web服务器:又称http服务器,用于存储web内容,并向web客户端提供web内容web客户端:用于请求web服务器的应用软件,常见为浏览器 资源…

Java实现word excel ppt模板渲染与导出及预览 LibreOffice jodconverter

Java Office 一、文档格式转换 文档格式转换是office操作中经常需要进行一个操作,例如将docx文档转换成pdf格式。 java在这方面有许多的操作方式,大致可以分为内部调用(无需要安装额外软件),外部调用(需…

SW线光源是真实的(点光源)

点光源在渲染下真实 点光源地板反射是对的

uni-app:获取元素宽高

效果 代码 这里我定义的宽为500px,高为200排序,控制台输出的结果是502,202。原因是我设置了上下左右宽度各为1px的border边框导致 核心代码分析 // const query uni.createSelectorQuery();表示创建了一个选择器查询实例。通过这个实例,你可以使用不同的方法来选择…

MYSQL——二、理论基础

Mysql 一、什么是数据库二、数据库管理系统(DBMS)三、数据库与文件系统的区别四、数据库技术构成及发展史1、技术构成2、发展史 五、常见数据库1、关系型数据库2、ACID原则3、关系型数据库的优缺点4、非关系型数据库5、非关系数据库的优点6、DBMS支持的数据模型7、运维对数据库…

C#中的for和foreach的探究与学习

一:语句及表示方法 for语句: for(初始表达式;条件表达式;增量表达式) {循环体 }foreach语句: foreach(数据类型 变量 in 数组或集合) {循环体 }理解 1.从程序逻辑上理解,foreach是通过指针偏移实现的(最初在-1位置,每循环一次,指针就便宜一个单位),而for循环是通

mac有必要用清理软件吗?有哪些免费的清理工具

当我们谈到Mac电脑时,很多人都会觉得它比Windows系统更加稳定和高效,也更不容易积累垃圾文件。但实际上,任何长时间使用的操作系统都会逐渐积累不必要的文件和缓存。那么,对于Mac用户来说,有必要使用专门的清理软件吗&…

十九,镜面IBL--BRDF积分贴图

再回顾下镜面部分的分割求和近似法 现在关注第二部分 最后可化为 也就是说,这两部分积分可以获得F0的系数和F0的偏差。 这两个值可以存储到BRDF积分贴图的RG部分。void main() { vec2 integratedBRDF IntegrateBRDF(TexCoords.x, TexCoords.y); FragColor …

react create-react-app v5 从零搭建(使用 npm run eject)

前言: 好久没用 create-react-app做项目了,这次为了个h5项目,就几个页面,决定自己搭建一个(ps:mmp 好久没用,搭建的时候遇到一堆问题)。 我之前都是使用 umi 。后台管理系统的项目 使用 antd-…