当前位置: 首页 > news >正文

用于时间触发的嵌入式软件的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的更高版本中完全可用,例如多处理器通信,任务保护和更正机制以及与其他编译器的接口。

相关文章:

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

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

wordpress插件-免费的wordpress全套插件

在当今数字化时代,网站和博客已经成为信息传递、观点分享和商业交流的重要平台。在这个背景下,WordPress作为最受欢迎的内容管理系统之一,无疑扮演着至关重要的角色。然而,要保持一个成功的WordPress网站,不仅需要出色…...

第一百五十七回 SliverList组件

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了沉浸式状态栏相关的内容,本章回中将介绍SliverList组件.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里介绍的SliverList组件是一种列表类组件,类似我们之前介绍过的L…...

数据结构与算法——17.二叉搜索树

这篇文章我们来看一下数据结构中的二叉搜索树。 目录 1.概述 2.二叉搜索树的实现 3.总结 1.概述 我们前面学到的数据结构,比如:动态数组、链表、队列、栈、堆,这些数据结构存储完数据后,我们要去查找某个数据,它的…...

rust所有权

一、堆和栈 栈和堆都是程序运行时使用的内存,但是它们的结构不同。 1.栈 栈,英文是stack。是内存的一段区域。 栈是后进先出形式的。就像薯片桶,先放进去的一片只能后拿出来。 栈上存储的数据大小必须是已知且固定的。也就是说如果一个变量…...

Win10电脑任务栏没有蓝牙图标的简单解决方法

Win10电脑任务栏没有蓝牙图标怎么办?在Win10电脑中,用户有时候会发现任务栏上没有蓝牙图标了,这样就无法通过蓝牙图标快速打开蓝牙服务了。下面小编给大家介绍最简单的解决方法,帮助大家找回任务栏上面的蓝牙图标吧。 问题原因 反…...

判断编译器类型、编译器版本、操作系统。

目录 1. 判断编译器类型: 2. 判断编译器版本: 3. 判断操作系统: 总结: 1. 判断编译器类型: 可以使用预定义的宏来判断编译器类型。例如,__GNUC__ 宏用于判断是否使用了GCC 编译器,_MSC_VER…...

百度实习一面(知识图谱部门)

百度面经(知识图谱部)一面 1.自我介绍 介绍完了,打开共享,对着简历一点一点问 2.ffmpeg在项目中是怎么使用的 回答了ffmpeg在项目中使用的命令,用来干了什么 3.为什么使用toml配置,了解过yml配置吗&am…...

Oracle 数据库查询优化

目录 1. Oracle 数据库查询优化(上百万级记录如何提高查询速度)2. Oracle SQL 性能优化 40 条 | 收藏了! 1. Oracle 数据库查询优化(上百万级记录如何提高查询速度) 对查询进行优化, 应尽量避免全表扫描, 首先应考虑在 where 及 order by 涉及的列上建立索引应尽量避免在 wher…...

时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测

时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序…...

Java技术接单

今天给大家介绍一个阶段性(周期性)能获取一定收益的Java技术接单群,分享给大家!主要对搞Java的粉丝有帮助,因为可以赚点小钱,对Java技术的要求不高! 注意:首先进群不是免费的&#…...

多家企业发布基于大模型的AI产品,大模型应用落地哪家强?

https://m.mp.oeeee.com/a/BAAFRD000020230603805161.html “无产业不AI,无应用不AI。” 随着AI(人工智能)大模型技术落地,AI应用遍地开花。连日来,多家企业发布基于大模型的AI应用产品。身处“百模大战”时代&#x…...

如何在小程序中获取用户昵称、电话号,头像

