关于__irq 的使用
关于__irq使用,首先看ARM公司的说明:
ARM 编译器 armcc 支持的函数关键字和运算符。
下表列出的关键字是 ARM 对 C 和 C++ 标准的扩展。 表中没有介绍不具备 ARM 编译器特有的行为或限制的标准 C 和 C++ 关键字。
ARM 编译器支持的关键字扩展表:
通过使用 __irq 关键字,可以将 C 或 C++ 函数用作中断例程。
__irq 是一个函数限定符。 它影响函数的类型。
限制:
将保留所有损坏的寄存器(浮点寄存器除外),而不仅限于通常在 AAPCS 中保留的寄存器。 必须使用缺省 AAPCS 模式。
通过将程序计数器设置为 lr-4 并将 CPSR 设置为 SPSR 中的值,可以退出该函数。 不能将任何自变量或返回值与 __irq 函数配合使用。
再看其他的一些解释:
armcc的编译器的C对ANSI C的关键字做了些扩展。 __irq为一个标识,用来表示一个函数是否为中断函数。对于不同的编译器,__irq在函数名中的位置不一样,例如:
|