0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统检测问题并减轻故障影响

星星科技指导员 来源:嵌入式计算设计 作者:Colin Walls 2022-07-05 10:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

东西断了。事情出错了。不太礼貌的绰号是:****发生。不管你用什么词,我们生活在一个不完美的世界里,这是一个事实。在嵌入式系统中,有很多失败的机会。在简单的系统中,故障通常会导致它们无法正常工作。在复杂系统中,故障可能以更微妙的方式表现出来。

嵌入式系统是“智能的”,因此很明显可以利用这种智能来检测即将发生的问题和已经发生的问题,并可能减轻故障的影响。

这种内置故障控制的常用术语是“自我测试”。这是一个很大的主题,很可能已被许多会议论文所涵盖,细节可能会写满一本书。但在这里,我只想考虑关键问题。

本质上,嵌入式系统有四个可能的故障区域:

中央处理器

外围设备

记忆

软件

CPU 的故障非常罕见,但当然也不是未知数。部分故障不太可能发生,因此预期的情况是无法运行代码,因此没有机会解决故障。由于电子元件的故障最常发生在上电时,CPU 故障很可能表现为完全死机的设备。在多 CPU 设计中这是另一回事,当一个 CPU 可以监视另一个 CPU 的活动并更优雅地报告故障时。

当然,内存是一个关键的系统组件,现代设备有很多。失败远非未知。可能由杂散的亚原子粒子引起的瞬态故障可能导致设备无法解释且无法重现的崩溃。真的没有什么可以解决这种可能性的。更可能检测到硬/永久性故障。

内存可以通过两种方式进行测试:上电时(这是最有可能发生故障的时候),在任何有用的数据存储在其中之前,或者在运行中,如果有空闲的 CPU 时间可用。如果可以容忍短暂的启动延迟,那么在它包含任何数据之前进行全面的内存测试是否值得。通常的测试称为“移动位”,其中内存被清除,每个位依次写入一个,并且每隔一个位检查以确保它是零。“移动零点”测试应用了相同的想法。

动态测试自然不那么全面,因为实时数据不会被破坏。唯一真正的选择是通过写入和读取一系列模式来测试每个字节/字,同时禁用中断。

外围设备种类繁多,并且可能会失败是许多有趣的方式。但是,我可以提供的一般性建议很少。自测试代码可以检查设备是否对其地址做出响应,如果不这样做则表明发生了不好的事情。否则,某些设备可能具有“环回”模式,可以检查基本的发送/接收功能。除此之外,需要由设备功能知识驱动的创造力来实施任何自我测试。

如果软件失败,那是因为它的设计或实现出现了错误。与硬件不同,无错误的软件(如果它甚至存在的话)不会随着时间的推移而变坏。软件故障大致分为两类:

陷入循环(无响应)

数据/代码损坏

(1) 最常见的原因实际上是某种硬件问题,软件正在等待永远不会出现的响应。这仍然是一个软件错误,因为超时总是谨慎的。解决此类故障的最佳方法是使用某种看门狗设施。如果未收到软件的定期响应,这通常是重置系统的硬件。专用任务可能在多线程应用程序中执行相同类型的工作。

指针错误是 (2) 的可能原因,完全随机的内存损坏很难检测和诊断。幸运的是,一个常见的错误是使用空指针或完全无效的指针。由于这会导致陷阱(软件中断),因此预防措施是确保实施陷阱处理程序。另一个流行的错误是堆栈或数组等内存区域溢出。这可以通过在任一端使用“警戒词”并监控它们的访问来解决。

仍然存在一个重要的未解决问题。一旦检测到故障或即将发生的故障,您能做些什么呢?这完全取决于系统的性质。在某些情况下,尤其是深度嵌入式系统,系统重置是唯一明智的做法。记录故障以供以后分析可能是可能的。对于其他系统,可以建议用户并可能确定要采取的行动。另一种可能性是设备“打电话回家”或使用网络连接向用户/供应商/开发人员发送有关故障的信息。

