ARM的中断服务程序.docxVIP

  • 20
  • 0
  • 约1.25千字
  • 约 2页
  • 2022-07-07 发布于天津
  • 举报
【Word版本下载可任意编辑】 PAGE 1 - / NUMPAGES 1 ARM的中断服务程序 怎么保存,操作SP,跟弹出到PC的部分和上面的例子一样,下面说说中间的计算部分计算偏移量,其实原理很简单,首先 INTOFFSET 保存着当前是哪个IRQ中断,例如 0代表着 HandleEINT0,1代表HandleEINT1 等等,这不是乱来,有一个表的,这个是由 S3C2440 的datasheet说的,自己可以去查看。 然后得到 中断处理函数的向量表,这个表的首地址就是 HandleEINT0,那么很自然的想到,怎么查表?那还不简单?HandleEINT0 + INTOFFSET 不就完了?基地址加偏移量就得到表中某项了,当然,因为这里是中断处理向量每一项占用4个字节,所以用lsl #2处理一下,左移2位相当于乘以4,偏移量乘以4,这应该很好理解的。 我们这个例子找到的就是 HandleEINT0 ,将里面的值读出来,里面放的是 HandleEINT0 服务函数的地址,这个地址怎么来的?是在C程序里面设置的。我们看 keyscan.c 程序,找到一个 void KeyScan_Test(void) 函数,里面有这么一句: pISR_EINT0 = pISR_EINT2 = pISR_EINT8_23 = (U32)Ke

文档评论(0)

1亿VIP精品文档

相关文档