你是用C写FW吧
C相对C++简单很多
首先先准备好一套好的code tracing tool
Slik edit, source insight, 或是visual studio都可以
我个人比较喜欢SI
他有个功能是可以找refernce
你很快可以列出这个函数有在哪些地方被使用到
C不是物件导向 也没有一大堆第三方函式库
顶多就是call back fuction 和指标一开始比较难懂
大部分流程都是sequential 没有multithread的话又更简单
如果是系统厂的FW 把厂商提供的sample code和spec看一看 看一下重要的register怎么读写 有没有特定流程
尤其是ISR的部分 写软件转做FW的很容易忘记硬件有自己interrupt
有问题就问原厂 不要自己想破头想单干硬解
IDE或script环境先建好 不要compile环境不一样产生有问题的bin档
记住volatile这个关键字是干嘛的 如果某个变量在code以外的地方有可能被更动的话就要?
debug mode要会用 有时候光打印log看不出问题
版本控制软件要会 进code前请资深的同事帮你review下 自己先测过再进code
逻辑分析仪 示波器要会用 要知道怎么trigger
有bug很多时候是你内存操作错误
比如说用太多区域变量导致stack overflow
或是有module把heap free掉 别的module又去access他
通常内存问题log和debug mode看不太出来
单个module也不会发生 但整个程式一起运作就会发生crash 很难解
功力不够的话 没事不要重构 会招人怨又找自己麻烦
菜鸟的话 大guy4这样