分类: 嵌入式
2011-04-18 19:49:02
vx中的prjConfig.c
我更改usrconfig.c文件某函数内的内容。在开发环境(Tonardo2.2)下REBUILDER ALL, 运行Vxworks发现我的修改没有起作用(也就是说我的修改未被编译)。编译过程的前面几步中有一步就是:
vxrm ..\prjComps.h ..\prjParams.h ..\prjConfig.c ..\linkSyms.c
然后又自动创建了一个新的prjConfig.c,所有刚才改过的prjConfig.c根本不奏效!
在资料中看到如果使用手动编译,则编译的是usrconfig.c文件,如果在开发环境下编译则编译的是prjconfig.c。也就是说在IDE下编译就要按照prjConfig.c里各个程序的封装顺序执行,也就是说它已经抛开了usrConfig.c不管了!
prjConfig.c引用usr***.c,目录是target/config/comps/src(简称C/S,!不是bootrom调用的同名函数)。图形界面下的初始配置来自bsp的config.h和makefile,在工程建立的时候系统会自动完成此工作,编译使系统会根据图形界面下的配置自动生成prjparam.h和prjComps.h来保存选中的组件和配置参数。此后配置的改动将通过prjConfig.c和这两个.h文件反映,再修改config.h不会对vxWorks的生成起作用。对上面三个文件的手工修改也会被系统自动覆盖。系统同时还在usrProj下自动生成makefile,同样不能通过对文件的直接修改达到更新目的。
如果需要修改prjconfig.c里面的东西,可以按照以下方法来处理:
新建一个文件,名字随你取,必然usrprjConfig.c。然后把prjConfig.c里的内容完全拷贝过来,再把prjConfig.c文件从工 程里remove,把usrprjConfig.c文件add进来。这样你就可以把usrprjConfig.c当作prjConfig.c,并在里面放 心的改了,不用担心重新编译恢复原样了。
不过要注意的是,要做好prjConfig.c的备份,而且在重建工程时要重复以上步骤!