打印

"IF :DEF: EN_CRP"这一句是什么意思啊?

[复制链接]
3361|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yamaki|  楼主 | 2007-10-26 18:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
周立功Startup.s中的ResetInit函数:

ResetInit
;Initial extenal bus controller.
;初始化外部总线控制器,根据目标板决定配置

        LDR     R0, =PINSEL2
    IF :DEF: EN_CRP
        LDR     R1, =0x0f814910
    ELSE
        LDR     R1, =0x0f814914
    ENDIF

"IF :DEF: EN_CRP"这一句是什么意思啊?

相关帖子

沙发
yamaki|  楼主 | 2007-10-26 18:46 | 只看该作者

re

主要是不知道":DEF"是什么意思。Startup.s文件后面还有一段:

    IF :DEF: EN_CRP
        IF  . >= 0x1fc
        INFO    1," The data at 0x000001fc must be 0x87654321. Please delete some source before this line."
        ENDIF

这两者之间是不是有什么关系?

使用特权

评论回复
板凳
阿南| | 2007-10-26 19:00 | 只看该作者

我想是类似于C语言中的#if宏定义吧

如果条件成立 就执行语句
否则就执行另一个语句

使用特权

评论回复
地板
xieqin| | 2007-10-26 21:49 | 只看该作者

IF :DEF: EN_CRP 对等于 #ifdef EN_CRP

使用特权

评论回复
5
yamaki|  楼主 | 2007-10-27 10:41 | 只看该作者

谢谢楼上两位热心的答复

又查了一些资料,关于ARM汇编中字符串表达式及运算符总结如下,方便大家学习

:LEN:X    返回字符串X的长度(字符数)
:CHR:M    将0~255之间的整数转换为一个字符
:STR:X    将一个数字表达式或逻辑表达式转换为一个字符串.对于数字表达式,STR运算符将其转换为一个以十六进制组成的字符串;对于逻辑表达式,STR运算符将其转换为字符串T或F.
X:LEFT:Y  返回某个字符串左端的一个子串.X为源字符串,Y表示返回的个数
X:RIGHT:Y 与LEFT对应
X:CC:Y    将Y连接到X的后面
:BASE:X   返回基于寄存器的表达式中寄存器的编号
:INDEX:X  返回基于寄存器的表达式中相对于其基址寄存器的偏移量
?X        返回定义符号X的代码行所生成的可执行代码的字节数
:DEF:X    如果符号X已定义,则结果为真,否则为假 
 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

53

帖子

1

粉丝