Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31142
  • 博文数量: 9
  • 博客积分: 415
  • 博客等级: 下士
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-23 10:41
文章分类

全部博文(9)

文章存档

2010年(9)

我的朋友

分类:

2010-05-31 16:21:55

interrupt属于非标准的关键字。


C/C++编译器通过interrupt关键字扩展了C语言。这个关键字用来指定一个函数应该被看成一个中断函数。

处理中断的函数要求特殊的寄存器保存规则,增加一些特殊的返回序列(return sequence).当C/C++代码被中断时,ISR必须预先 保存 所有会被ISR用到的寄存器的内容。被ISR调用到的函数的寄存器也要保存的。

当你使用interrupt关键字时,编译器会按 ISR 函数要求的寄存器保存规则 去保存寄存器,然后生成一些特殊的返回代码序列(return sequence)

ISR必须这样定义才能使用interrupt关键字:
interrupt void myISR(void)
{
unsigned int flags;
...
}

阅读(1388) | 评论(0) | 转发(0) |
0

上一篇:## #

下一篇:强制类型转变绝对地址

给主人留下些什么吧!~~