一系列开箱即用支持的功能
已清理C99
C99的清理版本有助于避免低级错误。对于例如,不支持预处理器及其所有一流的概念支持合法使用比如一个健壮的模块系统。mbeddr还支持本地人布尔值类型,强制使用size-aware整型,还有一个清理过的函数类型、函数指针和lambdas的语法。
报告和日志记录
报告和日志记录对于嵌入式应用程序很重要。mbeddr包含用于报告程序事件的丰富框架和记录数据。当他们使用标准错误默认情况下,两者都是可以重定向到任意其他系统,包括串行端口或错误存储。可以使用有选择地禁用日志语句运行时占用空间为零。
测试
测试在嵌入式软件中非常重要。在mbeddr中,测试用例是一流的概念,它们支持一组不同的断言声明。可以将测试分组为套件并调用,从报告数字的主功能操作系统的故障主要的的返回值。还可以为组件语言。
物理单位
许多嵌入式系统处理来自现实世界的数量,mbeddr附带了物理单位的扩展,以帮助表示这些量。类型和文字都可以用单位进行注释。七个国际单位是预定义,用户可以定义自己的派生或可转换单位。类型系统使用这些单元进行计算,并在IDE中报告错误。运行时开销为零,因为生成的代码没有单元的表示。
状态机
基于状态的行为在嵌入式软件中普遍存在。mbeddr本机支持具有事件、变量、状态和带有保护的转换。国家有入境、出境和做动作,过渡也可以有动作。状态机可以是分层的并使用ε跃迁。状态机可以从C代码及其自身触发在操作中与C代码交互。状态机可以编辑为文本和表格,并且可以可视化。可通过模型检查进行验证。
接口和组件
模块化对于构建灵活、可测试和可维护的软件至关重要。为此,mbeddr支持与合同(前置和后置条件、协议状态机)。与AUTOSAR类似,组件可以提供或要求接口。可以在运行时或静态地验证合同。组件支持用于测试的模拟。转换为C可以以各种方式发生,其中一些开销很小。关系可以对接口和组件之间的关系进行可视化。
要求、追踪和文件
尽管目的是正式描述系统,但散文仍然发挥着重要作用。mbeddr支持捕获需求的语言它看起来像文档,但结构很好。任意DSL可以是以各种方式与需求混合。追踪任意设计、架构支持或实现元素。文档语言有助于创建代码集成文档,可导出为HTML或LaTeX。
产品线可变性
几乎所有嵌入式系统都是在产品线的背景下开发的。mbeddr支持描述可变性通过功能模型。检查要素模型配置是否符合特征模型中表示的约束。工件可以适应静态变量(通过存在条件)和运行时变量(通过专用switch语句)。存在条件可以覆盖在程序上用任何语言表达。
正式验证
mbeddr的高级DSL便于验证。mbeddr集成了几个验证工具,其中状态机的符号模型检查,合同分析用C代码的模型检查/数据流分析以及决策表和特征模型的SMT求解。输入到验证工具是由mbeddr语言生成的验证被提升到扩展级别。
执行和调试
程序可以直接从mbeddr IDE中执行。失败的断言(在测试用例中)超链接到导致失败的代码,简化了追踪测试中的问题。调试在延伸;例如,可以单步执行组件或状态机。扩展的低级实现没有显示出来。手表window知道mbeddr特定的类型。
IDE支持
mbeddr提供了最先进的IDE支持,包括语法着色、,代码完成、转到定义、实时类型系统检查、快速修复(意图)、,重构、可定制的查找用法,以及代码。这些功能适用于C、其扩展、需求和文档语言以及用户开发的所有语言或扩展。
版本控制
所有代码都存储在XML文件中,因此与主流代码集成版本控制系统,其中包括SVN和git。能够看到差异和合并冲突,mbeddr/MPS支持使用投影编辑器,适用于任何语法。此外,IDE支持绝大多数版本控制系统操作,如提交、,更新或还原更改。还提供了当地历史记录。