[AVR单片机] 请问GCC嵌入中断汇编如何实现?

[复制链接]
2811|4
 楼主| crc 发表于 2008-6-11 12:03 | 显示全部楼层 |阅读模式
即中断要用汇编写,请指点.
ATmega32l 发表于 2008-6-11 12:35 | 显示全部楼层

楼主意思进入中断不保存寄存器,

楼主意思进入中断不保存寄存器,寄存器保护由汇编代码完成??
 楼主| crc 发表于 2008-6-11 14:33 | 显示全部楼层

..

我的意思是进入中断后只执行一行汇编语句,而gcc的中断在编译后会产生多条保护寄存器的语句,但这些语句是我不需要的,故我需要自已写中断汇编去改变这个情况.
ATmega32L 发表于 2008-6-11 18:18 | 显示全部楼层

用裸中断

用裸中断,编译器生成的代码不保护寄存器。
在中断里面用到什么寄存器,包括SREG,需要手动保护。

ISR(vector,ISR_NAKED) 
{
  asm("寄存器保护");
  asm("内嵌汇编");
  asm("寄存器恢复");
}
 楼主| crc 发表于 2008-6-12 17:51 | 显示全部楼层

.

多谢楼上,还未试楼上的方法,不过知道了问题.原来编译器将所有I/O寄存器地址加上了0x20.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

crc

2

主题

45

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部