作者Dungeon (Dungeon)
看板Soft_Job
标题Re: [请益] 如何快速的看懂程式码?
时间Thu Oct 23 22:32:59 2008
※ 引述《gogogogoooo (...)》之铭言:
: 目前刚进去工作
: 主管便把他们Team开发成品到现在的source code丢给我看
: 大概数十万行吧 里头的注解非常的少 可以说是没有
: 主管叫我自行trace code 看懂整个程式码在干麻
: 常常看到一大堆变数 却完全不晓得意义为何
: 也不知道干麽用 觉得非常的挫折
不写注解的公司,是公司本身的问题比较大,工程师
问题比较小,公司不要求,谁想去写那个?
举个例子,看到一行程式:
__irq_enable();
理所当然是开启中断...
细找下去...看到一行
#define (IRQ_CTL & 0x2) __irq_enable();
接着你已经知道IRQ_CTL应该就是设定中断状态的某个咚咚,
继续找下去可能会看到
#define IRQ_CTL 0x8000+0x2
喔,原来是base address加上各个偏移植代表不同设定区。
这时候你去翻这颗CHIP的手册,原来就列在里面....
其实整个系统跟硬体周边是息息相关的,每个周边都会有至少一本
手册可以参考,这种东西就是看过一次设定过一次就懂的,
也不需要去重翻。就像 __irq_enable(); 这种东西如果
是你自己写的,那麽看一辈子都会知道他是啥,既然如此,
写的人干嘛写自己一定看得懂的东西?
所以我才说这是公司不要求的後果,如果公司要求呢?
他大可在一些奇怪的地方加个小注解,例如碰到
data[i]=SCIBUFRX
可以注解成
// SCIBUFRX = serial 接收缓冲区,定义请参考XX手册SCI部分。
目前你能做的就是把所有搞不懂的变数从头到尾追溯到
最终的文件,才会知道比较完整的架构,不然看半天还是会
一知半解的,特别是当你需要动手去修改功能的时候。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.170.106.105
1F:推 areyo:trace也可以帮自己练debug功力XD 10/23 22:39
2F:推 OnlyRD:DEFINE反了 而且这行CODE嵌在程式里没有用 10/25 00:59
3F:→ Dungeon:好眼力 10/25 04:23