一、如何获取昵称(获取微信昵称)以Taro框架为例 Taro框架中的组件Input的一个属性,type属性的值有一个nickname. 如果要拿到input的值,是要value结合onChange事件。 type"nickname" value{nickName} onChange{(value: …...

26606-2011 工业用氰乙酸甲酯 阅读笔记

声明 本文是学习GB-T 26606-2011 工业用氰乙酸甲酯. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了工业用氰乙酸甲酯的要求、试验方法、检验规则、标志、包装、运输、贮存和安全。 本标准适用于以氯乙酸、氰化钠、甲醇等为原料…...

微软开源 windows-drivers-rs, 用 Rust 开发 Windows 驱动程序

目录 1. 微软开源 windows-drivers-rs, 用 Rust 开发 Windows 驱动程序 1. 微软开源 windows-drivers-rs, 用 Rust 开发 Windows 驱动程序 Microsoft Azure 首席技术官兼著名 Windows 软件开发人员 Mark Russinovich 在社交平台上宣布, 启动了一个名为 windows-drivers-rs 的新…...

Java中判断字符串是否为合法数字

问题 最近遇到需要将String转BigDecimal的场景。 解决思路 利用NumberUtils.isCreatable判断是否为合法数字,然后,对字符串进行数字转换。注意:这里的NumberUtils类是org.apache.commons.lang3.math库里面的类。 Java if (NumberUtils.i…...

[LeetCode] Hard-2251. 花期内花的数目 - 二分查找/有序数组

Problem: 2251. 花期内花的数目 2251. 花期内花的数目 思路解题方法Code 思路 看题目应该是一道比较经典的差分,本来准备拿差分数组做的,后来搂了一眼题解,发现用二分的方法更简单 解题方法 此题有一种很简便的方法,第i个人到…...

VUE3父子组件传值defineProps() 和 defineEmits()

defineProps 和 defineEmits 都是只能在<script setup>中使用的编译器宏。他们不需要导入&#xff0c;且会随着 <script setup> 的处理过程一同被编译掉。 官网传送门 父组件向子组件传值 defineProps 是 Vue3 中一种新的组件数据传递方式&#xff0c;可以用于在…...

OmniPlan Pro 4 for Mac:引领项目管理的创新与高效

OmniPlan Pro 4是一款强大且高效的项目管理工具&#xff0c;专为Mac用户设计。它提供了一套综合性的解决方案&#xff0c;帮助用户在Mac上便捷地进行项目规划、追踪和管理。凭借其直观的界面&#xff0c;用户可以快速上手&#xff0c;并且能充分利用这款工具的各种功能。 规划…...

封装JDBC,实现简单ORM框架

本文将封装JDBC的操作&#xff0c;实现简单的ORM框架&#xff0c;提供3种风格的api来给用户使用&#xff08;1.原生jdbcSqlBuilder&#xff1b;2.类似jpa和mp的&#xff1b;3.注解接口方法&#xff09; 代码仓库&#xff1a;malred/IFullORM 1. 原生JDBCsql构建器 第一步&…...

5分钟快速上手:用FanControl打造你的Windows电脑静音散热系统

5分钟快速上手&#xff1a;用FanControl打造你的Windows电脑静音散热系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tren…...

3大核心模块+5步实战指南:Betaflight飞控固件深度解析与配置方案

3大核心模块5步实战指南&#xff1a;Betaflight飞控固件深度解析与配置方案 【免费下载链接】betaflight Open Source Flight Controller Firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight Betaflight作为开源飞控固件的标杆&#xff0c;为多旋翼和固定…...

StreamCap:让直播录制变得如此简单的跨平台自动录制工具

StreamCap&#xff1a;让直播录制变得如此简单的跨平台自动录制工具 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/StreamC…...

YOLOv5锚框(anchor)自适应计算与实战调优指南

1. 为什么需要自定义YOLOv5锚框参数 第一次用YOLOv5跑自己的数据集时&#xff0c;我发现模型死活训不出好效果。明明用的是官方预训练权重&#xff0c;标注数据也检查过没问题&#xff0c;但AP值就是上不去。后来把预测结果可视化出来才发现问题——那些长条形物体&#xff08;…...

TINA-TI仿真实战:从运放振铃到电源设计的电路调试指南

1. 为什么我们需要TINA-TI仿真软件 作为一个在硬件设计领域摸爬滚打多年的工程师&#xff0c;我见过太多因为电路设计问题导致的返工案例。记得有一次&#xff0c;我们团队花了两周时间手工焊接的样机&#xff0c;上电后运放输出端出现了严重的振铃现象&#xff0c;不得不全部拆…...

十大类型学系统性阐释:自感痕迹论的发生学分类体系

十大类型学系统性阐释&#xff1a;自感痕迹论的发生学分类体系引言&#xff1a;类型学作为公理的微分展开一个完备的发生学体系&#xff0c;不应满足于对单一现象的孤立分类。它应当从少数基本公设出发&#xff0c;在不同分析层面自然衍生出互相关联又各具独立性的类型学。自感…...

JEB Pro 5.40 (macOS, Linux, Windows) - Android 反编译器和调试器

JEB Pro 5.40 (macOS, Linux, Windows) - 逆向工程平台 Reverse Engineering for Professionals. 请访问原文链接&#xff1a;https://sysin.org/blog/jeb/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org JEB Decompiler JEB 是逆向工程…...

告别编译警告!MDK AC6编译器下STM32Cube FreeRTOS工程的__packed等语法适配指南

ARM Compiler v6下STM32Cube FreeRTOS工程的零警告优化实战 当你从ARM Compiler v5切换到v6时&#xff0c;可能会发现原本运行良好的STM32CubeMX生成的FreeRTOS工程突然冒出几十个编译警告。这些黄色的小三角虽然不会阻止程序编译&#xff0c;但对于追求代码质量的开发者来说&a…...

嵌入式开发实战:手把手教你用U-Boot命令调试i.MX6ULL开发板(含网络/EMMC操作)

嵌入式开发实战&#xff1a;i.MX6ULL开发板U-Boot调试全攻略 1. 从零开始的硬件调试环境搭建 拿到i.MX6ULL开发板的第一件事&#xff0c;就是建立可靠的调试环境。不同于桌面开发&#xff0c;嵌入式系统往往需要通过串口与开发板交互。这里推荐使用USB转TTL模块连接开发板的调试…...

ExDark低光照图像数据集技术架构:构建真实世界低光照计算机视觉解决方案

ExDark低光照图像数据集技术架构&#xff1a;构建真实世界低光照计算机视觉解决方案 【免费下载链接】Exclusively-Dark-Image-Dataset Exclusively Dark (ExDARK) dataset which to the best of our knowledge, is the largest collection of low-light images taken in very …...