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