很容易假设一个系统在现场表现得和在工程台上一样完美。在开发过程中,嵌入式软件是在最好的条件下编写的。嵌入式开发人员知道,或者至少有他们自己的系统应该如何工作的概念。 事情通常运行得相当顺利,但随着成千上万的设备开始进入用户手中,意外发生和错误发生的可能性在统计上变得很可能。在今天的文章中,让我们探讨开发人员编写可以处理意外错误的软件所需的策略。
策略 #1 – 不断考虑可能出现的问题
开发人员需要部署以处理错误的第一个策略是在编写每一行代码时积极质疑可能出现的问题。例如,当我为如下函数编写实现时:
void Dio_WriteChannel(DioChannel_t Channel, bool state)
{
// Additional code goes here
}
我问自己几个问题:
如果 Channel 参数超出范围会发生什么?
该函数应该返回错误代码还是成功标志?
如何验证所需的通道状态是否已更改?
如果状态试图改变但不能改变,我该怎么办?
内存是否会损坏,以至于我的bool状态变量不是真假? 如果是这样,我该如何处理?
断言是否足以在开发时检查边界条件,还是应该对参数进行实时检查?
这是很多问题,或者诸如简单通用代码块之类的问题,我们真的还没有开始填写细节!但是,如果你希望能够处理错误,则必须不断地质疑代码以及可能出现的问题。