WinCE下多份BSP的维护技巧

简介: 在BSP开发的早期阶段,我们一般是Clone一个与目标平台最相近的的BSP,然后以此为基础做修改。在实际开发过程中,还可能同时存在多种型号的产品。它们的硬件几乎一样,主要是外设不同,如LCD分辨率、按键定义和GPIO的使用等。

      在BSP开发的早期阶段,我们一般是Clone一个与目标平台最相近的的BSP,然后以此为基础做修改。在实际开发过程中,还可能同时存在多种型号的产品。它们的硬件几乎一样,主要是外设不同,如LCD分辨率、按键定义和GPIO的使用等。这种情况下,一般可通过环境变量、宏定义和条件编译来区分不同的产品型号,一份BSP对应几种型号的产品。但如果外设的差别太大,使用这个方法反而会增加代码维护的难度,单独维护一份,可能更为方便。Clone BSP就是经常使用的一种方法。新建WinCE6.0的项目时同时选择两个BSP,然后根据需要有选择的编译。以上说的这些都是BSP开发中常见的方法。本文介绍另外一种技巧,lgh首创的,用了快一年了,感觉更方便,跟大家分享一下。

     假设以DEVICEEMULATOR的BSP为基础,针对两类产品创建两份BSP,DEVICEEMULATOR1和DEVICEEMULATOR2。只需要在Platform的目录下,创建目录DEVICEEMULATOR1和DEVICEEMULATOR2,并将DEVICEEMULATOR的内容拷贝到这两个目录下,重命名DEVICEEMULATOR为DEVICEEMULATORORI。至此,准备工作就做完了。在新建项目之前,只需创建一个目录符号链接。例如需编译DEVICEEMULATOR1的系统时,在命令行窗口输入"mklink /D DEVICEEMULATOR DEVICEEMULATOR1”。同样,需要编译DEVICEEMULATOR2的系统时,在命令行窗口输入"mklink /D DEVICEEMULATOR DEVICEEMULATOR2”。这种切换可以随时进行,为了使用更方便,可以写成批处理文件,内容如下。 

rmdir DEVICEEMULATOR  / q
mklink 
/ D DEVICEEMULATOR DEVICEEMULATOR1
@echo off
echo.
& pause

       mklink在Windows 7中直接有支持。在WinXP下,可以使用linkd,对应的批处理文件的内容如下。

linkd DEVICEEMULATOR DEVICEEMULATOR1
@echo off
echo.
& pause

       使用该方法后,一个项目工程就可以编译出两个不同产品的WinCE操作系统映像。如果选择的系统组件不一样,我们也可以创建多个项目,分别编译,非常灵活。这种方法的关键是在NTFS的分区中创建目录符号链接,所以需要在NTFS的分区上用。

目录
相关文章
|
8月前
|
存储 Linux 内存技术
嵌入式linux下获取flash分区大小
嵌入式linux下获取flash分区大小
84 0
|
Linux
嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑
嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑
256 0
|
调度
【Magisk模块】Raiden Tweaks优化调度(搬运国外)
【Magisk模块】Raiden Tweaks优化调度(搬运国外)
309 0
【Magisk模块】Raiden Tweaks优化调度(搬运国外)
|
开发工具 内存技术
zynq程序固化补充篇: 不切换启动模式强制烧写
使用SDK2018.2第一次进行烧写 Flash,在qspi模式下会报错,只有切换至jtag模式下才可以进行烧录,后续的再次烧录不会出现类似问题。但是调试的时候必须切回jtag模式(将BOOT MODE 5拉低才可以调试)
2327 1
zynq程序固化补充篇: 不切换启动模式强制烧写
|
安全 Unix Linux
关于嵌入式Linux系统flash分区设计及文件系统格式选择的一些浅见
嵌入式系统应用程序升级是比较频繁的,对于flash的合理划分与文件系统选型就显得尤为关键。
380 0
|
Linux 开发者
Linux设备驱动开发3-Kconfig构建系统
Linux设备驱动开发3-Kconfig构建系统
|
存储 安全 开发工具
ZYNQ裸板:程序固化篇
一般的调试中我们都是通过 JTAG 接口将 FPGA 配置文件和应用程序下载到 ZYNQ 器件中。同样的,我们也可以将尝试把程序存储在非易失性存储器中,在上电或者复位时让程序自动运行,这个过程需要启动引导程序( Boot Loader) 的参与
435 0
ZYNQ裸板:程序固化篇
|
开发工具 异构计算 内存技术
ZYNQ - 无DDR固化程序(压缩FSBL以能固化更大的应用程序在OCM上)
ZYNQ - 无DDR固化程序(压缩FSBL以能固化更大的应用程序在OCM上)
668 0
ZYNQ - 无DDR固化程序(压缩FSBL以能固化更大的应用程序在OCM上)
|
Ubuntu Linux 数据安全/隐私保护
ZYNQ - 嵌入式Linux开发 -06- petalinux设计流程
ZYNQ - 嵌入式Linux开发 -06- petalinux设计流程
732 0
ZYNQ - 嵌入式Linux开发 -06- petalinux设计流程