最重要的是,每个嵌入式系统都是不同的,这就是让这个行业的工作变得有趣的原因。结果是每个设备的自检都不同,对发现故障的响应也同样可变。唯一不变的因素是失败的可能性以及许多开发人员对这种可能性的否认。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20384

    浏览量

    255645
  • 嵌入式
    +关注

    关注

    5212

    文章

    20778

    浏览量

    338892
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11377

    浏览量

    226438
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    知识分享-嵌入式系统可靠性模型

    嵌入式系统可靠性设计技术及案例解析1.3嵌入式系统可靠性模型嵌入式系统可靠性模型分为两种:串联结
    的头像 发表于 03-11 16:43 496次阅读
    知识分享-<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>可靠性模型

    嵌入式驱动开发,需要掌握哪些技能?

    单元测试、集成测试、系统测试等,学会使用调试工具进行问题排查。 6、 其他嵌入式驱动开发,实质也是软件开发,还需要掌握开发文档的编辑、软件版本管理、框架思维等需要软件开发具有的技能。 最后,你现在做
    发表于 01-20 16:46

    嵌入式系统安全设计原则

    随着物联网、工业控制和智能设备的普及,嵌入式系统的安全问题越来越突出。一个小小的漏洞,就可能导致设备被入侵、数据泄露,甚至对人身安全产生威胁。因此,从设计阶段开始就考虑安全,是每一个嵌入式开发者必须
    的头像 发表于 01-19 09:06 566次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>安全设计原则

    什么是嵌入式应用开发?

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发 ‌嵌入式应用开发‌是指在嵌入式操作
    发表于 01-12 16:13

    系统嵌入式的学习路线

    嵌入式技术是各种电子产品的核心技术,也是工业4.0、远程医疗、3D打印等新兴产业的核心技术,具有广阔的发展前景。很多计算机、电子信息类专业的学生都想把嵌入式开发作为自己的职业目标,但是因为嵌入式涉及
    发表于 12-16 07:49

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解, 一
    发表于 12-09 10:33

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一个嵌入式处理器,其控制程序被存储在ROM中。这些系统在许多日
    发表于 11-17 06:49

    嵌入式开发的关键点介绍

    嵌入式开发的关键点: 1. 硬件限制: 嵌入式系统通常具有严格的硬件限制,例如处理器速度、内存和存储容量等。因此,嵌入式开发需要考虑这些限制,
    发表于 11-13 08:12

    嵌入式实时操作系统的特点

    故障情况下提供适当的错误处理机制。 硬实时和软实时支持:实时嵌入式操作系统通常提供对硬实时(Hard Real-Time)任务和软实时(Soft Real-Time)任务的支持。硬实时任务必须在严格
    发表于 11-13 06:30

    嵌入式达到什么水平才能就业?

    、LoRa、NB-IoT,能实现嵌入式设备与云端平台的数据交互了解 RTOS 实时操作系统:如 FreeRTOS、RT-Thread,能进行任务创建、信号量管理、内存分配
    发表于 09-15 10:20

    油介质损耗及电阻率测试仪的嵌入式系统架构与抗干扰设计

    油介质损耗及电阻率测试仪的精准检测能力,不仅依赖于核心的电气测量模块与温控系统,更离不开稳定可靠的嵌入式系统作为“中枢神经”。嵌入式
    的头像 发表于 09-02 13:57 789次阅读
    油介质损耗及电阻率测试仪的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>架构与抗干扰设计

    2025全国大学生嵌入式芯片与系统设计竞赛应用赛道全国总决赛圆满闭幕-飞凌嵌入式

    8月13日2025全国大学生嵌入式芯片与系统设计竞赛应用赛道全国总决赛圆满闭幕,飞凌嵌入式作为大赛协办单位之一,携手瑞芯微在应用赛道设立专属赛题承担评审工作,积极为高校学子搭建高水平
    的头像 发表于 08-15 08:02 2801次阅读
    2025全国大学生<b class='flag-5'>嵌入式</b>芯片与<b class='flag-5'>系统</b>设计竞赛应用赛道全国总决赛圆满闭幕-飞凌<b class='flag-5'>嵌入式</b>

    入行嵌入式应该怎么准备?

    、CAN和Ethernet等)以及它们的工作原理和使用方法是必不可少的。此外,对于无线通信协议(如Bluetooth、Wi-Fi和LoRa等)的了解也是有益的。 五、调试和故障排除能力嵌入式系统开发中经
    发表于 08-06 10:34

    运行在嵌入式系统上的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似于手机上的应用程序,可以运行在
    的头像 发表于 06-18 09:53 1120次阅读
    运行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>上的emApps

    嵌入式超声电机微步距控制检测系统设计

    摘 要:设计了一种行波超声电机的嵌入式微步距控制检测系统,该系统分为三大部分:嵌入式上位机、电机控制器和
    发表于 06-11 14:43