嵌入式系统的安全、可靠与防护策略
1. 运行时错误日志
1.1 运行时错误日志的重要性
运行时错误日志具有两大重要作用。其一,能够检测流入实际产品中的软件漏洞;其二,可保护软件开发者,避免他们因非软件缺陷而受到无端指责,从而避免在不存在的软件漏洞上浪费时间。
在实际应用中,软件并非完美无缺,常因不可重现的问题而被归咎。桌面计算文化中,遇到问题通常先让用户重启系统再尝试。多数情况下,通过重启解决的桌面计算机问题是由软件缺陷导致的。然而,嵌入式系统的故障排查更为复杂,机械系统中的污垢、恶劣的环境条件、电磁干扰等外部因素,都可能导致嵌入式系统出现故障,即便软件本身并无问题。当系统出现问题却无法重现或隔离时,会导致客户不满和开发者沮丧。现场服务人员常将问题归咎于软件,无论这种指责是否合理。因此,在最终产品中纳入运行时错误日志和性能监测机制十分必要。
1.2 可能的症状
若系统存在以下情况,可从更好的运行时错误日志中受益:
- 系统测试中发现无法诊断的问题,尤其是间歇性问题。
- 大量退回的设备不存在可重现的问题。
- 大量服务呼叫最终得出“未发现问题”的报告,即服务技术人员到达时设备运行正常。
- 系统缺乏错误日志记录功能。例如,系统发生故障时,非易失性存储器中没有记录故障发生的迹象,也没有记录故障类型。
1.3 不记录错误日志的风险
不记录错误日志会带来诸多风险,包括高昂的保修维修成本、高维护成本以及因现场出现无法诊断和修复的问题而导致的客户不满。此外,软件开发者可能会花费过多时间尝试重现来源不明的缺陷,尤其是在系统出现不明原因故障时,软件往往会被无端指责