文章预览
如果一个大型嵌入式项目,代码没有做容错设计,你能想象后果是什么吗? 有经验的朋友肯定能想到,这样的项目会有无数bug,而且有些bug很难查找。 今天就来聊聊嵌入式代码常见的一些容错设计方法。 使用断言( Assert ) 什么是Assert断言?这里 举一个栗子来说明吧。 有这么一个数组和函数: int Array[ 5 ] = { 0xA1 , 0xB2 , 0xC3 , 0xD4 , 0xE5 }; int Fun ( char i ) { return Array[i]; } 假如按下下面方式调用Fun函数,你觉得会出错吗? int a; a = Fun(8); 有经验的朋友肯定都猜到了,在Fun函数中增加 断言(Assert)机制,就可以避免出错。 断言(Assert)是代码中最常见的一种容错设计,很多源码库都能看到断言的身影,比如STM32外设库: void GPIO_Init (GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); assert_param(IS_
………………………………