# ; @REM !等符号在WINCE6.0下的意义和作用

发布者:SecretWhisper最新更新时间:2024-09-30 来源: cnblogs关键字:符号  WINCE6 手机看文章 扫描二维码
随时随地手机看文章

     其实在我的日志里面很早就有介绍这里面一些符号的意义了,具体可以看我的第二篇日志《 .bat 配置文件的一些符号所代表的意思?》。只是当时学的不是很扎实,今天师妹请教,于是整理一篇日志,方便后面的同学学习。


     其实这些文件都是一个批处理文件,具体的指令可以参考windows shell 编程指令。


    文章标题中出现的符号不是我们经常所看见的普通标点符号,也不要往C语言哪方面的意思去想。正所谓对事不对人,同一个符号在不同的环境下有着不同的意思。上面提到饿这些符号一般存在于以下几个重要的文件里面:platform.bib,SMDK6410.bat,platform.reg,source等。当然像.CPP文件中肯定也有,但是那里面的# ;相信大家都是知道的,这里就不赘述。


     首先打开platform.reg,这里以SMDK6410.bat为例:



;------------ I2C Bus Driver ------------------------------------------------

IF BSP_NOI2C !

;; I2C Bus Driver

[HKEY_LOCAL_MACHINEDriversBuiltInIIC]

    'Prefix'='IIC'

    'Dll'='s3c6410_iic.dll'

    'Order'=dword:5

    'Index'=dword:0

    'Mode'=dword:1                ; Mode: 0 = POLLING, 1 = INTERRUPT

    'SlaveAddress'=dword:0        ; Bus Driver's Slave Address

    'FriendlyName'='IIC Bus Driver'

    'IClass'='{A32942B7-920C-486b-B0E6-92A702A99B35}'   ; Power-manageable generic

ENDIF BSP_NOI2C !

;-------------------------------------------------------------------------


    第一行就不用说了,;表示注释。重点介绍IF BSP_NOI2C !和ENDIF BSP_NOI2C !,从字面意思上可以按照IF ENDIF来理解,相信也不是什么困难的事情,只是这里的!到底是什么作用呢?先卖个关子,继续往下看。还是以I2C为例,打开platform.bib,有如下内容:



;------------------ I2C BUS Driver -------------------------------------------------------

IF BSP_NOI2C !

    s3c6410_iic.dll        $(_FLATRELEASEDIR)s3c6410_iic.dll                    NK            SHK

ENDIF BSP_NOI2C !

;---------------------------------------------------------------------------------------

    可以看见这里仍然有IF BSP_NOI2C !和ENDIF BSP_NOI2C !,可以肯定的是和上文的意思是一致的。继续往下看,还是以I2C为例,打开SMDK641.bat,可以看见以下内容:


set BSP_NOI2C=

set BSP_NOSPI=1

@REM wifi can be abled when spi is diabled

set BSP_NOWIFI=1

    相信大家看到这里已经有点眉目了,前文说的IF BSP_NOI2C !里面的 BSP_NOI2C !就是指的是否在SMDK6410.bat里面进行了变量的定义,这里set BSP_NOI2C=就是定义了I2C的环境变量,接着注册表和.bib就可以通过IF,ELSE进行判断,进而执行IF,ELSE之间的内容。如果等于1,如:set BSP_NOWIFI=1,则说明,是没有设置WIFI这个环境变量,因而,即使在IF,ELSE之间定义了,如:



IF BSP_NOWIFI !

    s3c6410_wifi.dll        $(_FLATRELEASEDIR)s3c6410_wifi.dll                    NK            SHK

ENDIF BSP_NOWIFI !

    那么也是不会去执行IF,ELSE之间的内容。这里的感叹号,你可以理解成前置的set。当然,这里的环境变量你也可以在PB6.0下进行添加,这里就不进行说明了。细心的人或许还发现了@REM wifi can be abled when spi is diabled,这里的@怎么看呢?它应该和@REM 结合在一起看,表示注释。至于#,我们以CAMERA下的SOURCE文件为例:



!IF '$(BSP_SMDK6410)' == '1'

#        $(_TARGETPLATROOT)lib$(_CPUINDPATH)S5K4BA_MODULE.lib

        $(_TARGETPLATROOT)lib$(_CPUINDPATH)OV9650_MODULE.lib       

#        $(_TARGETPLATROOT)lib$(_CPUINDPATH)SAA7113_MODULE.lib     

!ENDIF

    我所使用的Samsung6410有SAA7113和OV9650,怎么选择呢?其中一个就是在SOURCE下看你的链接库,那么不需要的就需要注释掉,这里的#就是注释的意义。


    最后再以一个例子让我们一起回顾一下批处理文件:


比如

set BSP_DEBUGPORT=SERIAL_UART0

set 用来设置一个环境变量 BSP_DEBUGPORT就代表SERIAL_UART0从意义上来看 好像是BSP调试端口为串口0,具体的要看具体的实现代码

@REM 跟#类似为注释掉一行

$()为引用括号里的环境变量

比如:

 set _TARGETPLATROOT=“c:wince5.0platform'

set  —CPUINDPATH = ARMlib

$(_TARGETPLATROOT)lib$(_CPUINDPATH)OV9650_MODULE.lib   

 实际上这个路径就相当于  

“c:wince5.0platformlibarmlibv9650_module.lib' 


关键字:符号  WINCE6 引用地址:# ; @REM !等符号在WINCE6.0下的意义和作用

上一篇:ARM AVI 视频播放 基于 2440 freambuffer 绘制
下一篇:基于Linux的智能家居的设计(3)

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved