PB编译过程时间比较长,编译的过程的过程又比较多,而且各个编译过程可以独立。所以觉得有必要对各个独立过程做一些介绍,然后有针对性的做一些优化!
PB的编译过程分为pre sysgen,sysgen,post sysgen,buildrel和Makeimg五个阶段。
在Pre sysgen阶段主要做的工作,我也不清楚,说是主要针对public和private的处理。难道是正对所有文件的编译吗?待确认啊!
在 sysgen阶段主要针对各个系统组件的编译,这个阶段是花费之间最长的阶段。所以不到万不得已不要进行sysgen的操作。如果非要对某个系统组件进行更改的话,保险的做法是做一些sysgen。但是如果高手的做法应该肯定不是。
在 post sysgen阶段,主要是针对bsp做编译工作。这部分工作是很快的。而且在VC 2005中,有专门针对这个步骤的控制命令,就是build current bsp and subproject。
在buildrel中的主要工作就是拷贝文件到flat fold中。这个也有专门的命令:copy file to release directory.所以如果将来有正对bib文件的修改,我觉得可以直接使用这个命令,让后在makeimg就可以啊。这个也是一个之前困扰我很久的问题啊。以前老师直接 clean sysgen。结果花费了巨大的时间啊!!!
最后阶段就是makeimg,主要是将之前编译好的文件连接起来,形成最后的nk.bin。 特别例子说明:
1. 如果修改了系统目录下的文件,最安全,最笨的办法就是clean sysgen。高效的办法是看其影响,如果不影响其他组件,则可以到该系统目录下build,以后再makeimg。
2. 如果修改了bsp目录下的源代码文件,也可以在该文件夹下build之后再makeimg。如果你没有默认添加build后会自动将文件拷贝到flat fold的话,需要添加copy file to release directory命令,然后再makeimg。
3. 如果仅是修改了bib或者reg文件的话,可以只用copy file to release directory,然后再makeimg的。
|