2010年(49)
分类: 嵌入式
2010-09-07 11:38:52
D:\Tornado2.0\target\src
该目录下的源码修了之后,必须利用各个目录底下的makefile来重新编译到D:\Tornado2.0\target\lib目录下的库中。例如我们使用的libPPC860gnuvx.a库文件中。
Make CPU=PPC860 TOOL=gnu rclean
Make CPU=PPC860 TOOL=gnu
这两步就行。
D:\Tornado2.0\target\config\comps\src
位于该目录底下的源码在修改后是直接被编译到工程中的,不存在库的概念。
bootrom编译bootConfig,
vxworks命令行下编译usrConfig.c ,
vxworks集成环境(Tornado2.2)下编译prjConfig.c
void usrInit (int startType)
{
sysStart (startType); /* clear BSS and set up the vector table base address. */
cacheLibInit (USER_I_CACHE_MODE, USER_D_CACHE_MODE); /* include cache support */
excVecInit (); /* exception handling */
sysHwInit (); /* call the BSPs sysHwInit routine during system startup */
usrCacheEnable (); /* optionally enable caches */
usrKernelInit (); /* context switch and interrupt handling. DO NOT REMOVE. */
}
首先发现sysStart()函数包含在D:\Tornado2.0\target\config\comps\src目录下的usrStartup.c源码中。
其次cacheLibInit()函数是没有源码的,它在D:\Tornado2.0\target\h目录下的cacheLib.h头文件中声明。实际上此函数应该是已经编译到D:\Tornado2.0\target\lib下的库中,并且由于在D:\Tornado2.0\target\src目录下没有提供它的源码所以该函数是不可修改的。
excVecInit函数也是如此;
再次sysHwInit ()就来自于我们自己的bsp目录底下了。
最后,其它的函数调用基本无外乎上述三种了。
所以根据上述分析,编程人员可以根据需要来修改源码。