WinCE中BSP的Clone
1. 基于WinCE6.0,首先打开VS2005,然后选择”Tools”->”Platform Builder for CE 6.0”->”Clone BSP”以后,会弹出一个克隆BSP的窗口。
2. 在弹出的窗口中,我们可以看到一些信息,在”Source BSP”中选择目前WinCE系统中已经支持的BSP,选择一个和你的平台相近的BSP,也就是被克隆的BSP,在这里我们选择”Device Emulator: ARMV4I”。然后在”Name”输入名字为MyBSP,在”Description”中输入This is my BSP。在”Platform Directory”中输入MyBSP,这里最好和上面的”Name”一致。”Vendor”输入My,”Version”输入1.0。
3. 最后点击”Clone”就可以了,如果快的话,稍等几秒就会完成。如果成功了,会弹出一个对话框告诉你BSP已经克隆成功。
比较简单,BSP已经克隆完成。可以在”WINCE600Platform”下面看到一个MyBSP的文件夹,就是克隆出来的BSP。
下面简单介绍一些里面的内容:
sources.cmn:该文件是一个BSP的sources的总文件,它会作用于BSP中所有的sources文件,就是说在这里面的设置会被用到BSP所有的sources文件中。
//在6516的DUMA 中也有
MyBSP.bat:这是一个批处理文件,主要完成一些默认的环境变量的设置。他要和文件夹同名,在你以该BSP创建工程或者打开工程的时候,这个批处理会被自动运行.
//在6516的DUMA 中也有,叫duma.bat
dirs:目录文件,指明要被编译的文件夹,一般都是指向src文件夹。
//在6516的DUMA 中也有
cebasecesysgen.bat:该批处理会被cesysgen.bat调用,主要是设置一些WinCE系统相关的SYSGEN_xxx环境变量。该脚本没有也无所谓,很多BSP中都没有该脚本。
//在6516的DUMA 中也有
CATALOG文件夹:该文件夹里面包含了BSP的工程文件,名为MyBSP.pbcxml。可以使用记事本直接编辑它,这里要注意的是,他的名字要和文件夹名字一致,否则不能被识别出来。
//DUMA.pbcxml
CESYSGEN文件夹:该文件夹中包含一个makefile文件,主要是根据环境变量的设置对代码及配置文件进行过滤。
//cesysgen
FILES文件夹:该文件夹包含了BSP以及WinCE的配置文件,其中包括bib文件,注册表文件,db文件等。
//DUMA/files
SRC文件夹:就是BSP的源代码文件夹,里面包含了BSP的所有源代码。其中应该包括”Bootloader”,”Drivers”,”Inc”,”OAL”和”Kitl”几个文件夹。当然不同的BSP,名字可能略有差别。”Bootloader”是WinCE的bootloader,一般是指EBOOT了。”Drivers”中包含了BSP中所有的驱动。”Inc”是一个头文件文件夹。”OAL”包含了WinCE中OAL部分的代码。”Kitl”是实现基于网络调试的Kilt的代码。
//DUMA/src
致就介绍这些。上面说得挺多,其实就是介绍了一下BSP的克隆,以及BSP里面都有些什么东西。提到克隆,这里在补充一下,在WinCE6.0中,不光是BSP可以克隆,WinCE中的一些组件也是可以克隆的。当我们创建了一个WinCE的工程以后,我们可以会使用一些WinCE的组建,但是我们想改一下他的源代码,一般这些源代码都是位于Public目录下面的。更改Public目录下的源代码不是一个好的注意,首先你改Public目录下的源代码需要重新编译Public目录,这将用掉几个小时的时间,其次如果微软的补丁更新了你改的代码,那你可能还需要重新修改。
所以,在WinCE的工程中,如果你想更改Public目录下的组件的源代码,那么克隆可能是一个更好的选择,来介绍一下:
1. 假如你已经有了一个工程,在你的工程里面的”Catalog View”中,假如要克隆”Device Drivers”->”USB Function”->”USB Function Client”->”Mass Storage”这个模块,你需要右击,然后弹出如下的窗口:
2.然后选择”Clone Catalog Item”,又会弹出一个窗口,如下:
3.选择你要克隆的组件,然后点”OK”就可以了。成功以后,会弹出克隆成功的对话框。
完成了上面的3个步骤,组件的克隆就已经完成,被克隆的组件会被自动的拷贝到你的工程的目录下面,然后你在IDE环境中切换到”Solution Explorer”,你会在”Subprojects”下面看到你所克隆的组件,该组件现在已经作为一个子工程存在了,而且代码也已经拷贝到工程的目录下面。
最后啰嗦两句,关于BSP的克隆应该比较简单,但是有的时候也会出错,一般出错的原因可能是因为被克隆的BSP有问题。关于组件的克隆,是在你需要修改Public目录下源代码的时候采用的,而且不是什么组件都可以克隆的,如果组建不能被克隆,你就需要自己手动去改了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lpt19832003/archive/2009/09/10/4538929.aspx