简单的ARM中断程序怎么写?

[复制链接]
 楼主| liulwn 发表于 2008-3-13 11:01 | 显示全部楼层 |阅读模式
刚学ARM,想写个AT91SAM7S64的中断程序,不知如何入手。如C51里可用interrupt m 这个函数定义一个中断服务程序。其它就基本不用管了。arm里有相关的函数定义中断服务程序吗?那位大侠给指点一下。
dld2 发表于 2008-3-13 11:10 | 显示全部楼层

找DEMO程序

  
xhtxzxw 发表于 2008-3-13 13:16 | 显示全部楼层

嘿嘿

//样例代码里有个AT91F_AIC_ConfigureIt(...)函数,用于初始化??中断.&nbsp;<br />//包括:设置??中断的优先级、??中断的触发方式以及??中断的服务程序入口<br />AT91F_AIC_ConfigureIt(AT91C_BASE_AIC,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT91C_ID_??,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//??中断的&nbsp;ID<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//优先级:0~7<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL,//中断源类型触发方式(以内部中断源,高电平触发为例)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??_Handler);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//??中断服务程序<br /><br />void&nbsp;??_Handler(void)&nbsp;&nbsp;//这是??中断的服务程序<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;....&nbsp;&nbsp;//需要干啥就写啥<br />}<br /><br />想处理哪个中断,注意??就行了,比如US0的中断,你把&quot;??&quot;换成&quot;US0&quot;即可。AT91C_ID_US0、AT91C_ID_US1、AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL等等在头文件里都有定义了,如果需要处理别的中断,你通过查找AT91C_ID_US0,就可以找到其它中断的ID号动议,因为所有中断的ID定义是放在一起的。需要指定其它的中断源类型或其它的中断触发方式,你可以先查找AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL的定义,在它附近就可以找到其他中断源类型/触发方式的定义,或者参照数据手册自己定义。
 楼主| liulwn 发表于 2008-3-13 13:39 | 显示全部楼层

谢谢了!!!

再次谢谢xhtxzxw的帮助!!xhtxzxw真是这方面的高手呀,建议xhtxzxw开个写armC语言方面的专栏,让我等菜鸟学习一下。个人感觉C语言这东西易学难精,要达到一定深度还得多下苦功呢。
tubie 发表于 2008-3-14 20:51 | 显示全部楼层

AT91F_AIC_ConfigureIt(...)函数是通用函数吗?

比如在ADS或者Keil下都有这个函数吗?
armecos 发表于 2008-3-14 22:55 | 显示全部楼层

建议参考ecos万能中断模板

您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

156

帖子

3

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