首页 > Windows开发 > 详细

In order to use an interrupt in a Cortex-M3/M4, you need the following

时间:2015-07-29 22:52:21      阅读:332      评论:0      收藏:0      [点我收藏+]
  • a stack.
    The core automatically saves several registers on the stack when an interrupt fires.
    Initial stack pointer value is read from address 0x0 the first thing when the core starts up.
    That value should normally equal to the end of RAM + 1.

  • correct vector table offset in the SCB->VTOR register.
    By default it‘s 0, which (again by default) is the start of flash.
    If your startup code / linker script combination sets up the vector table correctly, great.

  • a handler. you have that.

  • address of that handler + 1 needs to be in the correct position in the vector table.
    The way you‘re assigning a value to a location in the (assumed) vector table
    isn‘t going to work by default, since it‘s in flash.

  • the interrupt needs to be enabled in the NVIC and its priority set.
    This uses NVIC->ISER[x] and NVIC->IPR[x] registers.

  • finally, the peripheral needs to be configured to generate actual interrupt requests. 

 

In order to use an interrupt in a Cortex-M3/M4, you need the following

原文:http://www.cnblogs.com/shangdawei/p/4687495.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!