新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 从Flash和SRAM中触发中断的过程示例(一)

从Flash和SRAM中触发中断的过程示例(一)

作者:时间:2013-09-24来源:网络收藏

使用LPC2106的Timer 1 进行的简单的中断处理。示例代码中Timer1分为FIQ和IRQ,用户可以从或者中运行这些代码。

  示例展示了ARM构架中中断是如何操作的。提供的代码表示了向量IRQ(中断请求)和FIQ(快速中断)两种情况。中断向量位于FLASH地址中的 0x00-0x1C。如果需要从中运行,则中断向量需要被remapped to 0x40000000-0x4000000C。这可以通过Memory Map register来做到。这些代码用ADS1.2开发,从FLASH中运行。提供了从中运行代码的不同之处。中断服务程序(ISR)使用C语言编写IRQ,用汇编来编写FIQ。

  示例使用下面的样式排列:

  1. TIMER1 被配置为触发IRQ中断,代码从FLASH中运行;

  2. 代码从SRAM中运行所需要的改变和增加;

  3. TIMER1被配置为触发FIQ中断,代码从FLASH中运行;

  4. 代码从SRAM中运行所需要的改变和增加。

  TIMER1 被配置为触发一个IRQ中断,代码从FLASH中运行

  这个示例包含下述文件:

  1. 中断向量表(ivt.s)

  2. 启动用的汇编代码(init.s)

  3. 主C文件

  只包含了相关的文件。在不同的交叉编译环境下,C文件不用改变太多,而汇编文件需要改变。

  中断向量表

  这些代码应该被连接到0x0。

  ;***********************************************************

  ; 汇编指令

  ;*************************************************************

  AREA IVT,CODE ;新的代码段

  CODE32 ;ARM 代码

  IMPORT start ;导入外部函数。Start标志不应该在这个段内定义


上一页 1 2 3 下一页

关键词: Flash SRAM 触发中断

评论


相关推荐

技术专区

关闭