最佳实践是每个固件应用程序都应遵循的基本,必不可少的实践。防御性编程一直是一项重要的软件技能。以下是固件开发人员应牢记的一些在C中进行防御性编程的最佳实践:
- 检查功能的输入和输出
- 检查函数的返回值(它们经常被忽略!)
- 监视缓冲区以防止溢出
- 验证指针不是NULL尤其是函数指针
- 使用断言宏来检测错误而非错误情况
- 2-3%的代码库应为断言
- 断言不应修改系统状态
- 仅公开大型程序需要了解的数据和功能(封装)
- 在构建过程中执行静态分析
- 监视堆栈是否溢出
- 用已知的模式,ISR向量或停止指令填充未使用的ROM
- 看门狗系统应该集成在一起,不能盲目地看门狗
遵循这些简单的最佳实践可以帮助确保提高固件质量,并是开发安全固件的第一步。