×
单片机 > 单片机程序设计 > 详情

Cortex-M0 LPC11C14中断控制器

发布时间:2020-09-03 发布时间:
|

LPC11C14(Cortex-M0)微控制器采用的是NVIC(Nested Vectored InterruptController)中断控制器


NVIC中断控制器有一下特点:


NVIC是ARM Cortex-M0的一个集成部分
       

 紧耦合的方式中断延迟低
       

 可控制系统的异常及外设中断
       

 NVIC中断控制器支持32个中断源
       

 4个带硬件优先级屏蔽的可编程中断优先级
       

 可以产生软中断


根据NVIC的特点,我们能够知道,采用紧耦合的方式比普通的中断向量方式相应更快。如何实现紧耦合的中断方式,我们需要看看NVIC的相关信息。


查看LPC11C14的用户手册,对于中断控制器的中断源有如下描述



当产生外部中断时,中断源由NVIC处理后再递交给Cortex-M0内核处理。


中断源如下表所示:



从表中可以看到NVIC支持的32个外部中断源。


LPC11C14中断优先级如下所示



下图所示的是LPC11C14的中断向量表,由于采用的是紧耦合的中断方式,所以对应的地址和中断源的ISR地址已经在向量表中确定下来,当有中断产生时,可以根据向量表中ISR地址直接跳到ISR中做相应的中断处理。



我们在Cortex-M0启动的时候,需要对其中断向量表进行初始化。根据手册上面的向量表图,我们依次填入每个中断源的ISR地址(也就是中断服务函数名)

__Vectors    DCD    __initial_sp         ; Top of Stack
                DCD    Reset_Handler         ; Reset Handler
                DCD    NMI_Handler         ; NMI Handler
                DCD    HardFault_Handler         ; Hard Fault Handler
                DCD    MemManage_Handler         ; MPU Fault Handler
                DCD    BusFault_Handler         ; Bus Fault Handler
                DCD    UsageFault_Handler         ; Usage Fault Handler
                DCD    0         ; Reserved
                DCD    0         ; Reserved
                DCD    0         ; Reserved
                DCD    0         ; Reserved
                DCD    SVC_Handler         ; SVCall Handler
                DCD    DebugMon_Handler         ; Debug Monitor Handler
                DCD    0         ; Reserved
                DCD    PendSV_Handler         ; PendSV Handler
                DCD    SysTick_Handler         ; SysTick Handler

                ; External Interrupts
                DCD    WAKEUP_IRQHandler         ; 15 wakeup sources for all the
                DCD    WAKEUP_IRQHandler         ; I/O pins starting from PIO0 (0:11)
                DCD    WAKEUP_IRQHandler         ; all 40 are routed to the same ISR 
                DCD    WAKEUP_IRQHandler 
                DCD    WAKEUP_IRQHandler 
                DCD    WAKEUP_IRQHandler
                DCD    WAKEUP_IRQHandler
                DCD    WAKEUP_IRQHandler 
                DCD    WAKEUP_IRQHandler 
                DCD    WAKEUP_IRQHandler 
                DCD    WAKEUP_IRQHandler
                DCD    WAKEUP_IRQHandler
                DCD    WAKEUP_IRQHandler         ; PIO1 (0:11)
                DCD    CAN_IRQHandler         ; CAN 
                DCD    SSP1_IRQHandler         ; SSP1 
                DCD    I2C_IRQHandler         ; I2C
                DCD    TIMER16_0_IRQHandler         ; 16-bit Timer0
                DCD    TIMER16_1_IRQHandler         ; 16-bit Timer1
                DCD    TIMER32_0_IRQHandler         ; 32-bit Timer0
                DCD    TIMER32_1_IRQHandler         ; 32-bit Timer1
                DCD    SSP0_IRQHandler         ; SSP0
                DCD    UART_IRQHandler         ; UART
                DCD    USB_IRQHandler         ; USB IRQ
                DCD    USB_FIQHandler         ; USB FIQ
                DCD    ADC_IRQHandler         ; A/D Converter
                DCD    WDT_IRQHandler         ; Watchdog timer
                DCD    BOD_IRQHandler         ; Brown Out Detect
                DCD    FMC_IRQHandler         ; IP2111 Flash Memory Controller
                DCD    PIOINT3_IRQHandler         ; PIO INT3
                DCD    PIOINT2_IRQHandler         ; PIO INT2
                DCD    PIOINT1_IRQHandler         ; PIO INT1
                DCD    PIOINT0_IRQHandler         ; PIO INT0


关键字:Cortex-M0  LPC11C14  中断控制器 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法