历史上的今天
返回首页

历史上的今天

今天是:2024年12月11日(星期三)

正在发生

2018年12月11日 | Cortex-M0 LPC11C14中断控制器

2018-12-11 来源:eefocus

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


推荐阅读

史海拾趣

Herth+Buss Fahrzeugteile GmbH & Co KG公司的发展小趣事
相对于其他安防设备,成本较低,适合大规模应用。
福斯特半导体(Foster)公司的发展小趣事
用于防止非法入侵或提醒人员注意。
AVAGO公司的发展小趣事

随着技术的不断进步,AVAGO公司开始致力于研发更先进的半导体技术。其中,一次重大的技术突破发生在光纤通信领域。公司成功研发出了一种高性能的光纤收发器,这一创新不仅提高了数据传输的速度和稳定性,还极大地推动了光纤通信技术的发展。这一产品迅速在市场上获得了广泛应用,为AVAGO公司带来了可观的收益。

Amphenol RF公司的发展小趣事

随着公司规模的扩大和技术的不断积累,AVAGO公司开始寻求多元化的发展道路。除了继续深耕半导体领域外,公司还积极拓展其他相关领域,如传感器、无线通信等。同时,公司还与其他行业的领军企业建立了紧密的战略合作关系,共同推动技术创新和市场拓展。

Circuit Technology Inc公司的发展小趣事

Circuit Technology Inc(以下简称CTI)自创立之初,便致力于电路技术的研发与创新。在成立初期,公司凭借其独特的电路设计技术,成功开发出一款高效能、低成本的电路板,迅速在行业内崭露头角。随着技术的不断完善和市场的逐步认可,CTI的产品逐渐占据了市场份额,公司规模也逐渐扩大。为了进一步拓展市场,CTI积极与国内外知名企业合作,共同开发新产品,不断提升自身的技术水平和市场竞争力。

台湾丰宾(CapXon)公司的发展小趣事

CapXon公司一直高度重视品质管理,建立了完善的质量管理体系和检测机制。公司严格把控原材料采购、生产过程、成品检验等各个环节,确保产品的品质符合国际标准和客户要求。同时,CapXon还不断优化生产流程,提高生产效率,降低生产成本,为客户提供更具竞争力的价格和服务。

问答坊 | AI 解惑

昂宝电子推出CCFL控制器IC系列,适用于汽车液晶显示器

继成功推出一系列Green model AC-DC PWM电源控制IC后,昂宝电子目前又推出一系列CCFL控制器IC,可广泛用于LCD监视器、LCD-TV、笔记本电脑以及工业设备、汽车、手持设备中的液晶显示器。 目前昂宝电子所推出CCFL控制器IC产品包括:OB3316/OB3316 ...…

查看全部问答>

uC_GUI在MCS51系列单片机系统上移植的仿真实现

本文介绍了uC/GUI 的组织结构, PROTEUS 仿真环境, 以及在PROTEUS 仿真环境下实现uC/GUI 移植到MCS51 系列单片机P89C51RD2 的过程; 并且对移植过程中涉及到的修正C51 调用树和代码优化等问题进行了简明阐述。…

查看全部问答>

一个LED的N种玩法(五)----WatchDog Timer

一个LED的N种玩法(五)--WatchDog Timer Author: chenzhufly Email: chenzhufly@126.com 2010-05-02 一.WatchDog Timer 概述 看门狗的目的是当进入错误状态一定时间后复位微控制器。当看门狗使能时,如果用户没有在一定时间内喂狗(看门狗定时 ...…

查看全部问答>

wince 6.0 OAL层初始化LOGO显示问题~

eboot显示一个 logo, 但进去系统的中间黑屏,我想继续在 oal中显示 logo, 去掉lcd初始化函数调用, 可看 OEMInit 函数,没见 初始化LCD部分代码, OEMInit 上下文周围也没找到 初始LCD有关的函数. 麻烦给个提示,谢谢 平台是 PXA270+WINCE6.0…

查看全部问答>

推荐ARM开发板

现在急需推荐一款ARM开发板,要求: 可以做触摸屏;操作系统WinCE——可以自己修改源码;应用于大型系统集成;处理数据采集系统;抗干扰能力强;数据运算速度快;扩展口多。哪位大侠给推荐一下,谢谢:)…

查看全部问答>

java 调用DLL 读串口,不久就死了,请帮忙看看什么原因?

经过仔细分析问题出这dll这里,但始终找不到解决办法,请大家帮忙看看,谢谢! dll代码如下: JNIEXPORT jstring JNICALL Java_getGPS (JNIEnv * env, jobject obj) {     char * cIpAddress =compressWideChar((LPCWSTR)L\"empty value! ...…

查看全部问答>

WINCE EBOOT应该怎么弄啊(我实在没分给)?

我现在正在弄EBOOT启动(用网络下载NK.BIN), 有几个问题想请教一下,希望各位帮帮忙,多谢 1.PB中本来有提供eboot.bin,我需要再重新编译吗? 2.Target ->ConnectivityOptions里面应该怎么设? 3.除了这两个地方,还有哪里需要注意的. 感激!(我没分了 ...…

查看全部问答>

关于格式转换函数sprintf():

关于格式转换函数sprintf(): 我想用sprintf()函数将一个usigned int型变量转换为字符串从串口发送出去 结果调用的时候发现不对 我先定义DeocdeNum=2000;UCHAR *CH 保存转换后的字符串 printf(ch,\"%d\",DeocdeNum); 结果我发现在程序中 Deoc ...…

查看全部问答>