编程语言
文章平均质量分 61
__poly__
开发少不了错误和异常但那又怎样我是嵌入式软件开发工程师我为自己代言
展开
-
A1、目前嵌入式ARM数据处理操作几乎是32位的,局部变量最好用32位的数据类定义!
函数示例:用来计算一个包含64个字的数据包的校验和。int checksum(int * data){ char i; int sum = 0; for( i = 0; i { sum += data[i]; } return sum;}似乎声明i为char类型是没有什么问题的,甚至可能会觉得一个char类型的数据原创 2013-03-30 20:33:26 · 3356 阅读 · 0 评论 -
A3、限制函数内部循环使用局部变量的数目,最多不超过12个
应该尽量限制函数内部循环所用局部变量的数目,最多不超过12个,这样,编译器就可以把这些变量都分配给ARM寄存器;编译器会试图对C函数中的每一个局部变量分配一个寄存器。如果几个局部变量不会交迭使用,那么编译器会对它们分配同一个寄存器。当局部变量多于可用的寄存器时,编译器会把多余的变量存储到堆栈。由于这些变量被写入了存储器,所以被称为溢出或者替换(swapped out)变量,就像虚拟存储器的内容被替原创 2013-03-30 21:55:45 · 830 阅读 · 0 评论 -
A2、减计数循环要比增计数循环更好。
循环的终止条件应为减计数到零(count dawn to zero),而不是计数增加到某个特定的限制值。由于减计数结果已存储在条件标志里,与零比较的指令就可以省略了。由于不再使用‘作为数组的下标索引,采用减计数就没有任何问题。int checksum(int * data){ unsigned int i; int sum = 0; for( i = 64;原创 2013-03-30 21:06:15 · 659 阅读 · 0 评论