嵌入式软件可靠性设计规范汇总
嵌入式系统的可靠性工程
嵌入式系统的可靠性工程嵌入式系统是指在其他机械或电子设备中嵌入的计算机系统,它们被广泛应用于航空航天、汽车、医疗设备、通信设备等领域。
由于嵌入式系统的特殊性和复杂性,其可靠性工程显得尤为重要。
本文将就嵌入式系统的可靠性工程进行探讨,重点关注可靠性需求分析、设计技术和测试方法。
一、可靠性需求分析在嵌入式系统的开发过程中,需求分析是一个至关重要的环节。
可靠性需求分析是决定系统能否达到用户期望水平的关键因素。
在进行可靠性需求分析时,首先需要明确系统的功能需求和性能需求。
然后,基于实际应用场景和用户需求,确定系统的可靠性要求,如系统的故障率、可用性等指标。
同时,还需要考虑灵活性和可维护性等方面的要求,以确保系统在长期使用过程中不会出现过多的故障和维修需求。
二、设计技术1. 可靠性设计原则可靠性设计需要遵循一些基本原则。
首先,要尽量减少系统中的冗余和复杂性,简化系统结构,降低故障率。
其次,要采用可靠性高的元器件和设备,提高系统的整体可靠性。
此外,还需要进行系统级的故障预测和容错设计,以及合理的电磁兼容性和抗干扰设计,以减少系统在复杂环境下的故障率。
2. 异常处理和恢复机制在嵌入式系统中,出现异常情况是不可避免的。
为了提高系统的可靠性,需要设计合理的异常处理和恢复机制。
当系统检测到异常时,应能够及时采取相应的措施,如自动重启、自动切换、故障检测和排查等,以确保系统能够尽快恢复正常工作。
三、测试方法1. 单元测试单元测试是嵌入式系统开发过程中不可或缺的一环。
通过对系统各个模块进行独立测试,可以验证各个模块的正确性和稳定性。
在单元测试中,可以采用黑盒测试和白盒测试相结合的方法,覆盖到各种可能的输入和边界情况,以尽可能发现潜在的问题。
2. 集成测试集成测试是在单元测试完成后,将各个模块组合在一起进行整体测试。
通过模拟实际应用场景,验证系统各个模块之间的协同工作和接口的正确性。
集成测试需要充分考虑各个模块的交互和通信,以及异常情况下的处理能力。
电子系统可靠性设计-嵌入式系统软件的可靠性设计PPT课件【2024版】
嵌入式系统软件的可靠性设计 电子系统可靠性设计
2)控制要求或处理要求
嵌入式系统对实时性要求较高
工作顺序要求严格:发送数据的时间、接收数据的时间、 时序关系、CPU和外设的同步 3)可靠性问题
对软件的可靠性要求和出错处理的要求
确定出错处理方案,列出各种错误图像、显示错误的 方法 用户的需求:全面详细的了解,设计者的理解和用户的解 释必须完全一致,形成文档
5、性能错误
电子系统可靠性设计
指设计的软件性能和用户的需求相差太大,不能满足用 户的要求
例如:软件的响应时间、执行时间、控制系统的精度等
例如:
计算机的语音识别,尽管识别率满足要求,但是识别 时间不能太长,如果需要几分钟进行识别,无法应用
嵌入式系统发生故障时:
需要立即做出响应,自动保护和报警
如果响应时间过长:会发生严重的后果
依赖于设计者的思路、方法 在软件开发的每一步:都可能引入故障 每一个阶段都要采取质量控制手段
实现软件的可靠性要求 一、软件工程的开发模式 二、嵌入式系统的软件开发 三、软件可靠性管理
嵌入式系统软件的可靠性设计 电子系统可靠性设计
一、软件工程的开发模式 1、瀑布式开发模型 2、原型法开发模型 3、螺旋形开发模式 4、面向对象的软件开发模型
上个例子:
故障率λ=0.004
平均故障间隔时间MTBF =1/λ =250
嵌入式系统软件的可靠性设计 电子系统可靠性设计
嵌入式系统软件的可靠性设计 电子系统可靠性设计
嵌入式系统软件的可靠性设计
2、方案中有错误
电子系统可靠性设计
当用户需求充分了解后,进行软件的总体方案设计
2 嵌入式软件可靠性设计规范 (1)
嵌入式软件可靠性设计规范0、概述 (3)1、定义 (3)1.1、定义 (3)1.2、说明 (3)2、计算机系统设计 (3)2.1、一般要求 (3)2.2、硬件与软件功能的分配原则 (4)2.3、硬件与软件可靠性指标的分配原则 (4)2.4、安全关键功能的人工确认 (4)2.5、安全性内核 (4)2.6、自动记录系统故障 (4)2.7、禁止回避检测出的不安全状态 (5)2.8、保密性设计 (5)2.9、容错设计 (5)2.10、安全关键软件的标识原则 (5)3、硬件设计 (5)3.1、硬件选用 (5)3.2、总线检测 (5)3.3、加电检测 (6)3.4、电源失效的安全措施 (6)3.5、主控计算机失效的安全措施 (6)3.6、反馈回路传感器失效的防护措施 (6)3.7、电磁干扰的防护措施 (6)3.8、维修互锁措施 (6)4、软件需求分析 (6)5、软件危险分析 (7)6、安全关键功能的设计 (7)7、冗余设计 (7)7.1、指令冗余设计 (7)7.2、软件陷阱与软件拦截技术 (7)7.3、软件冗余 (9)8、接口设计 (10)8.1、硬件接口要求 (10)8.2、硬件接口的软件设计 (10)8.3、人机界面设计 (10)8.4、报警设计 (10)8.5、软件接口设计 (11)9、软件健壮性设计 (11)9.1、电源失效防护 (11)9.2、加电检测 (11)9.3、电磁干扰 (11)9.4、系统不稳定 (12)9.5、接口故障 (12)9.6、干扰信号 (12)9.7、错误操作 (12)9.8、监控定时器的设计 (12)9.9、异常保护设计 (12)10、简化设计 (13)10.1、单入和单出 (13)10.2、模块的独立性 (13)10.3、模块的扇入扇出 (13)10.4、模块耦合方式 (13)10.5、模块内聚顺方式 (13)10.6、其他特殊考虑 (14)11、余量设计 (14)11.1、资源分配及余量要求 (14)11.2、时序安排的余量要求 (14)12、数据要求 (14)12.1、数据需求 (14)12.2、属性控制 (14)12.3、数值运算范围控制 (15)12.4、合理性检查 (15)13、防错程序设计 (15)13.1、参数化 (15)13.2、公用数据和公共变量 (15)13.3、标志 (15)13.4、文件 (15)13.5、非授权存取的限制 (16)13.6、无意指令跳转的处理 (16)13.7、程序检测点的设置 (16)13.8、寻址模式的选用 (16)13.9、数据区隔离 (16)13.10、安全关键信息的要求 (16)13.11、信息存储要求 (17)13.12、算法选择要求 (17)14、编程要求 (17)14.1、语言要求 (17)14.2、汇编语言编程限制 (17)14.3、高级语言的编程限制 (17)14.4、圈复杂度指数(McCabe) (17)14.5、软件单元的规模 (18)14.6、命名要求 (18)14.7、程序格式要求 (18)14.8、程序注释要求与方法 (18)14.8.1、注释的一般要求 (18)14.8.2、模块头注释要求 (19)14.8.3、模块内注释要求 (19)14.8.4、安全关键内容注释要求 (19)14.9程序设计风格 (19)14.9.1、通用类 (19)14.9.2、结构类 (20)14.9.3、说明类 (20)14.9.4、输人输出类 (21)14.9.5、语言类 (21)15、多余物的处理 (21)15.1、文档中未记载特征的清除 (21)15.2、程序多余物的清除 (21)15.3、未使用内存的处理 (21)15.4、覆盖的处理 (22)16、软件更改要求 (22)17、嵌入式软件测试 (22)17.1、需求遗漏或不明确 (22)17.2、配置保存的生效 (22)17.3、缺省配置的影响 (23)17.4、报警和清除 (23)17.5、菜单选项测试 (23)17.6、缺省配置测试 (23)17.7、系统测试注意事项 (23)附录1:推荐的软件安全关键程度分级 (23)附录2:软件开发各阶段的适用准则和要求 (24)0、概述嵌入式软件是电子系统的重要组成部分,它具有不同于硬件系统的可靠性特征和可靠性设计方法。
汽车电子系统中嵌入式软件可靠性设计
汽车电子系统中嵌入式软件可靠性设计一、引言随着汽车技术的飞速发展,越来越多的电子设备被广泛应用于汽车领域,嵌入式软件已经成为汽车电子系统中不可或缺的一部分。
嵌入式软件的质量直接影响着汽车电子系统的可靠性和安全性。
本文旨在探讨汽车电子系统中嵌入式软件可靠性设计,分析嵌入式软件的设计思路、技术手段、方法以及发展趋势,旨在为汽车电子系统中嵌入式软件的优化设计提供参考。
二、嵌入式软件的特点嵌入式软件是一种专门针对某一应用领域设计的软件,其主要特点如下:1、具有实时性要求:嵌入式软件在实时控制系统中应用广泛,对响应时间要求比较高。
2、硬件资源有限:嵌入式设备通常具有较小的内存和处理速度,因此嵌入式软件必须具有轻量级、高效的特点。
3、可裁剪:嵌入式软件可以根据不同的需求进行裁剪,去除不必要的功能,从而达到提高效率、节省内存等目的。
4、稳定性和可靠性要求高:嵌入式设备通常应用于高可靠性、高安全性、复杂环境等场合,因此嵌入式软件的稳定性和可靠性要求极高。
5、实时调试和追踪能力:嵌入式软件需要具有实时调试和追踪功能,以便及时发现并解决问题。
三、嵌入式软件可靠性设计思路在进行嵌入式软件设计时,必须充分考虑汽车电子系统的可靠性和安全性。
嵌入式软件可靠性设计的主要思路如下:1、软件模块化设计软件模块是指嵌入式软件中独立的、可复用的、实现特定功能的代码段。
软件模块化设计能够提高软件的可维护性、可重用性和可测试性,降低开发成本和风险。
同时,软件模块化设计还可以减少软件的耦合度,提高软件的可靠性。
2、软件代码规范软件代码规范是针对软件开发过程中代码风格、命名规范、注释、缩进、空格等方面的规范。
通过制定统一的代码规范,可以减少代码错误、提高可读性和可维护性,降低软件开发、测试和维护成本。
3、软件质量保证软件质量保证是指通过制定严格的质量要求和标准,确保软件能够满足用户需求、稳定运行、具有高可靠性和安全性。
常用的软件质量保证方法包括软件测试、代码审查、质量保证计划、质量保障评估等。
嵌入式软件可靠性设计规范checklist
嵌入式软件可靠性设计规范汇总43.高级报警显示:红色,1.4Hz~ 2.8Hz,信占比率20%~60%开44.中级报警显示:黄色,0.4Hz~0.8Hz,信占比率20%~60%开45.低级报警显示:蓝绿色或者黄色,常开,信占比率100%46.高优先级和中优先级的报警上、下限设置值,一旦超出可能引起较严重后果的非合理报警数值区域时,均需加单独的对话弹出框予以提醒操作者47.默认的报警预置不允许修改,并提供让用户能恢复到出厂默认报警设置的操作途径48.做报警日志记录,为以后的故障分析、维修检查或商业纠纷提供依据与硬件接口的软件49.数据传输接口的硬件性能限制了数据传输速率的提高,在确定波特率前,要确认硬件所能承受的最高传输率,光耦、485、232、CAN、传输线上有防护器件(TVS或压敏电阻)的端口50.硬件端口读进来的数据必须加值域范围的判断51.硬件端口读取数据,必须加可控时间或次数的有限次限制52.A/D的位数比前端放大电路的精度要求略高即可,并通过数学计算验证53.对运动部件的控制,正向运动突然转向反向运动时,必须控制先正向减速到0,然后再反向加速的控制方式54.运动部件停机后、再快速启动的工作控制方式是不允许的。
须停机、开机、delay延时、再启动执行机构,以确保执行机构先释放原来运动状态的惯性,然后再从静态下启动55.运动部件都有过渡过程特性,软件驱动时的上升沿和下降沿的过渡特性会直接影响到硬件的安全和执行效果56.板卡启动时,先initMCU、然后Delay、然后initIO,以确保各芯片的上电电源都已经稳定下来再启动工作57.对采集自有可能受到干扰的模拟端口输入的数字量数据,一定要加上、下限、Δ/Δt、规律性干扰的滤波措施三个方面的容错性机制58.对数字端口传输数据可以连续传输两遍,以防范随机性偶发干扰,实时性要求较高的,可以连续传三遍,2:1判定59.模块之间的数据通信联络,用周期性读取的方式、或请求-应答的方式传送数据,一旦超出周期性时间要求,或未应答,则判定硬件失效,需有软件的配套措施。
嵌入式系统的安全性与可靠性设计
嵌入式系统的安全性与可靠性设计在当今的科技发展日新月异的时代,嵌入式系统已经成为了我们生活中不可或缺的一部分。
然而,由于嵌入式系统具有与网络相连,功能复杂,使用范围广泛等特点,其安全性和可靠性问题也越来越受到人们的关注。
本文将就嵌入式系统的安全性和可靠性设计展开讨论,以期提供一些有益的指导和思路。
一、安全性设计1.漏洞分析和修复首先,嵌入式系统的安全性设计首先要关注漏洞的分析和修复。
安全性漏洞来自于系统设计的缺陷和实现上的疏忽。
通过对系统进行安全性分析,可以发现潜在的漏洞问题,并及时采取修复措施,以保障系统的稳定和安全。
2.访问控制和身份认证其次,嵌入式系统的安全性设计还需要注重访问控制和身份认证的问题。
通过合理的身份验证机制和权限管理,可以限制用户的访问权限,确保系统只被授权的用户使用,并防止未授权访问和窃取敏感信息的风险。
3.数据保护和加密算法此外,在嵌入式系统的安全性设计中,数据保护和加密算法也是非常重要的方面。
采用合适的加密算法,可以在数据传输和存储过程中对敏感信息进行加密,防止被黑客窃取或篡改,进而保护用户的隐私和数据安全。
二、可靠性设计1.容错和冗余设计在嵌入式系统的可靠性设计中,容错和冗余技术是非常常用的方法。
通过引入冗余元件和备份机制,当系统出现故障时,可以有备用系统接管,保证系统的持续运行。
同时,容错设计也可以提高系统的可靠性,当系统发生错误或故障时,能够自动修复或恢复,确保系统正常工作。
2.时序分析和性能优化另外,为了增强嵌入式系统的可靠性,时序分析和性能优化也是不可忽视的环节。
通过对系统的时序特性进行分析和调控,可以更好地预测和处理系统的各种行为,提高系统的响应速度和可用性。
3.软件工程实践最后,嵌入式系统的可靠性设计需要借鉴软件工程的最佳实践。
例如,采用模块化的设计思想,合理划分系统的功能模块,并进行单元测试和集成测试;同时,采用版本控制和配置管理等措施,保证系统的稳定性和扩展性。
嵌入式系统中的软件设计架构与规范选择
嵌入式系统中的软件设计架构与规范选择在嵌入式系统中,软件设计架构与规范选择起着至关重要的作用。
正确选择适合的设计架构和规范可以提高软件的可靠性、可维护性和可扩展性。
本文将讨论嵌入式系统中常用的软件设计架构和规范,并分析它们的特点和适用场景。
一、软件设计架构1. 单体架构单体架构是最简单的嵌入式软件设计架构,所有的功能模块都集中在一个应用程序中。
这种架构适用于小型嵌入式系统,因为它可以减少资源消耗和编程复杂性。
然而,随着系统功能的增加,单体架构变得越来越复杂,并且不适用于大型或复杂的嵌入式系统。
2. 分层架构分层架构将软件划分为不同的层次,每个层次负责不同的功能。
这种架构使得系统更容易理解和维护,同时也提供了更好的模块化和可扩展性。
分层架构有三层:底层驱动和硬件访问层、中间业务逻辑层和顶层用户界面层。
通过将不同的功能分配给不同的层次,分层架构提供了清晰的代码组织和功能划分。
3. 客户端-服务器架构客户端-服务器架构将软件分成两个独立部分:客户端和服务器。
客户端负责用户界面,而服务器处理数据存储和业务逻辑。
这种架构适用于需要处理大量数据或需要与其他系统进行通信的嵌入式系统。
客户端-服务器架构提供了更好的可扩展性和可重用性,同时也使得系统更易于维护和测试。
4. 事件驱动架构事件驱动架构是基于事件和消息的通信模式,系统中的组件通过事件进行交互。
当事件发生时,系统会触发相应的动作。
事件驱动架构适用于需要实时响应事件或需要异步处理的系统。
这种架构提供了更好的实时性和并发性,并且灵活性高,能够应对不同的事件交互场景。
二、规范选择1. MISRA-CMISRA-C是一种针对嵌入式C语言编程的规范,旨在提高软件可靠性和可维护性。
MISRA-C主要强调代码的一致性、可读性和安全性。
它定义了一系列规则,涵盖了代码风格、类型转换和错误处理等方面。
采用MISRA-C规范可以减少潜在的错误和漏洞,提高代码质量和稳定性。
2. AUTOSARAUTOSAR是一种用于汽车嵌入式系统开发的标准化软件架构。
嵌入式系统开发规范总结
嵌入式系统开发规范总结嵌入式系统开发是指在嵌入式硬件平台上进行软件开发的过程。
与传统的软件开发不同,嵌入式系统开发具有更高的实时性、可靠性和安全性要求,因此需要制定一些规范来确保软件的质量和稳定性。
本文将总结嵌入式系统开发中常见的规范,并提供一些最佳实践建议。
1. 编码规范编码规范是嵌入式系统开发中非常重要的一项规范,它可以统一代码的风格,提高代码的可读性和可维护性。
以下是一些常见的编码规范:- 使用有意义的变量和函数名,避免使用缩写和无意义的命名。
- 保持代码的缩进和对齐的一致性,使用适当的空格和换行符来提高代码的可读性。
- 避免使用魔法数值,使用常量或宏来代替。
- 函数和模块的长度应该适中,避免过长或过短的函数和模块。
- 注释应该清晰明了,解释代码的意图和实现方法。
2. 接口规范在嵌入式系统开发中,接口规范是非常重要的,它可以确保不同组件之间的互操作性和兼容性。
以下是一些常见的接口规范:- 使用标准格式的接口定义,例如C语言的头文件。
- 接口的名称应该清晰明了,表达其功能和用途。
- 输入参数和返回值应该有明确的定义和数据类型。
- 接口的使用应该符合预期的行为,不应该有副作用。
3. 内存管理规范嵌入式系统的资源是有限的,因此内存管理是非常重要的。
以下是一些常见的内存管理规范:- 合理使用堆栈和堆内存,避免栈溢出和内存泄漏。
- 使用静态内存分配的方式,避免使用动态内存分配。
- 对于长时间运行的系统,应该注意内存的泄漏和碎片问题。
4. 任务调度规范嵌入式系统通常包含多个任务,任务调度是系统正常运行的基础。
以下是一些常见的任务调度规范:- 优先级应该根据任务的紧急程度来设定,高优先级的任务应该尽早执行。
- 任务调度的算法应该合理,避免出现死锁和饥饿的情况。
- 对于多核处理器,应该合理分配任务的执行顺序和核心。
5. 驱动开发规范驱动开发是嵌入式系统开发中的一个重要环节,它负责与硬件进行交互。
以下是一些常见的驱动开发规范:- 遵循硬件的编程手册和规范,确保驱动与硬件的兼容性。
嵌入式系统中的软件设计架构与规范选择
嵌入式系统中的软件设计架构与规范选择嵌入式系统是一种特殊的计算机系统,其主要用途是控制和监控各种设备和系统。
嵌入式系统的软件设计架构是确保其正常运行和可靠性的关键因素之一。
在嵌入式系统中,软件设计架构的选择和规范对于系统的效率、可维护性和可扩展性至关重要。
在本文中,我们将讨论嵌入式系统中常用的软件设计架构和规范选择,并分析其优缺点,以帮助开发人员在设计嵌入式系统时做出明智的选择。
一、软件设计架构的选择1. 单一任务架构单一任务架构是最简单的嵌入式软件架构,也被称为顺序式架构或线性架构。
在此架构中,系统中只有一个任务运行,所有的功能都由该任务完成。
该架构易于实现和调试,并且适用于资源有限的嵌入式系统。
然而,单一任务架构往往效率较低,不适用于具有高并发性和多样化功能的系统。
2. 多任务架构多任务架构是应对嵌入式系统复杂性的常见架构之一。
在多任务架构中,系统可同时运行多个任务,每个任务都有不同的功能和优先级。
多任务架构可以改善系统的并发性和吞吐量,提高系统的效率。
然而,多任务架构的设计和调试相对复杂,需要考虑任务之间的通信和同步问题。
3. 分层架构分层架构将嵌入式系统划分为不同的层次,每个层次都负责不同的功能。
分层架构提供了清晰的系统结构和接口,便于模块化开发和维护。
此外,分层架构还可以提高系统的可扩展性和重用性。
然而,分层架构可能会引入额外的延迟,使系统相对复杂,需要更多的资源。
4. 客户端-服务器架构客户端-服务器架构是一种常见的网络应用程序架构,在嵌入式系统中也得到广泛应用。
在此架构中,系统被划分为客户端和服务器两部分,客户端负责用户界面和交互,服务器负责处理数据和逻辑。
客户端和服务器之间通过网络进行通信。
客户端-服务器架构提供了灵活性和可扩展性,但需要考虑网络通信的延迟和安全性。
二、规范选择1. MISRA-CMISRA-C是一种软件开发规范,特别针对嵌入式系统的C语言编程。
该规范旨在确保C语言代码的可靠性、可维护性和可移植性。
嵌入式软件可靠性设计规范方案
嵌入式软件可靠性设计规范方案引言:嵌入式软件是嵌入在设备中的特定用途软件,其可靠性对设备的正确运行和用户的安全至关重要。
为了确保嵌入式软件的可靠性,需要设计一套规范方案,本文将从软件需求、架构设计、编码实现和测试验证等方面进行详细讨论。
一、软件需求规范1.明确定义软件的功能和性能需求,包括输入、输出、算法、响应时间等。
2.定义软件的安全要求,确保系统在可能的风险下能正确响应和保证用户的安全。
3.制定软件的兼容性要求,确保软件与硬件的适配性以及其他相关软件的兼容性。
4.设定软件的可靠性指标,明确软件的容错、可恢复性和可靠性要求。
二、架构设计规范1.使用模块化设计方法,将软件拆分为功能独立的模块,每个模块负责实现一个特定的功能。
2.定义明确的模块接口,确保模块之间的数据传递和信息交换正确可靠。
3.设计预防和处理异常的机制,如输入校验和错误处理,确保系统在异常情况下仍能正常运行和恢复。
4.进行合理的资源管理,包括内存、处理器、外部设备等,确保系统资源的高效利用和稳定性。
三、编码实现规范1.使用结构化的编程方法,遵循良好的编码习惯,如良好的变量命名、代码缩进等。
2.采用清晰易读的代码风格,注释详细,增加代码的可读性和可维护性。
3.进行严格的代码审查,发现和纠正潜在的错误和缺陷。
4.使用合适的算法和数据结构,确保软件的效率和正确性。
四、测试验证规范1.设计全面的测试用例,覆盖软件的各个功能和边界条件。
2.进行单元测试,验证各个模块的正确性和可靠性。
3.进行集成测试,确保各个模块协同工作的正确性和稳定性。
4.进行系统测试,测试整个系统的功能、性能和可靠性。
五、软件配置管理规范1.确定软件的版本控制策略,如使用版本号管理和追踪软件的版本变更。
2.建立有效的配置管理系统,确保软件配置的可控性和可追溯性。
3.设定软件发布和部署策略,确保软件的正确发布和部署。
六、软件维护规范1.定期审查和更新软件的文档,包括需求文档、设计文档和测试文档等。
安全可靠的嵌入式系统设计与开发
安全可靠的嵌入式系统设计与开发近年来,随着物联网和智能化技术的不断发展,嵌入式系统越来越被广泛应用在各种领域,如智能家居、工业自动化、医疗设备等。
对于这些应用场景而言,系统的可靠性和安全性是至关重要的,无论是为了维护用户的财产安全还是为了保证用户的生命安全。
设计和开发安全可靠的嵌入式系统需要考虑多个方面,下面我们将从硬件设计、嵌入式软件开发和系统集成三个方面分别进行探讨。
1. 硬件设计硬件设计是嵌入式系统开发中最基础的部分,直接关系到整个系统的可靠性。
为了保证系统的稳定性和可靠性,硬件设计应该遵循以下几个原则:(1)采用高品质的电子元器件。
选用合适、品质优良的电子元器件是确保系统安全稳定的第一步。
因为电子元器件不仅影响系统工作的稳定性、性能,并且直接会影响系统的安全保障。
(2)采用冗余系统设计。
在硬件设计上考虑到冗余系统设计,即在一些核心器件上采用多个电子元器件堆叠在一起,其中一些用于备份。
当主设备出现问题时,备份设备会立即实现自动切换,避免系统故障产生的后果。
(3)设计稳定的电源系统。
电源不稳定是嵌入式系统容易出现的问题,因此在硬件设计中特别要注意电源质量。
选择一款高品质可靠的、经过测试的电源系统,不仅能保证嵌入式系统的正常工作,还能带来一定的抗干扰能力。
2. 嵌入式软件开发嵌入式软件是嵌入式系统的灵魂,直接决定了系统的性能和功能。
开发高可靠性、高质量的嵌入式软件需要遵循以下原则:(1)采用分层架构设计。
软件分层的目的是实现各层之间的隔离和解耦,从而确保软件系统的可维护性和可扩展性,提高软件的可靠性。
(2)采用即时响应的设计策略。
在嵌入式系统的开发过程中,需要确保各个模块实现低响应时间,尤其是系统中有监控、控制等关键性模块,因为这些模块对于系统响应时间的要求更高。
(3)进行系统级别的测试。
通常的测试方法是通过模拟不同的使用场景进行测试,但对于嵌入式系统来说,这种方法很难模拟用户的使用环境。
因此,需要进行系统级别的全面测试,包括硬件测试和软件测试。
嵌入式系统的实时性与可靠性设计
嵌入式系统的实时性与可靠性设计在当今科技飞速发展的时代,嵌入式系统已经广泛应用于各个领域,从智能家居到工业自动化,从医疗设备到航空航天。
嵌入式系统的性能和稳定性直接影响着整个系统的运行效果和安全性。
其中,实时性和可靠性是嵌入式系统设计中至关重要的两个方面。
实时性是指嵌入式系统在规定的时间内完成特定任务的能力。
在许多应用场景中,如实时控制系统、自动驾驶等,系统必须能够对外部事件做出及时响应,否则可能会导致严重的后果。
为了实现实时性,首先需要考虑的是系统的硬件架构。
选择高性能的处理器、足够的内存和快速的存储设备能够为系统提供强大的计算和数据处理能力。
同时,合理的总线设计和高速的通信接口可以减少数据传输的延迟。
在软件方面,实时操作系统(RTOS)的选择和优化是关键。
RTOS 能够提供任务调度、中断处理和资源管理等功能,确保关键任务能够优先得到执行。
通过合理设置任务的优先级、优化任务切换时间和减少系统开销,可以有效地提高系统的实时响应能力。
此外,采用高效的算法和编程技巧,避免死锁和资源竞争等问题,也是保障实时性的重要手段。
可靠性则是指嵌入式系统在规定的条件下和规定的时间内,完成规定功能的能力。
一个可靠的嵌入式系统能够在复杂的环境中稳定运行,不受外界干扰和自身故障的影响。
为了提高可靠性,硬件设计需要采用高质量的元器件,并进行严格的测试和筛选。
电源管理模块的设计要稳定可靠,以防止电压波动和电源故障对系统造成影响。
同时,散热设计也不容忽视,过热可能会导致系统性能下降甚至损坏硬件。
在软件方面,错误检测和恢复机制是必不可少的。
通过增加校验码、冗余数据等方式,可以检测数据传输和存储过程中的错误。
当系统出现故障时,能够自动进行恢复或者切换到备份系统,以保证系统的持续运行。
此外,软件的更新和维护也非常重要,及时修复漏洞和优化性能可以提高系统的可靠性。
实时性和可靠性在很多情况下是相互关联的。
例如,在一个实时控制系统中,如果系统的可靠性不足,频繁出现故障,那么必然会影响其实时响应能力。
嵌入式系统的可靠性设计与实现
嵌入式系统的可靠性设计与实现第一章嵌入式系统概述嵌入式系统是指将计算机硬件和软件嵌入到被控制的产品中,以完成特定功能的一种计算机系统。
在现代社会中,嵌入式系统无处不在,例如家电、汽车、医疗设备等无处不有。
嵌入式系统的可靠性设计是保证系统稳定运行的核心。
第二章嵌入式系统的可靠性设计1.系统可靠性设计原则在嵌入式系统的可靠性设计中,需要遵循以下原则:(1)重视系统的可靠性:在设计阶段就应该将系统的可靠性作为重要考虑因素。
(2)合理确定系统的可靠性指标:包括可靠性、可用性、故障率、寿命等。
(3)采取系统化设计方法:充分考虑系统的整体性。
(4)采用适当的硬件、软件、电路设计技术,保证系统的可靠性。
2.可靠性设计策略(1)系统级可靠性设计:包括设计阶段的可靠性分析、确定设计的关键指标、消除单点故障、增加冗余,提高系统的可靠性。
(2)硬件可靠性设计:采用关键器件可靠性评估技术,对硬件进行可靠性分析和设计,确保硬件的可靠性。
(3)软件可靠性设计:采用软件可靠性评估技术,对软件进行可靠性分析和设计,确保软件的可靠性。
3.可靠性设计工具常用的可靠性设计工具有可靠性分析软件、寿命试验设备、环境试验设备等。
第三章嵌入式系统的可靠性实现1.硬件实现(1)选用可靠的器件:在设计阶段就要选用可靠性高、品质稳定的器件。
(2)增加冗余:采用冗余设计可以提高系统的可靠性,例如多机热备、多路冗余、备件热插拔等。
(3)电路保护:通过电路保护措施,例如击穿保护、过流保护等,防止电路器件受损,提高系统的可靠性。
2.软件实现(1)软件设计规范:采用标准的软件设计规范,例如MISRA-C、DO-178等,确保软件的质量和可靠性。
(2)代码复审:通过对代码进行复审,发现和解决潜在的问题,提高软件的质量和可靠性。
(3)错误处理机制:采用错误处理机制,如异常处理、输入验证等方式检测和处理系统的错误,防止故障扩散。
第四章嵌入式系统的可靠性测试嵌入式系统的可靠性测试是系统验证和确认系统各个部分是否满足可靠性要求的过程。
嵌入式系统可靠性设计与实现
嵌入式系统可靠性设计与实现嵌入式系统是一种广泛应用于各种领域的计算机系统,集成了处理器、存储器、输入输出接口等组件,用于控制和执行各种任务。
随着嵌入式系统使用场景的不断扩大,对其可靠性的要求也日益提高。
在嵌入式系统开发中,如何设计和实现可靠性成为关键问题。
为了保证嵌入式系统的可靠性,需要从多个方面进行设计和实现,包括硬件设计、软件设计、测试验证等。
下面将对这些方面进行详细探讨。
硬件设计硬件设计是嵌入式系统可靠性的基础,主要包括电路板设计、信号处理、电源设计等。
在硬件设计过程中,应该考虑以下几个方面:电路板设计方面,应该采用高质量的材料,如高温FR-4材料、高精度电容电阻、金属化框架等,以提高硬件的抗干扰能力和稳定性。
信号处理方面,应该采用合适的滤波器、抗干扰措施等,以保证输入输出信号的稳定性和精度。
电源设计方面,应该采用稳定可靠的电源设计,避免过压、欠压情况,以减少硬件故障的发生。
同时,在硬件设计过程中,还应该进行严格的电磁兼容性测试和抗干扰测试,以保证硬件的可靠性。
软件设计软件设计是嵌入式系统的核心,主要包括操作系统设计、应用程序开发等。
在软件设计过程中,应该进行以下几个方面的考虑:操作系统设计方面,应该选择合适的实时操作系统,具有高度的可靠性和稳定性,如Linux、VxWorks等。
应用程序开发方面,应该采用高可靠的程序设计方法,如面向对象编程、模块化设计等,提高程序的可维护性和可靠性。
同时,在软件设计过程中,还应该进行严格的代码审查、单元测试和集成测试等,以保证软件的可靠性。
测试验证测试验证是嵌入式系统可靠性验证的关键。
测试验证包括功能测试、性能测试和可靠性测试等。
在测试验证过程中,应该进行以下几个方面的测试:功能测试方面,应该覆盖所有的功能点,进行全面的测试,保证功能的正确性和完整性。
性能测试方面,应该考虑系统的响应速度、资源占用情况等,以保证系统的稳定性和可靠性。
可靠性测试方面,应该模拟各种可能的故障场景,进行系统的应急响应和恢复测试等,以保证系统的可靠性和稳定性。
嵌入式系统中的可靠性设计研究
嵌入式系统中的可靠性设计研究嵌入式系统是我们日常生活中无处不在的,从汽车、手机、电视到交通控制器、医疗设备、航空航天仪器等,都需要嵌入式系统来完成自己的工作。
这些系统都有一个共同的要求,就是高可靠性和稳定性。
本文将从嵌入式系统中的可靠性设计角度出发,介绍嵌入式系统中可靠性设计的方法和技术。
一、嵌入式系统中的可靠性及其要求嵌入式系统是指植入到其他设备中、用于控制和管理设备功能的计算机系统。
可靠性是嵌入式系统设计中非常重要的部分,一般包括系统性能、可靠性、安全性等方面。
这里我们主要关注嵌入式系统的可靠性设计。
嵌入式系统可靠性是指系统在特定时间范围内以所需的精度、速度、安全性和可用性稳定工作的能力。
由于嵌入式系统的复杂性,对可靠性的要求非常高,对质量、稳定性、可靠性、可测试性等方面都有极高要求。
一般而言,嵌入式系统要求在满足对功能、性能、可靠性、和人体安全等相关指标的要求下,具备下列特点:1. 稳定性:嵌入式系统必须保证工作的长时间稳定和可控性,即系统必须始终处于稳状态下,不会出现意外的崩溃、死锁或其他故障。
2. 可靠性:嵌入式系统必须保证系统的可靠性,这意味着系统的性能、功能和稳定性必须得到充分的考虑和保证,确保系统不会出现硬件问题或软件故障。
3. 快速响应:嵌入式系统需要快速响应用户的输入或环境变化,降低系统响应时间,从而提高用户体验。
二、嵌入式系统中的可靠性设计技术在嵌入式系统中实现可靠性设计,需要采用各种技术和方法。
以下几种技术是嵌入式系统可靠性设计的主要方向:1. 代码检查与调试技术代码检查和调试是测试嵌入式系统中代码质量和稳定性的一种关键技术。
通过代码检查和调试,可以发现和解决代码中的问题,从而提高系统的性能和稳定性。
2. 冗余设计技术冗余技术是嵌入式系统可靠性设计的另一重要方面。
将冗余硬件或软件设计到嵌入式系统中,可以弥补单点故障导致的系统失效。
冗余技术主要包括软件冗余、硬件冗余和备份技术。
嵌入式软件的可靠性设计与优化研究
嵌入式软件的可靠性设计与优化研究近年来,随着科技的不断进步,嵌入式系统的应用越来越广泛。
嵌入式软件,作为嵌入式系统中的重要组成部分,其可靠性设计和优化显得尤为重要。
本文将探讨嵌入式软件的可靠性设计与优化研究。
一、嵌入式系统的定义嵌入式系统(Embedded System)是由计算机硬件和软件组成的特定功能系统,通常嵌入在控制电子设备中,用以控制电子设备的运行。
嵌入式系统不同于通用计算机系统,其应用范围主要集中于工业、军事、医疗、汽车、家电等领域。
二、嵌入式软件的可靠性设计嵌入式软件的可靠性设计是指在软件开发过程中,通过一系列的技术手段来保障软件的稳定性、可靠性和安全性。
其目的是为了确保软件在各种复杂环境下正常运行,同时减少软件缺陷对系统的影响。
1. 静态代码分析静态代码分析是指通过分析代码本身的结构、语义以及上下文信息等信息来发现代码缺陷的一种方法。
静态代码分析可以有效的发现代码中的潜在问题,如空指针、死循环等问题,从而提高软件的可靠性。
2. 动态测试动态测试是指通过运行程序进行测试,检测程序的正确性和稳定性。
其主要方法包括单元测试、集成测试和系统测试。
通过动态测试可以发现软件中的运行时错误,如内存泄露、死锁等问题,并对这些问题进行修复,提高软件的可靠性和稳定性。
3. 设计模式设计模式是一种解决常见问题的优秀软件设计方案,可以提高软件的可维护性和可复用性。
在软件开发过程中,通过使用设计模式来优化软件代码结构,降低代码耦合度,提高代码的可靠性。
三、嵌入式软件的优化研究嵌入式软件的优化是指通过一系列技术手段,优化软件的性能、效率和功耗等指标。
嵌入式系统的应用领域很广,对软件的效率和功耗要求也比较高。
因此,嵌入式软件的优化显得尤为重要。
1. 资源管理嵌入式系统的资源非常有限,为了充分利用系统资源,需要对资源进行管理。
对 CPU、内存、I/O 等资源进行合理分配,可以提高软件的性能和功耗。
2. 算法优化算法优化是指通过对算法进行优化,从而提高软件的效率和性能。
嵌入式软件可靠性设计要求规范汇总情况
合用标准文案嵌入式软件可靠性设计规范汇总序号分类规范要求1.界面分成两类,操作控制类信息、测量监控类信息。
每类又分成三级,高优先级、中优先级、低优先级。
不相同种类的信息内容要分区,不相同级其他信息放置地址不相同、大小不同、色彩不相同。
2.信息内容直观,不用经过换算3.安全重点操作需经过再次确认4.色彩只有两个主色彩(一前风景,一背风景色),其他只能做点缀色5.从任何界面下进入到其他的界面下,最多不得高出 3 层6.单一操作功能下的界面用滚屏方式实现,不能够用翻页形式实现7.同一界面下的数据不要比对8.用通栏布局代替多栏布局9.整合相似的功能,去掉琐碎的UI 元素10.主要功能需要多次加强显示11.人机交互划分选中和可点击的状态,不要使用户迷惑12.设计布局有层次有重点,而非简单排列13.赞同用户撤掉操作而不是使用弹窗需要用户确认14.页面上多使用比较的方法15.使用简洁的表单16.把选项列出来而不是藏起来17.使用连续性的提示符,别让用户误以为页面到了终点18.功能专一而不是使用太多的链接19.提示执行结果的状态20.用直接操作来代替无数个菜单21.直接显示输入框能够省略一个页面22.试着减少线框,减少不用要的注意23.用户没有使用记录的时候要善于引导24.给出默认的选项而不需要用户选择25.保持一致性降低用户的学习成本26.自动补全一些数据,降低用户的操作负担27.敬爱用户的使用习惯而不是创立新的规则28.将相关的条目分组,不要纷乱无章的排列29.采用实时校验而不是到最后才提示错误30.需要用户输入的格式宽松严格限制格式31.能够给用户供应一些快捷操作32.使用一些比较33.初始化的时候给用户一些激励34.次序渐进地引导用户,不要简单粗暴地直接表现给用户35.项目主管检查团队成员编译器版本可否一致(对外协团队、及复用以前的成熟代码时,特别关注此项)36.软件工程师项目开始前,检查自己所用编译器版本与团队可否一致(对外协团队、及复用以前的成熟代码时,特别关注此项)37.编译器环境在项目开发结束时,一并提交归档;编译器38.任何一个新设计的软件系统中、任何一个新的变量种类,均须做强拟定义,以防范程序移植中可能产生的数据种类默认规格不一致而以致错误的问题(定义时不能够直接使用基本种类,必定转型,建立跨平台适配库;)39.多人开发必定一致版本、补丁,必定有配置说明,安装指南;40.所有变量使用前必定赋初值;41.所有报警要分级(高、中、低),并在设计开发文档中予以说明。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
50.
硬件端口读进来的数据必须加值域范围的判断
51.
硬件端口读取数据,必须加可控时间或次数的有限次限制
52.
A/D的位数比前端放大电路的精度要求略高即可,并通过数学计算验证
53.
对运动部件的控制,正向运动突然转向反向运动时,必须控制先正向减速到0,然后再
反向加速的控制方式
54.
运动部件停机后、再快速启动的工作控制方式是不允许的。须停机、开机、delay延时、
13.
允许用户撤销操作而不是使用弹窗需要用户确认
14.
页面上多使用对比的方法
15.
使用简洁的表单
16.
把选项列出来而不是藏起来
17.
使用连续性的提示符,别让用户误以为页面到了终点
18.
功能专一而不是使用太多的链接
19.
提示执行结果的状态
20.
用直接操作来代替无数个菜单
21.
直接显示输入框可以省略一个页面
再启动执行机构,以确保执行机构先释放原来运动状态的惯性,然后再从静态下启动
55.
运动部件都有过渡过程特性,软件驱动时的上升沿和下降沿的过渡特性会直接影响到硬
件的安全和执行效果
56.
板卡启动时,先initMCU、然后Delay、然后initIO,以确保各芯片的上电电源都已经 稳定下来再启动工作
57.
对采集自有可能受到干扰的模拟端口输入的数字量数据,一定要加上下限、△/△t、规
72.
计算中用到的所有数据必须做值域范围的有效性判断,如读取EEPRO中的数据、调用函
数的返回值、运算的中间值、IO口的数据、寄存器的数据,
73.
系统架构按照控制层和应用层二分法合理分层;控制层的模块划分以受控对象唯一为判 疋标准、应用层以操作动作唯一为判疋标准
74.
相同的控制对象在程序中只出现一次,相同的信息只出现一次
审核、设计更改均须给予特别的重视和资源倾斜
67.
控制类函数,单一函数内只能有单一功能和单一的受控对象
68.
代码中,一个语句中,只能用于完成单一的功能,禁用复合语句,对复合型语句用分解 的办法化简成多个简单小语句
69.
函数调用时,形参是容易出错的地方,函数编程时,形参注释的字体、颜色、大小较突 出为佳;且在函数内部,形参仅做数据传递,不参与运算,在函数内单独定义局部变量, 接收形参数据后,用内部变量进行运算
5.
从任何界面下进入到其他的界面下,最多不得超过3层
6.
单一操作功能下的界面用滚屏方式实现,不能用翻页形式实现
7.
同一界面下的数据不要比对
8.
用通栏布局代替多栏布局
9.
整合相似的功能,去掉零碎的UI兀素
10.
主要功能需要多次强化显示
11.
区分选中和可点击的状态,不要使用户困惑
12.
布局有层次有重点,而非简单罗列
30.
需要用户输入的格式宽松严格限定格式
31.
可以给用户提供一些快捷操作
32.
使用一些对比
33.
初始化的时候给用户一些激励
34.
循序渐进地引导用户,不要简单粗暴地直接呈现给用户
35.
编译器
项目主管检查团队成员编译器版本是否统一(对外协团队、及复用以前的成熟代码时,
尤其关注此项)
36.
软件工程师项目开始前,检查自己所用编译器版本与团队是否一致(对外协团队、及复 用以前的成熟代码时,尤其关注此项)
86.
禁止使用一位、OOH、FFH互补、在二进制码中仅差1-2位的弱数据类型来表示状态含
义
87.பைடு நூலகம்
块存储
88.
重复刷新
89.
故障就地解决
分级(报警、界面、模块)
非对称操作和状态
提示与反馈
简单与复杂
复位、报警提示、调用默认安全数据临时顶替,
60.
疋时刷屏,疋时刷Register,防止干扰导致的屏幕化屏、register数据丢失或篡改
61.
若系统内部既有干扰源,又有敏感电路部分,对这两部分软件控制操作之间加delay。
如电机或继电器启动或停止时,采用motor_o n-delay-AD_start
律性干扰的滤波措施三个方面的容错性机制
58.
对数字端口传输数据可以连续传输两遍,以防范随机性偶发干扰,实时性要求较高的,
可以连续传三遍,2:1判定
59.
模块之间的数据通信联络,用周期性读取的方式、或请求-应答的方式传送数据,一旦超
出周期性时间要求,或未应答,则判定硬件失效,需有软件的配套措施。如对接口芯片
嵌入式软件可靠性设计规范汇总
序号
分类
规范要求
1.
人机交互
设计
界面分成两类,操作控制类信息、测量监控类信息。每类又分成三级,高优先级、中优 先级、低优先级。不冋类型的信息内容要分区,不冋级别的信息放置位置不冋、大小不 同、色彩不同。
2.
信息内容直观,不必经过换算
3.
安全关键操作需经过再次确认
4.
色彩只有两个主色调(一前景色,一背景色色),其他只能做点缀色
37.
编译器环境在项目开发结束时,一并提交归档;
38.
任何一个新设计的软件系统中、任何一个新的变量类型,均须做强制定义,以避免程序
移植中可能产生的数据类型默认规格不一致而导致错误的问题(定义时不能直接使用基
本类型,必须转型,建立跨平台适配库;)
39.
多人开发必须统一版本、补丁,必须有配置说明,安装指南;
40.
所有变量使用前必须赋初值;
41.
Alarm设
计
所有报警要分级(高、中、低),并在设计开发文档中予以说明。包括:
每一个报警的定义、
触发的条件、
触发时人与设备的距离和人的状态、
报警所允许的处理时间、
报警的优先级别
界面上报警提示的位置及图标方式
42.
从报警事件发生开始、 到报警触发、到被人感知到、到系统自动处理或人工处理并生效、 直至问题被排除的间隔时间,需进行测量并确认
43.
高级报警显示:红色,1.4Hz〜2.8Hz,信占比率20%〜60%开
44.
中级报警显示:黄色,0.4Hz〜0.8Hz,信占比率20%〜60%开
45.
低级报警显示:蓝绿色或者黄色,常开,信占比率100%
46.
高优先级和中优先级的报警上下限设置值一旦超出可能引起较严重后果的非合理报警数
值区域时,均需加单独的对话弹出框予以提醒操作者
70.
程序中不出现常数 (局部循环性常数不在此列),常数用宏定义方式; 调试中才能确定的
调节参数常数,宜通过“工程师校准界面”中补偿参数的方式预留用户设置接口,以补
偿因环境条件或配套设备参数变化引起的参数变化量;而非与死在程序中。
71.
全局变量慎用,不得不用时,要专门组织项目组讨论会,集体确定是否有必要;设计时 用统一的操作函数对其进行操作。
62.
对MCI之外的存储操作,最好加存储后检查,并有成功提示
63.
输入信号要做处理:按键、电源等做防抖处理及范围限制
64.
1/2以上的机时MCI不必工作时,用睡眠设置抗扰
65.
软件陷阱
66.
代码
程序代码模块要按照功能分级,基本功能和可能导致安全问题的模块为高级、用户能感
知到但不属于高级功能部分的功能为中级、其他为低级;高中级程序的编制人员、测试、
75.
变量和函数要有统一命名规范
76.
功能模块的形参个数越少越好、数据类型越简单越好,以保证低耦合;最好控制在3个
以内
77.
确定模块间的耦合方式为哪一种,如果处于非优选的耦合方式,要分析是否可能按照较
优先推荐的耦合方式进行耦合。排序优选顺序:直接数据耦合-间接数据耦合-控制
耦合-外部数据耦合-公共数据耦合
22.
试着减少线框,减少不必要的注意
23.
用户没有使用记录的时候要善于引导
24.
给出默认的选项而不需要用户选择
25.
保持一致性降低用户的学习成本
26.
自动补全一些数据,降低用户的操作负担
27.
尊重用户的使用习惯而不是创造新的规则
28.
将相关的条目分组,不要杂乱无章的排列
29.
米用及时校验而不是到最后才提示错误
83.
变量/存
储
变量名称里加入数据类型和作用域的信息,使隐含信息显性化,避免可读性差和数据类 型强制转换的问题
84.
重要数据备份需米用异地备份方式,异地存储的介质、面对的应力不是冋一类应力,避
免单一事故造成的数据丢失
85.
重要数据之前之后预留较大的空闲存储区,避免被之前数据覆盖;比如占2字节的
变量分配4bytes
47.
默认的报警预置不允许修改,并提供让用户能恢复到出厂默认报警设置的操作途径
48.
做报警日志记录,为以后的故障分析、维修检查或商业纠纷提供依据
49.
与硬件接
口的软件
数据传输接口的硬件性能限制了数据传输速率的提高,在确定波特率前,要确认硬件所
能承受的最高传输率,光耦、485、232、CAN传输线上有防护器件(TVS或压敏电阻)
c产生对硬件进行自主控制信号的软件
d产生直接影响硬件部件运动或启动安全关键功能的信号的软件
e其输出是显示安全关键硬件的状态的软件。
80.
禁止使用空间不受控(如循环到A<£,再停止连续步进递增存储)、时间不受控(如 循环到A<&,再跳出循环)的语句
81.
工作时间不超过1/2时启动休眠
82.
防跑飞的软件陷阱