一 嵌入式编程中五个必探的“潜在错误”
- 竞争条件(多任务中或任务和ISR之间的共享变量):全局变量提倡使用“的“G_ ”前缀(Netrino嵌入式C编码标准),而原子操作(互斥量/锁)
- 函数不可重入:超时返回,锁机制,嵌套计数。如果您使用GNU编译器来构建基于RTOS的应用程序,请注意您应该使用可重入的“ newlib”标准C库,而不是默认库。
- 缺少volatile关键字:被系统优化
- 堆栈溢出:想法设定最佳大小,为堆栈边界设定篱笆
- 堆碎片化:不用默认的molloc/free而用系统分好的固定大小的内存池加分配算法。