我是从网上看到的这篇应用笔记,感觉还可以,分享给大家。我粗略翻译了一点,加了一点自己理解的注释。后面的就不再翻译了,大家想继续看的话到菲利普网站上下吧。
使用LPC2106的Timer 1 进行的简单的中断处理。示例代码中Timer1分为FIQ和IRQ,用户可以从Flash或者SRAM中运行这些代码。
示例展示了ARM构架中中断是如何操作的。提供的代码表示了向量IRQ(中断请求)和FIQ(快速中断)两种情况。中断向量位于FLASH地址中的 0x00-0x1C。如果需要从SRAM中运行,则中断向量需要被remapped to 0x40000000-0x4000000C。这可以通过Memory Map register来做到。这些代码用ADS1.2开发,从FLASH中运行。提供了从SRAM中运行代码的不同之处。中断服务程序(ISR)使用C语言编写IRQ,用汇编来编写FIQ。
示例使用下面的样式排列:1. TIMER1 被配置为触发IRQ中断,代码从FLASH中运行;2. 代码从SRAM中运行所需要的改变和增加;3. TIMER1被配置为触发FIQ中断,代码从FLASH中运行;4. 代码从SRAM中运行所需要的改变和增加。
TIMER1 被配置为触发一个IRQ中断,代码从FLASH中运行这个示例包含下述文件:1. 中断向量表(ivt.s)2. 启动用的汇编代码(...
>> 阅读全文