楼主:
yamakazi (大安吴彦祖)
2018-09-03 22:26:08你是用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这样
作者:
loadingN (sarsaparilla)
2018-09-03 22:51:00推
作者: j0938926004 2018-09-03 23:16:00
推
感谢回复 我也是用SI,看函式真的方便很多。code写完我也不敢乱上 出包很惨的XD
作者:
zxc1748 (欢乐棒)
2018-09-03 23:42:00用心
作者: call0123 (修~) 2018-09-03 23:50:00
大推
作者:
IanLi (IanLi)
2018-09-03 23:54:00这也太认真的好心回文
作者: q438241zy 2018-09-04 09:01:00
这怎那么像我的日常
作者:
Asbarla (木头)
2018-09-04 09:08:00原PO把我的推文修掉惹..QQ
原原po的问题就不是写程式的问题,是他对前人的架构不了解,你发这个文对他又没帮助
作者: weber1993 (weber) 2018-09-04 09:19:00
推
楼主:
yamakazi (大安吴彦祖)
2018-09-04 09:22:00修掉推文不好意思 因为用手机编辑 FW SW我都写过 FW的架构真的不会难到哪里去 花时间多看多问 最后就会懂了FW很大一部分是Bootloader和driver 这种基础流程不可能写的多复杂 写太复杂只是找自己麻烦除非你的FW里面包了一堆算法 比如说Nand flash 才会变复杂
作者: a41307 (玮哥牌壮X药) 2018-09-04 10:27:00
分位日常
作者:
zhuzii (UsualMan)
2018-09-04 10:56:00推推 感觉可以m
作者:
lammin (死鱼)
2018-09-04 11:07:00这真的好贴切
作者:
sarino (ocean)
2018-09-04 12:24:00的确是FW know-how
作者:
as891339 (Yang_Kai)
2018-09-04 17:13:00推
作者: boy6074d (David) 2018-09-05 16:27:00
感谢分享