Program Spectra Analysis in Embedded Software: A Case Study
由于市场的限制,消费电子产品中的嵌入式软件几乎不可避免地带有故障,目标只是在产品发布之前将固有的不可靠性降低到可接受的水平。自动故障诊断是一种有价值的工具,可以捕获软件故障,而无需花费额外的精力进行测试。除了在设计和集成时的调试辅助之外,故障诊断还可以帮助分析操作期间的问题,从而实现更准确的系统恢复。在本文中,我们将讨论应用一个特定的故障诊断技术,即程序谱分析,在消费电子设备的嵌入式软件领域的前景和局限性。我们说明了我们的第一次经验,从行业的测试案例。
2006-07-26 cs.SE
EmbedGenius: Towards Automated Software Development for Generic Embedded IoT Systems
City University of Hong Kong(香港城市大学);Shandong University(山东大学)
EmbedGenius通过结合大语言模型和嵌入式系统知识,实现了通用嵌入式物联网系统的自动化软件开发,显著提升了代码生成准确率和任务完成成功率。
2025-12-04 cs.AI cs.SE cs.SY
Temporal HAL-API Dependencies as a Gateway to Formal Embedded Software Development
Hahn-Schickard Institute(汉-席克哈德研究所);University of Freiburg(弗赖堡大学);German Aerospace Center(德国航空航天中心)
本文提出时间HAL-API依赖关系作为形式化方法在嵌入式软件开发中的应用桥梁,通过规范和验证相结合的方法提升正确性保障。
2025-12-14 cs.SE
SMT-Based Bounded Model Checking for Embedded ANSI-C Software
命题有界模型检验已成功地应用于嵌入式软件的验证,但受到命题公式大小增加和翻译过程中结构丢失的限制。这些限制可以通过在比命题逻辑更丰富的理论中编码字级信息并使用SMT求解器来生成验证条件来减少。在这里,我们调查不同的SMT求解器的应用程序的验证嵌入式软件编写的ANSI-C。我们扩展了以前基于SMT的有界模型检查器的编码,为有限变量、位向量操作、数组、结构、联合和指针提供更准确的支持。我们将CVC 3、Boolector和Z3求解器与CBMC前端集成,并使用标准软件模型检验基准和电信、控制系统和医疗设备的典型嵌入式应用对其进行评估。实验表明,我们的方法可以分析较大的问题,并大大减少验证时间。
2009-07-13 cs.SE
From Boolean Functional Equations to Control Software
Sapienza University of Rome(罗马第一大学)
针对软件合成中布尔关系K定义的函数方程,提出一种从OBDD表示生成C代码的算法,实现代码大小与OBDD相同且最坏情况执行时间为O(nr)。
2012-05-22 cs.LO cs.SE cs.SY
An architecture for enabling A/B experiments in automotive embedded software
A/B实验是数据驱动产品开发的一种已知技术,并已在面向Web的业务中证明了其价值。随着汽车行业的数字化,行业的重点正在转向软件。为了使汽车嵌入式软件不断改进,A/B实验被认为是一种重要的技术。然而,采用这种技术并非没有挑战。在本文中,我们提出了一个架构,使A/B测试在汽车嵌入式软件。该设计以系统的方式解决了汽车行业特有的挑战。从假设到实践,我们的架构也被应用于实践中运行相当大规模的在线实验。此外,案例研究的方法被用来比较我们的建议与国家的做法在汽车行业。我们发现我们的架构设计是相关的,并在汽车嵌入式软件中采用连续的A/B实验的努力适用。
2021-07-06 cs.SE
Agentic Pipelines in Embedded Software Engineering: Emerging Practices and Challenges
Chalmers University of Technology(查尔姆斯理工大学);University of Gothenburg(哥德堡大学)
本文探讨嵌入式软件工程中生成式AI的整合挑战与实践,通过专家访谈揭示代理流水线的发展与可持续采用策略。
2026-01-15 cs.SE
Embedded DevOps: A Survey on the Application of DevOps Practices in Embedded Software and Firmware Development
本综述综合20个来源,探讨DevOps原则在嵌入式系统与固件开发中的适应性,分析工具、测试、自动化与安全实践,并指出部署与可观测性局限,提出未来研究路线图。
2025-07-01 cs.SE
SCALL: Software Component Allocator for Heterogeneous Embedded Systems
在异构计算平台上分配软件组件涉及硬决策;处理具有特定处理范例的不同类型的计算单元和需要特定资源的许多软件组件。在早期设计阶段探索设计空间以向系统架构师提供部署备选方案的分配方法可以对底层平台的利用率产生重大影响。在本文中,我们提出了SCALL,早期的原型工具,它使用的加权多目标设计空间探索,以支持系统架构师在复杂的分配决策在早期设计阶段的知识和层次分析法。
2016-12-31 cs.SE
More Software Analytics Patterns: Broad-Spectrum Diagnostic and Embedded Improvements
软件分析是一种数据驱动的决策方法,它允许软件从业者利用有关软件的数据中的宝贵见解,以实现更高的开发过程生产力,并提高软件质量的各个方面。在以前的工作中,通过文献回顾确定了一组采用精益软件分析过程的模式。本文提出了两种模式添加到原来的设置,形成一个模式语言,采用软件分析的做法,旨在通知决策活动的软件从业者。这两个模式的写作是由两个案例研究的软件分析实践的背景下采用的解决方案,并通过搜索它们在文献中的出现进一步验证的模式。当团队没有专业知识来理解软件分析可以帮助解决的问题时,广谱诊断模式建议基于通用指标进行更广泛的分析;嵌入式改进模式建议将改进任务作为其他日常活动的一部分。
2022-01-10 cs.SE
Automated System-Level Software Testing of Industrial Networked Embedded Systems
嵌入式系统无处不在,在工业和交通管理系统中发挥着关键作用。这些领域中的软件故障可能导致生产损失甚至生命损失,因此这些系统中的软件需要可靠。软件测试是嵌入式软件质量保证的标准方法,许多软件开发过程都在努力实现测试自动化。在成功的软件测试自动化所面临的众多挑战中,本文解决了五个问题:(i)了解更新的软件如何到达测试环境,测试如何在测试环境中进行,以及测试结果如何到达最初更新软件的开发人员;(ii)在给定的可用时间和测试系统的约束下,选择哪些测试用例在测试套件中执行;(iii)假定测试用例在连接的设备的不同配置上运行,则选择哪个硬件用于要执行的每个测试用例;(iv)分析当随时间在演进的软件、测试件或硬件修订版上执行时看起来随机失败的测试用例;以及(v)利用测试结果探索和可视化使测试结果信息可操作。应对这些挑战的方式有几种。[摘要被截断。]
2021-11-16 cs.SE
Continuous Verification of Large Embedded Software using SMT-Based Bounded Model Checking
嵌入式系统中软件的复杂性在过去几年中显著增加,因此软件验证现在在确保整体产品质量方面起着重要作用。在这种背景下,基于SAT的有界模型检验被成功地应用于发现细微的错误,但对于更大的应用,它往往遭受状态空间爆炸问题。本文介绍了一种新的方法,称为连续验证,以检测设计错误,尽快通过查看软件配置管理(SCM)系统,并结合动态和静态验证,以减少状态空间进行探索。我们还给出了一组编码,提供准确的支持程序验证,并使用不同的背景理论,以提高可扩展性和精度在一个完全自动的方式。从电信领域的案例研究表明,所提出的方法提高了错误检测能力,并减少了高达50%的整体验证时间。
2009-11-19 cs.SE
Learning-Based Automatic Synthesis of Software Code and Configuration
Texas A&M University(得克萨斯农工大学)
本文提出将大规模软件自动生成与配置分解为基于输入输出规范的程序合成和基于序列到序列深度学习的配置合成两大任务,并分别采用神经网络驱动的遗传算法、协方差矩阵自适应进化策略及深度学习机制加以解决。
2023-05-30 cs.AI cs.SE
EmbC-Test: How to Speed Up Embedded Software Testing Using LLMs and RAG
Technical University of Munich(慕尼黑工业大学);Munich Institute of Robotics and Machine Intelligence (MIRMI)(慕尼黑机器人与智能研究所);Hydac Software GmbH(海达克软件有限公司)
本文提出利用LLMs和RAG技术,通过生成自动测试用例,显著提高嵌入式软件测试效率,节省66%的测试时间并每小时生成270个测试用例。
2026-03-10 cs.SE
Large Language Models Based Automatic Synthesis of Software Specifications
Texas A&M University(德州农工大学);Intel Labs(英特尔实验室)
本文提出SpecSyn框架,首次利用大语言模型以序列到序列方式从自然语言文本中端到端自动综合软件规格,F1分数比现有最佳工具提升21%。
2023-04-18 cs.AI cs.SE
Developing a Practical Reactive Synthesis Tool: Experience and Lessons Learned
我们总结了我们的经验,开发和使用白蚁,第一个反应合成工具,旨在使用软件开发从业者。我们确定的主要障碍,使反应合成软件开发人员和描述的关键功能,白蚁旨在克服这些障碍,包括一个强制性的C类规约语言,交互式源代码级调试器,和用户引导的代码生成器。根据我们应用Termite来合成真实世界的反应软件的经验,我们确定了反应合成技术的实际使用的几个注意事项。我们希望这些发现将有助于确定议程,为未来的研究实际的反应合成。
2016-11-23 cs.PL cs.SE
Rust for Embedded Systems: Current State, Challenges and Open Problems (Extended Report)
本文通过分析 2,836 个 Rust 嵌入式软件和 225 名开发者问卷,系统揭示了 Rust 在嵌入式领域的支持不足、SAST 工具失效及互操作性挑战。
2024-09-05 cs.CR cs.SE
Leveraging SystemC-TLM-based Virtual Prototypes for Embedded Software Fuzzing
针对现有嵌入式软件模糊测试方案耦合度高、缺外设支持、灵活性不足的问题,提出解耦模糊测试器与SystemC仿真器、关联外设行为的框架,支持外设互换与多虚拟原型对接,经多场景验证灵活性。
2025-09-01 cs.SE
Impacts of the Space Technology Evolution in the V\&V of Embedded Software-Intensive Systems
CubeSat-based超小型卫星由商用现货组件组成,并依赖于其结构和标准化接口。超小型卫星方面的一个挑战是调整验证和确认过程,以应对嵌入式软件日益增加的重要性,减少拟交付的人工制品,以降低成本和时间,同时仍符合国际标准。这项工作提出了一个真正的纳米卫星的OBDH软件嵌入在NanosatC-BR 2任务的发展所采取的战略分析。目的是讨论立方体卫星结构和接口的标准化对卫星综合系统验证和确认过程的影响,并强调“新空间时代”对使用现有验证和确认技术和方法的挑战。
2020-11-26 cs.OH cs.SE
Empowered and Embedded: Ethics and Agile Processes
在这篇文章中,我们专注于道德软件开发的结构方面,并认为道德的考虑需要嵌入到(敏捷)软件开发过程。事实上,我们认为软件开发的敏捷过程特别适合这种努力。首先,我们认为道德评估需要超越软件产品的使用,包括对软件本身的评估。这意味着软件工程师通过他们设计的产品的功能影响人们的生活。因此,软件工程师自己最能接近嵌入式价值。因此,我们把重点放在可能性实施道德审议已经存在的和完善的敏捷软件开发过程。我们的方法依赖于软件工程师在整个开发过程中做出自己的判断,以确保技术功能和道德评估能够得到充分的解决,以传输和培养理想的价值观和规范。我们认为,敏捷软件开发过程可能有助于道德审议的实施,原因有五个:1)敏捷方法被广泛传播,2)它们对扁平层次结构的强调促进了独立思考,3)它们对现有团队结构的依赖充当了深思熟虑的孵化器,4)敏捷开发增强了以对象为中心的技术伦理现实主义,最后,5)敏捷结构为深思熟虑提供了一个突出的终点。
2021-07-15 cs.CY cs.SE
Embedded Software Development with Digital Twins: Specific Requirements for Small and Medium-Sized Enterprises
本文通过访谈中小型企业,发现实时性要求、安全顾虑及硬件访问限制阻碍了软件在环开发,但数字孪生仍被视为提升质量与定制化的潜力所在。
2023-09-17 cs.SE
Model based system engineering approach of a lightweight embedded TCP/IP
嵌入式软件的使用正在迅速增长。互联网是一种不可或缺的服务,在许多领域都有广泛的应用。Internet是基于TCP/IP协议的,TCP/IP是一个非常重要的协议栈。尽管TCP/IP协议非常重要,但目前还没有一个软件工程模型对其进行描述,常用的建模和描述方法是RFC,这对于软件工程师和开发人员来说是不够的。因此,有一个软件工程的方法来帮助工程师和开发人员定制自己的嵌入式系统的基于Web的应用程序的需要。提出了一种基于模型的轻量级TCP/IP协议的系统工程方法。该模型包含了为嵌入式系统开发轻量级TCP/IP的必要阶段。该模型是基于SysML作为一个基于模型的系统工程语言。
2011-04-28 cs.SE
Using Multi-Viewpoint Contracts for Negotiation of Embedded Software Updates
在本文中,我们解决的问题,在安全关键的嵌入式系统应用程序部署后的变化。我们的目标是用现场正式分析取代基于实验室的验证,以确定更新是否可以安全应用。这是具有挑战性的,因为它需要一个自动化的过程,能够处理多个观点,如功能的正确性,定时等,为此,我们提出了一个原始的方法,基于合同的谈判软件更新。合同的使用使我们能够在实验室和现场之间干净地划分验证工作。此外,我们将展示如何依赖于现有的视点特定的方法进行更新协商。我们说明了我们的方法上的一个具体的例子,灵感来自汽车领域。
2016-06-01 cs.SE
Google Test/Google Mock to Verify Critical Embedded Software
关键嵌入式系统(CES)在医疗、汽车或工业领域已经变得无处不在。这些系统中的软件故障可能是灾难性的,不仅可能导致经济上的严重后果,而且可能危及生命。然而,除了它们的无所不在,CES的复杂性已经增长到极端的程度,面对这种增长,制造商和供应商越来越感兴趣的是测试逻辑正确性和验证软件部分是无错误的有效方法。软件测试是用于检测和纠正软件代码中发现的错误和故障的方法的集合。软件测试的第一阶段是单元测试,这是一种广泛使用的技术,其中源代码的各个单元被隔离,通常被划分为类和函数,并单独测试以帮助验证系统的行为和功能。在本章中,将对GoogleTest(GTest)进行概述,这是一个xUnit C++测试框架,并将对C++语言中使用的不同可用单元测试框架进行比较。由于关键嵌入式系统的复杂性,很难隔离和测试系统的行为,模拟技术被认为是使一个真正的实现被替换为一个假的实现,替换允许克服与硬件依赖性和外部因素有关的挑战。此外,本章还介绍了GoogleMock,它是GoogleTest C++测试框架的一部分,可以使测试隔离运行。
2022-08-09 cs.SE
Modeling and visualizing networked multi-core embedded software energy consumption
在这份报告中,我们提出了一个网络级的多核能源模型和软件开发过程的工作流程,允许软件开发人员估计多核嵌入式程序的能源消耗。本文主要研究一种高性能、无缓存、时序可预测的嵌入式处理器体系结构XS 1。先前的建模工作被改进以提高准确性,然后被扩展为关于电压和频率缩放(VFS)的参数化,然后被集成到互连核的网络的更大规模的模型中。该建模由对开源指令集模拟器的增强来支持,以提供目标架构的第一个网络定时感知模拟。基于模拟的建模技术与结果演示方法相结合,以演示如何将此类工作集成到软件开发人员的工作流程中,使开发人员能够做出明智的,节能的编码决策。一组单线程、多线程和多核基准测试用于练习和评估模型,并为如何呈现和解释结果提供用例示例。所有模型的精度均在平均+/-5%的误差范围内。
2015-09-09 cs.DC cs.SE
Measuring the impact of input data on energy consumption of software
软件执行过程中消耗的能量以及预测未来消耗的能力是嵌入式电子系统设计中的重要因素。在这份技术报告中,我研究了软件执行过程中可能影响能耗的因素。采用简单的嵌入式软件基准测试,我测量了输入数据对能耗的影响程度,并提出了一种在软件能源模型中反映这一点的方法。
2014-11-10 cs.SE
Towards Practical Requirement Analysis and Verification: A Case Study on Software IP Components in Aerospace Embedded Systems
本文以中国空间技术研究院的五个真实航空航天嵌入式软件IP组件为案例,提出利用大语言模型自动将自然语言需求转换为时序逻辑规范,并结合三种验证技术实现形式化验证,从而降低对领域专家和人工的依赖。
2024-03-31 cs.SE
Developing a Roadmap to an AI-first Organization: A Case Study in Embedded Software Development
University of Gothenburg(哥德堡大学);Chalmers University of Technology(查尔姆斯理工大学)
本文通过大型嵌入式系统公司的案例研究,探讨向AI优先组织转型的路线图,分析智能体AI对团队结构、能力与角色的影响,并提出联邦式团队组建及人机协同实践建议。
2026-09-28 cs.AI cs.SE
CONSTRUCT: A Program Synthesis Approach for Reconstructing Control Algorithms from Embedded System Binaries in Cyber-Physical Systems
本文提出CONSTRUCT方法,通过静态分析和进化搜索从CPS嵌入式二进制文件自动合成控制算法的数学表示,经三个真实工业CPS案例验证有效。
2023-08-01 cs.SE
3D Software Synthesis Driven by Constraint-Expressive Intermediate Representation
The Chinese University of Hong Kong(香港中文大学);Renmin University of China(中国人民大学)
Scenethesis通过约束表达式中间表示实现3D软件合成,有效捕捉用户需求并满足复杂约束。
2026-10-01 cs.AI cs.CV cs.MM
Model Checking Embedded C Software using k-Induction and Invariants (extended version)
本文提出了一种基于归纳法的证明方法,将k-归纳法与不变量相结合,对嵌入式C软件中有界循环和无界循环进行模型检验。k-归纳算法由三种情况组成:在基本情况下,我们的目标是找到一个反例,最多有k个循环展开;在正向条件下,我们检查循环是否已经完全展开,以及安全属性P是否在k个展开内的所有状态下都成立;在归纳步骤中,我们检查每当P对k个展开成立时,它在系统的下一个展开后也成立。对于k-归纳算法的每一步,我们使用仿射约束来推断不变量(即,多面体)指定前置和后置条件。实验结果表明,我们的方法可以处理各种各样的安全特性,在典型的嵌入式软件应用程序,从电信,控制系统和医疗设备,我们证明了改进的感应算法的有效性,如果与其他方法相比。
2015-09-08 cs.LO cs.SE
Hardware Software Co-design for Automotive CPS using Architecture Analysis and Design Language
现代信息物理系统(CPS)在软件和物理组件之间具有紧密的相互依赖性。汽车嵌入式系统是典型的CPS,因为物理芯片、传感器和执行器是物理组件,而嵌入其中的软件是网络组件。现阶段的嵌入式系统在软件和硬件的架构设计上都是高度复杂的。在工业实践中,硬件平台上的高级控制算法开发和低级代码实现是分开开发的,共享信息有限。然而,软件代码和硬件架构变得密切相关的复杂性增加。硬件和软件之间的相关要求和依赖性是工业实践中出现的问题。我们在本文中展示了一种方法,链接基于模型的系统设计与实时仿真和分析的架构模型。这允许硬件软件协同设计,从而提前选择硬件架构。
2016-03-16 cs.SE
Stateful Embedded Fuzzing with Peripheral-Accurate SystemC Virtual Prototypes
RWTH Aachen University(亚琛工业大学)
本文提出一种结合AFL++与状态化SystemC-TLM虚拟原型的框架,通过将模糊测试输入直接注入外围模型,实现嵌入式软件的真实模糊测试,提升预硅测试效果。
2026-04-20 cs.SE
A Case Study on Model-Based Development of Robotic Systems using MontiArc with Embedded Automata
服务机器人的软件开发本质上是复杂的。即使是单个机器人也需要多个传感器、执行器和软件模块的组合。系统通常由领域专家组开发,很少有软件工程专家。因此,最终的软件系统是在单一平台上解决单一问题的单片程序。我们声称,以模块化的方式对机器人的结构和行为进行建模,可以获得更好的可重用软件。我们报告的研究与结构和行为建模语言MontiArcAutomaton的机器人软件的建模。本研究评估的好处和困难,基于模型的机器人软件开发使用MontiArc-Automaton。我们的研究结果是基于一项调查,与参与者的讨论,以及他们发展行为的关键数字。我们提出的项目,我们的研究,经验教训,以及未来的工作的基础上获得的见解
2014-08-25 cs.SE
Software Engineering Approaches for TinyML based IoT Embedded Vision: A Systematic Literature Review
Boise State University(博伊西州立大学)
物联网(IoT)通过无处不在的传感、通信、计算和驱动,使人类能够控制我们的环境。在过去的几年里,物联网与机器学习(ML)联手,在远端嵌入深度智能。TinyML(Tiny机器学习)支持在极其精简的边缘硬件上部署用于嵌入式视觉的ML模型,将物联网和ML的力量结合在一起。然而,TinyML驱动的嵌入式视觉应用仍处于初期阶段,它们刚刚开始扩展到广泛的现实世界物联网部署。为了利用物联网和机器学习的真正潜力,有必要为产品开发人员提供强大的,易于使用的软件工程(SE)框架和最佳实践,这些框架和最佳实践是针对TinyML工程所面临的独特挑战而定制的。通过这一系统的文献综述,我们汇总了TinyML开发人员报告的关键挑战,并确定了大规模计算机视觉、机器学习和嵌入式系统中最先进的SE方法,这些方法可以帮助解决基于TinyML的物联网嵌入式视觉中的关键挑战。总之,我们的研究利用了嵌入式系统开发人员和ML开发人员独立开发的SE专业知识之间的协同作用,以帮助解决基于TinyML的物联网嵌入式视觉工程中的独特挑战。
2022-04-19 cs.CV cs.LG cs.SE
Bayesian propensity score matching in automotive embedded software engineering
随机现场实验,如A/B测试,一直是评估新软件为客户带来价值的黄金标准。然而,在汽车嵌入式软件的开发中,运行随机现场实验并不总是理想的,可能的,甚至是道德的。在面对这样的限制,我们建议使用贝叶斯倾向得分匹配技术的因果推理的观察性研究在汽车领域。在本文中,我们提出了一种基于贝叶斯倾向得分匹配框架的方法,应用于汽车软件工程的独特设置。该方法用于根据观察性在线评价生成平衡的对照组和治疗组,并估计软件变更的因果治疗效应,即使治疗组中的样本有限。我们在汽车领域中使用概念验证来验证该方法。在本例中,我们有一个较大的控制($N_c=1100$)车队,使用当前软件,还有一个小的治疗车队($N_t=38$),其中我们引入了一个新的软件变体。我们演示了一个场景,即限制向所有用户运送新软件,因此无法进行完全随机化的实验。因此,我们使用贝叶斯倾向评分匹配方法,以14个观察到的协变量作为输入。结果显示更平衡的组,适合根据收集的观察数据估计因果治疗效应。我们将详细描述该方法并分享我们的配置。此外,我们讨论了如何可以使用这样的方法,利用小样本组的新软件的在线评估。
2021-09-26 cs.SE
Automatic Synthesis of Test Cases to Identify Software Redundancy
软件系统可以包含冗余的实现元素,例如,可以产生不可区分的结果的不同方法。这种类型的冗余被称为内在的,如果它已经在软件中可用,虽然不是故意计划的。冗余可以是提高系统可靠性的关键因素。一些容错和自修复技术利用冗余来避免运行时的故障。不幸的是,手动推断哪些操作是等效的可能是昂贵的并且容易出错。在以前的工作中提出的技术允许自动合成的方法序列,相当于一个目标方法。然而,这种技术需要一个执行场景才能工作。目前,这种执行场景是手动生成的,这是昂贵的,并且使得该技术难以使用。本文提出了一种技术来生成执行场景的目标方法,我们正在寻找等价序列。在Java类Stack上的实验结果表明,该方法能够在合理的执行时间内正确生成执行场景。此外,生成的执行场景允许最大化上述技术的有效性。
2014-11-16 cs.SE
High Level Hardware/Software Embedded System Design with Redsharc
随着用于设计多处理器片上系统(MPSoC)的工具继续发展以满足开发人员的需求,存在必须被弥合以提供更紧密的硬件/软件开发环境的系统性差距。我们提出Redsharc来解决这些问题,并使:系统生成,软件/硬件编译和合成,运行时控制和执行的MPSoC。本文中提出的努力扩展了我们以前的工作,提供了丰富的API,构建基础设施和运行时,使开发人员能够设计一个系统,同时执行内核的软件或硬件,无缝通信。在这项工作中,我们进一步采用Redsharc,以支持更多设备上的更广泛的应用程序,这些设备需要更统一的系统开发环境和构建基础设施。为了实现这一目标,我们利用现有的工具,并通过构建和控制基础设施扩展Redsharc,以减轻系统开发的负担,使软件程序员能够将精力集中在应用程序和内核开发上。
2014-08-20 cs.DC cs.SE
PhantomRun: Auto Repair of Compilation Errors in Embedded Open Source Software
Ericsson AB(爱立信公司);KTH Royal Institute of Technology(皇家理工学院);Carleton University(卡尔顿大学);Mälardalen University(马拉达伦大学)
PhantomRun利用大型语言模型自动修复嵌入式开源软件的编译错误,成功修复了45%的CI失败案例。
2026-02-23 cs.SE
Prototype of Fault Adaptive Embedded Software for Large-Scale Real-Time Systems
本文介绍了一个全面的原型的大规模故障自适应嵌入式软件开发的建议费米实验室BTeV高能物理实验。嵌入在原型的第1级中的轻量级自优化代理负责基于指定的能力层进行主动和被动监控和缓解。代理是自我保护的,使用分布式方法检测级联故障。自适应、可重构和可移动的可靠性对象被设计为自配置,以自动适应动态变化的环境。这些对象提供了一个自我修复层,具有发现、诊断和对实时的【形】处理中的不连续性做出反应的能力。一个通用的建模环境,以促进硬件资源规格,应用程序数据流,和故障缓解策略的设计和实施。计划中的BTeV触发系统仅第1级就将由2500个DSP组成,因此所涉及的组件数量和棘手的故障情况使得不可能设计一个“专家系统”,该系统应用基于捕获每个可能系统状态的规则的传统集中式缓解策略。相反,分布式反应式方法是使用由实时的【形】嵌入式系统组开发的工具和方法来实现的。
2005-04-29 cs.SE
Software Development Under Stringent Hardware Constraints: Do Agile Methods Have a Chance?
敏捷软件开发方法已经被认为在许多情况和环境中是有用的。然而,只有很少(如果有的话)的经验是关于使用敏捷方法在嵌入式领域的硬件设置严格的要求,软件。这个开发领域可以说是远离敏捷的大本营。本文探讨了在这种环境下使用敏捷开发技术的可能性,并定义了新的敏捷方法的要求,以促进嵌入式软件的开发。调查结果是基于一个为期12个月的实证研究,在低层次的电信软件的发展。我们认为,通过解决我们发现的需求,敏捷方法也可以在嵌入式软件领域取得成功。
2017-11-23 cs.SE
Applying Multi-Core Model Checking to Hardware-Software Partitioning in Embedded Systems (extended version)
我们提出了一种替代方法来解决硬件(HW)和软件(SW)分区问题,它使用基于可满足性模理论(SMT)的有界模型检验(BMC)结合使用开放多处理的多核支持。基于多核SMT的BMC方法允许基于模型检查器可用的处理器核数初始化许多验证实例。每个实例检查不同的最优值,直到满足优化问题。我们的目标是表明,多核模型检查技术可以是有效的,在特定情况下,找到最佳的解决方案的HW-SW分区问题使用基于SMT的BMC方法。实验结果表明,该方法与传统的线性规划算法和遗传算法相比具有更好的收敛性。
2015-09-08 cs.LO cs.SE
SmartUnit: Empirical Evaluations for Automated Unit Testing of Embedded Software in Industry
在本文中,我们针对嵌入式软件的自动化单元覆盖率为基础的测试。为了实现这一目标,通过分析工业需求和我们以前在自动化单元测试工具CAUT上的工作,我们重新构建了一个新的工具SmartUnit,以解决我们合作伙伴公司的工程需求。SmartUnit是一个动态符号执行实现,支持语句、分支、边界值和MC/DC覆盖。SmartUnit已经在实际项目中测试了超过一百万行代码。出于保密动机,我们选择了三个内部真实项目进行实证评估。我们还对两个开源数据库项目SQLite和PostgreSQL进行了评估,以测试我们的工具的可扩展性,因为嵌入式软件项目的规模大多不大,平均只有5 K-50 K行代码。从我们的实验结果来看,一般来说,商业嵌入式软件中90%以上的函数实现了100%的语句、分支、MC/DC覆盖,SQLite中80%以上的函数实现了100%的MC/DC覆盖,PostgreSQL中60%以上的函数实现了100%的MC/DC覆盖。此外,SmartUnit能够在单元测试级别找到运行时异常。我们还报告了SQLite中的异常,如数组索引越界和被零除。此外,我们还分析了自动化单元测试覆盖率低的原因,并对工业上手工单元测试相对于自动化单元测试的情况进行了调查。
2018-06-17 cs.SE
Size matters? Or not: A/B testing with limited sample in automotive embedded software
A/B测试作为一种有前途的工具,在汽车行业越来越受到关注,以衡量软件更改的因果影响。与面向Web的业务不同,A/B测试已经很好地建立起来,汽车领域经常受到有限的合格用户参与在线实验的影响。为了解决这一缺点,我们提出了一种方法,设计平衡的控制和治疗组,使声音的结论,可以从实验中得出相当小的样本量。虽然平衡匹配加权方法已被用于其他领域,如医学,这是第一篇论文,应用和评估它在软件开发的背景下。此外,我们详细描述了平衡匹配加权方法,我们进行了案例研究,与汽车制造商一起应用成组设计方法在车队。最后,我们提出了我们的案例研究在汽车软件工程领域,以及讨论的好处和局限性的A/B组设计方法。
2021-11-10 cs.SE
Towards Specification-Driven LLM-Based Generation of Embedded Automotive Software
Umeå Universitet(于默奥大学);Scania(斯堪尼亚公司)
本文提出 spec2code 框架,将 LLM 代码生成与形式化验证批评器结合,并在 Scania 工业案例中验证仅从规范即可生成形式正确的嵌入式软件代码。
2024-11-20 cs.AI cs.SE
Automatic Detection, Validation and Repair of Race Conditions in Interrupt-Driven Embedded Software
本文提出自动化框架 SDRacer,结合静态分析、符号执行和虚拟平台动态验证,实现中断驱动嵌入式软件中竞态条件的精确检测、验证与修复,并在九个真实 C 语言嵌入式程序上验证了其有效性。
2023-05-29 cs.SE
IPSynth: Interprocedural Program Synthesis for Software Security Implementation
IPSynth提出一种跨过程程序合成方法,自动学习安全战术规格并合成相互关联的代码片段,添加到现有代码库中,实验表明其优于ChatGPT。
2024-03-16 cs.SE
A Performance Analysis Tool for Nokia Mobile Phone Software
性能问题是嵌入式软件系统中经常出现的问题。业绩不佳的原因往往并不明显。瓶颈可能发生在执行路径上的任何软件组件中,因此,对嵌入式软件系统的运行时行为做出贡献的不同组件进行检测和监视是非常重要的。性能分析工具可以通过监控软件的执行并生成易于理解的性能数据来帮助定位嵌入式软件系统中的性能瓶颈。我们维护并进一步开发了一个工具,用于分析诺基亚手机软件的性能。用户可以在四个性能分析报告中进行选择:平均处理器负载、处理器利用率、任务执行时间统计和任务执行时间轴。这些报告中的每一个都提供了有关执行时间花在何处的重要信息。该演示将展示该工具如何帮助识别诺基亚手机软件的性能瓶颈,并更好地了解性能不佳的领域。
2003-10-03 cs.PF cs.SE
An Approach for Embedding-Guided Function Reuse Detection in Embedded C Software
Trent University(特伦特大学);Ontario Tech University(安大略理工大学)
本文提出领域感知RAG流水线,结合8种模型与4种硬件兼容性验证器,检测嵌入式C软件函数复用,解决SonarQube高假阳性问题,验证器准确率达97.5%。
2026-08-06 cs.SE
Automatic SDF-based Code Generation from Simulink Models for Embedded Software Development
Matlab/Simulink是一种广泛使用的基于模型的嵌入式系统设计工具。支持层次结构,特定领域的构建块,功能仿真和自动代码生成,使其非常适合控制和信号处理系统的设计。在这项工作中,我们提出了一个自动翻译方法的Simulink模型的一个子集,以同步的可移植图(SDFGs),包括SDF兼容的嵌入式代码的自动代码生成。由于Simulink面向参与者的建模性质,将Simulink模型转换为SDFG非常合适,允许应用SDFG领域的多种优化技术。由于其定义良好的语义,SDFG可以在编译阶段进行分析,以获得无死锁和内存有效的调度。此外,存在几种实时分析方法,其允许SDFG到片上多处理器(MPSoC)的吞吐量最优映射,同时保证上限延迟。我们的翻译的正确性是合理的集成SDF生成的代码作为一个软件在环(SIL),并将其结果与参考Simulink模型的模型在环(MIL)仿真的结果进行比较。翻译证明了两个案例研究的帮助下:一个传输控制器单元(TCU)和自动气候控制。
2017-01-31 cs.DC cs.SE
Debugging Memory Issues In Embedded Linux: A Case Study
检测表示检测程序中意外可观察行为的根本原因的过程,例如程序崩溃、产生意外输出值或断言违规。排除程序错误是一项困难的任务,并且在软件开发生存周期中经常花费大量的时间。在嵌入式软件的背景下,bug的概率相当高。由于嵌入式软件要求低代码大小和更少的资源消耗,因此通常在开发期间消除大量的健全性检查。这导致在运行时间在生产代码中发现错误的可能性很高。在本文中,我们提出了一种方法来调试BusyBox,Linux在嵌入式系统中的事实标准的错误。我们的方法工作在Valgrind,一个流行的内存错误检测器和Daikon,一个不变的分析。我们在BusyBox中实验了两个已发表的错误,并在本文中报告了我们的发现。
2012-08-02 cs.SE
In industrial embedded software, are some compilation errors easier to localize and fix than others?
本研究针对工业嵌入式系统CI阶段编译错误比例高的问题,构建了Shadow Job诊断方案,通过分析4个项目超4万次构建,发现最常见的5种错误占89%,并揭示了错误解决时间、大小和距离相互独立,为故障定位提供了人工成本见解和未来研究方向。
2024-04-23 cs.SE
Synthesis from Recursive-Components Libraries
综合是根据系统的规范自动构造系统。在经典的综合算法中,它总是假设系统是“从头开始构建”,而不是由可重用的组件组成。当然,这在现实生活中很少发生。在现实生活中,几乎每一个重要的商业软件系统都严重依赖于使用可重用组件库。此外,其他上下文,如Web服务编排,可以建模为从组件库合成系统。2009年,我们引入了基于可重用组件库的LTL合成。在这里,我们扩展的工作和学习的综合从组件库与“调用和返回”的控制流结构。这种控制流结构在软件系统中非常常见。我们定义的嵌套词时序逻辑(NWTL)的递归组件库,其中NWTL是一个规范的形式主义,比LTL更丰富,这是适合于“调用和返回”的计算合成的问题。我们解决了这个问题,提供了一个综合算法,并显示该问题是2EXPTIME完全的,作为标准的综合。
2011-06-07 cs.LO cs.SE
Where did we fail? -- Reproducing build failures in embedded open source software
Ericsson AB(爱立信);KTH Royal Institute of Technology(皇家理工学院);Mälardalen University(马尔默达尔大学);Carleton University(卡尔顿大学)
研究针对嵌入式系统中CI构建失败问题,提出PhantomRun框架,通过统一抽象层和可重用数据集标准化构建日志的检索、存储与重现,实现91.8%的构建重现率。
2026-04-29 cs.SE