Chinaunix首页 | 论坛 | 博客
  • 博客访问: 225269
  • 博文数量: 49
  • 博客积分: 2101
  • 博客等级: 大尉
  • 技术积分: 525
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-07 10:38
文章分类

全部博文(49)

文章存档

2010年(49)

我的朋友

分类: 嵌入式

2010-09-07 11:38:52

1 tornado安装目录下的源码

1.1修改后需编译到库中的源码

D:\Tornado2.0\target\src

该目录下的源码修了之后,必须利用各个目录底下的makefile来重新编译到D:\Tornado2.0\target\lib目录下的库中。例如我们使用的libPPC860gnuvx.a库文件中。

Make CPU=PPC860 TOOL=gnu rclean

Make CPU=PPC860 TOOL=gnu

这两步就行。

 

2.2 修改后不需编译到库中的源码

D:\Tornado2.0\target\config\comps\src

位于该目录底下的源码在修改后是直接被编译到工程中的,不存在库的概念。

 

2 tornadoxxxconfig文件区别

1 三个xxxConfig文件

bootrom编译bootConfig

1 I6 }1 `1 O& wvxworks命令行下编译usrConfig.c ,

0 r( @4 L+ c7 V5 x) U1 r# ~vxworks集成环境(Tornado2.2)下编译prjConfig.c

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目录底下了。

最后,其它的函数调用基本无外乎上述三种了。

所以根据上述分析,编程人员可以根据需要来修改源码。
阅读(1204) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~