12
返回列表 发新帖
楼主: rookie

[CodeWarrior] CW10.5 调试 KL05 的中断模块,不能进入中断,始终进入void Default_Handler(已解决)

[复制链接]

该用户从未签到

3

主题

34

帖子

0

注册会员

Rank: 2

积分
131
最后登录
1970-1-1
 楼主| 发表于 2014-1-14 11:49:10 | 显示全部楼层

回复:CW10.5 调试 KL05 的中断模块,不能进入中断,始终进入void Default_Handler()

回复第 9 楼 于2014-01-14 11:42:30发表:
在你的工程中没找到中断向量表
搜索VECTOR_044仅isr.h里有
 
 
对,很奇怪,我是参考你们的示例代码,也搜索了,只有在isr.h 中有。
 
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-1-14 13:50:23 | 显示全部楼层

    回复:CW10.5 调试 KL05 的中断模块,不能进入中断,始终进入void Default_Handler()

    回复第 11 楼 于2014-01-14 11:49:10发表:
    回复第 9 楼 于2014-01-14 11:42:30发表:
    在你的工程中没找到中断向量表
    搜索VECTOR_044仅isr.h里有
     
     
    对,很奇怪,我是参考你们的示例代码,也搜索了,只有在isr.h 中有。
     

     

    vectors.c和vectors.h在E:\...\KL05-SC\klxx-sc-baremetal\src\cpu文件夹下
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    34

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    1970-1-1
     楼主| 发表于 2014-1-14 14:05:16 | 显示全部楼层

    回复:CW10.5 调试 KL05 的中断模块,不能进入中断,始终进入void Default_Handler()

    回复第 10 楼 于2014-01-14 11:44:33发表:
    你还是照着飞思卡尔官网的KL05-SC例程包做吧
    [url=https://www.freescale.co
    m/webapp/sps/download/license.jsp?colCode=KL05-SC&location=null&fpsp=1&WT_TYPE=Lab%20and%20Test%20Software&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=zip&WT_ASSET=Downloads&sr=8&amparent_nodeId=1359130311707695721244&amparent_pageType=product&amparent_nodeId=1359130311707695721244&amparent_pageType=product]www.freescale.com/webapp/sps/download/license.jsp[/url]
     
     
     
    问题解决了,在kinetis_sysinit.c 文件中
    /* The Interrupt Vector Table */
    void (* const InterruptVector[])() __attribute__ ((section(".vectortable"))) = {
        /* Processor exceptions */
        (void(*)(void)) &_estack,
        __thumb_startup,
        NMI_Handler,
        HardFault_Handler,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        SVC_Handler,
        0,
        0,
        PendSV_Handler,
        SysTick_Handler,
     
        /* Interrupts */
        DMA0_IRQHandler, /* DMA Channel 0 Transfer Complete and Error */
        DMA1_IRQHandler, /* DMA Channel 1 Transfer Complete and Error */
        DMA2_IRQHandler, /* DMA Channel 2 Transfer Complete and Error */
        DMA3_IRQHandler, /* DMA Channel 3 Transfer Complete and Error */
        MCM_IRQHandler, /* Normal Interrupt */
        FTFL_IRQHandler, /* FTFL Interrupt */
        PMC_IRQHandler, /* PMC Interrupt */
        LLW_IRQHandler, /* Low Leakage Wake-up */
        I2C0_IRQHandler, /* I2C0 interrupt */
        I2C1_IRQHandler, /* I2C1 interrupt */
        SPI0_IRQHandler, /* SPI0 Interrupt */
        SPI1_IRQHandler, /* SPI1 Interrupt */
        UART0_IRQHandler, /* UART0 Status and Error interrupt */
        UART1_IRQHandler, /* UART1 Status and Error interrupt */
        UART2_IRQHandler, /* UART2 Status and Error interrupt */
        ADC0_IRQHandler, /* ADC0 interrupt */
        CMP0_IRQHandler, /* CMP0 interrupt */
        FTM0_IRQHandler, /* FTM0 fault, overflow and channels interrupt */
        FTM1_IRQHandler, /* FTM1 fault, overflow and channels interrupt */
        FTM2_IRQHandler, /* FTM2 fault, overflow and channels interrupt */
        RTC_Alarm_IRQHandler, /* RTC Alarm interrupt */
        RTC_Seconds_IRQHandler, /* RTC Seconds interrupt */
        PIT_IRQHandler, /* PIT timer all channels interrupt */
        Default_Handler, /* Reserved interrupt 39/23 */
        USBOTG_IRQHandler, /* USB interrupt */
        DAC0_IRQHandler, /* DAC0 interrupt */
        TSI0_IRQHandler, /* TSI0 Interrupt */
        MCG_IRQHandler, /* MCG Interrupt */
        //LPTimer_IRQHandler, /* LPTimer interrupt */
        lptmr_isr,/*********************************************这里换成自己的中断处理函数名称********************/
        Default_Handler, /* Reserved interrupt 45/29 */
        PORTA_IRQHandler, /* Port A interrupt */
        PORTD_IRQHandler /* Port D interrupt */
    };
    里面,把对应的中断换成自己的中断处理函数,再去运行就可以正常进入中断了。
    这点我还不是很明白,有没有资料我可以看看呢?
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    34

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    1970-1-1
     楼主| 发表于 2014-1-14 14:17:59 | 显示全部楼层

    回复:CW10.5 调试 KL05 的中断模块,不能进入中断,始终进入void Default_Handler()

    回复第 12 楼 于2014-01-14 13:50:23发表:
    回复第 11 楼 于2014-01-14 11:49:10发表:
    回复第 9 楼 于2014-01-14 11:42:30发表:
    在你的工程中没找到中断向量表
    搜索VECTOR_044仅isr.h里有
     
     
    对,很奇怪,我是参考你们的示例代码,也搜索了,只有在isr.h 中有。
     

     

    vectors.c和vectors.h在E:\...\KL05-SC\klxx-sc-baremetal\src\cpu文件夹下
     
    但是我 import 你们的例程,项目列表中的cpu文件夹中都没有vectors.c和vectors.h ?而IAR 的项目中时有这两个文件的
    这两个编译环境下处理中断有点不同吧?
    其中我把//#undef VECTOR_044                               
    //#define VECTOR_044 lptmr_isr
    去掉之后,依然可以。
    好像 isr.h这个文件都可以不要,那个好像是 IAR或Keil下才需要的,对吗?
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    113

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    326
    最后登录
    1970-1-1
    发表于 2014-1-14 16:23:18 | 显示全部楼层

    RE:CW10.5 调试 KL05 的中断模块,不能进入中断,始终进入void Default_Handler()

    楼主的修改的方法是对的。
    FSL官网上的有些例子是从IAR的平台上port过来的,所以,保留了原来的vectors.c关于中断向量表的定义。
    在CW新生成的工程里边,中断向量是在kinetis_sysinit.c文件中定义。
    所以,你需要修改这个文件
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 00:31 , Processed in 0.091541 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表