微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于飞思卡尔KL25中断服务程序进入问题?

关于飞思卡尔KL25中断服务程序进入问题?

时间:10-02 整理:3721RD 点击:
有这样的一个问题,就是模块相应的中断服务程序进入问题!比如说KL25内部的TPM模块,首先驱动是正确的,中断也能正常进入,只不过我进入中断服务程序的方式是修改vector.h文件中的 #define VECTOR_035      default_isr     // 0x0000_008C 35    19     TPM2  改为#define VECTOR_035      TPM2_isr    // 0x0000_008C 35    19     TPM2才能进入,否则在TPM2_isr程序内连断点也无法设置.我想问的是如何不用修改vector.h文件也能让其正常进入中断程序呢?因为正确的做法应该是修改isr.h,比如说将isr.h改为
#undef  VECTOR_035
#define VECTOR_035 TPM2_isr
extern void TPM2_isr(void);

但改为这种方式后TPM中断(再次声明TPM模块的驱动是正确的,是能正常中断的)后无法进入到TPM2_isr中去,求指教!

飞思卡尔官网KL25例程包KL25-SC中有tpm工程:E:\...\KL25 Sample Code\kl25_sc_rev10\klxx-sc-baremetal\build\iar\LQRUG_tpm_ex1
该例程就如你描述的那种操作,用到了tpm0和tpm1的中断。

试试这个原创的固件库,直接在main.c中写中断服务程序就可以,不需要动系统级的文件。
http://bbs.elecfans.com/jishu_464558_1_1.html

在MDK开发环境下,生成工程以后导入文件startup_MKL25Z4.s文件
NMI_Handler     PROC
                EXPORT  NMI_Handler               [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler         [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler               [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler            [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler           [WEAK]
                B       .
                ENDP
Default_Handler PROC
                EXPORT  DMA0_IRQHandler     [WEAK]
                EXPORT  DMA1_IRQHandler     [WEAK]
                EXPORT  DMA2_IRQHandler     [WEAK]
                EXPORT  DMA3_IRQHandler     [WEAK]
                EXPORT  Reserved20_IRQHandler     [WEAK]
                EXPORT  FTFA_IRQHandler     [WEAK]
                EXPORT  LVD_LVW_IRQHandler     [WEAK]
                EXPORT  LLW_IRQHandler     [WEAK]
                EXPORT  I2C0_IRQHandler     [WEAK]
                EXPORT  I2C1_IRQHandler     [WEAK]
                EXPORT  SPI0_IRQHandler     [WEAK]
                EXPORT  SPI1_IRQHandler     [WEAK]
                EXPORT  UART0_IRQHandler     [WEAK]
                EXPORT  UART1_IRQHandler     [WEAK]
                EXPORT  UART2_IRQHandler     [WEAK]
                EXPORT  ADC0_IRQHandler     [WEAK]
                EXPORT  CMP0_IRQHandler     [WEAK]
                EXPORT  TPM0_IRQHandler     [WEAK]
                EXPORT  TPM1_IRQHandler     [WEAK]
                EXPORT  TPM2_IRQHandler     [WEAK]
                EXPORT  RTC_IRQHandler     [WEAK]
                EXPORT  RTC_Seconds_IRQHandler     [WEAK]
                EXPORT  PIT_IRQHandler     [WEAK]
                EXPORT  I2S0_IRQHandler     [WEAK]
                EXPORT  USB0_IRQHandler     [WEAK]
                EXPORT  DAC0_IRQHandler     [WEAK]
                EXPORT  TSI0_IRQHandler     [WEAK]
                EXPORT  MCG_IRQHandler     [WEAK]
                EXPORT  LPTimer_IRQHandler     [WEAK]
                EXPORT  Reserved45_IRQHandler     [WEAK]
                EXPORT  PORTA_IRQHandler     [WEAK]
                EXPORT  PORTC_PORTD_IRQHandler     [WEAK]
                EXPORT  DefaultISR                      [WEAK]
直接使用以上中断名称定义函数编写中断任务就可以了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top