打印
[ZLG-ARM]

请教大虾小小语法问题

[复制链接]
1892|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
space_12|  楼主 | 2007-6-11 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    CODE32

    AREA    IRQ,CODE,READONLY
    MACRO
$IRQ_Label HANDLER $IRQ_Exception_Function

        EXPORT  $IRQ_Label                      ; 输出的标号
        IMPORT  $IRQ_Exception_Function         ; 引用的外部标号

$IRQ_Label
        SUB     LR, LR, #4                      ; 计算返回地址
        STMFD   SP!, {R0-R3, R12, LR}           ; 保存任务环境
        MRS     R3, SPSR                        ; 保存状态
        STMFD   SP, {R3, SP, LR}^               ; 保存用户状态的R3,SP,LR,注意不能回写
                                                ; 如果回写的是用户的SP,所以后面要调整SP
…………………………………………
 BL      $IRQ_Exception_Function         ; 调用c语言的中断处理程序
…………………………………………
    MEND
    END
-----------------------------------------
上面的宏定义里有这么一句$IRQ_Label HANDLER $IRQ_Exception_Function
请问 这句怎么理解

相关帖子

沙发
jshmlly| | 2007-6-11 14:58 | 只看该作者

re

这是语法 规定的。
例:SPI_Exception  HANDLER IRQ_Spi
SPI_Exception  替代$IRQ_Label 
IRQ_Spi 替代 $IRQ_Exception_Function  
变为:
  SPI_Exception  
        SUB     LR, LR, #4                      ; 计算返回地址
        STMFD   SP!, {R0-R3, R12, LR}           ; 保存任务环境
        MRS     R3, SPSR                        ; 保存状态
        STMFD   SP, {R3, SP, LR}^               ; 保存用户状态的R3,SP,LR,注意不能回写
                                                ; 如果回写的是用户的SP,所以后面要调整SP
…………………………………………
BL      IRQ_Spi ; 调用c语言的中断处理程序
…………………………………………     

使用特权

评论回复
板凳
ayb_ice| | 2007-6-11 15:07 | 只看该作者

随便说说

$IRQ_Label HANDLER $IRQ_Exception_Function
HANDLER是宏名,有个参数IRQ_Exception_Function,$代表参数会被替换,IRQ_Label是标号。。。

使用特权

评论回复
地板
space_12|  楼主 | 2007-7-19 14:06 | 只看该作者

谢谢两位的解答--续问

还不是很懂,我找了好久,就没找到 全点的资料。
是不是这样理解啊:
这个宏名是 HANDLER  带两个参数 一个在HANDLER前 一个在HANDLER后
而且在HANDLER前的 一定 是 程序中的标号
在HANDLER后的 一定 是 程序中引入的参数
可以这样理解吗
知道的 大虾 给指点几下,谢谢!!

使用特权

评论回复
5
cloudlily| | 2007-7-20 06:21 | 只看该作者

看不看懂不重要,关键是任务

看不看懂不重要,关键是任务

使用特权

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

本版积分规则

17

主题

188

帖子

1

粉丝