查看: 6131|回复: 9

[分享] 为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

[复制链接]

该用户从未签到

12

主题

103

帖子

0

新手上路

Rank: 1

积分
173
最后登录
1970-1-1
发表于 2014-2-13 16:49:19 | 显示全部楼层 |阅读模式
IDE : IAR6.60
MUC: KL46
TOOL: JLINK(swd)
问题:代码中有几个中断,通过IAR下载代码后,必须软件复位一次,才能进入中断,否则不能进入中断。
重新上电,也可以正常进入中断。否则不能进入中断。
请问是什么问题?怎么解决谢谢?
回复

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2014-2-14 09:27:41 | 显示全部楼层

回复:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

请问你设置的中断是哪个模块的中断,在通过排IAR下载进程序后,默认进行一次软件复位的,在AN2295中有下面这么一段来判断上次复位的原因,如果是在debug过程中,这一句话始终不会运行,因为下载进去调试时默认都会SW复位。所以,这理论上讲和你是否再复位一次应该没关系。
if(SRS_REG & SRS_POR_MASK)
    enableBootMode = 1;
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

103

帖子

0

新手上路

Rank: 1

积分
173
最后登录
1970-1-1
 楼主| 发表于 2014-2-15 20:37:00 | 显示全部楼层

回复:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

回复第 2 楼 于2014-02-14 09:27:41发表:
请问你设置的中断是哪个模块的中断,在通过排IAR下载进程序后,默认进行一次软件复位的,在AN2295中有下面这么一段来判断上次复位的原因,如果是在debug过程中,这一句话始终不会运行,因为下载进去调试时默认都会SW复位。所以,这理论上讲和你是否再复位一次应该没关系。
if(SRS_REG & SRS_POR_MASK)
enableBootMode = 1;
 
现在使用的中断有TPM模块中断,PIT中断和LPTMR中断,都是定时器中断。
现在的现象时,如果通过IAR进行在线调试的时候,如果不软件复位一次,这些定时器中断都无法进入。软件复位后,中断正常。
如果不通过IAR在线调试,即代码下载到板子中正常运行,板子只有完全下电然后在上电后才能正常进行中断,否则也不会进入中断。
 
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

103

帖子

0

新手上路

Rank: 1

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

RE:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

代码初始化后,打印RCM_SRS1_REG寄存器信息,结果为4
只有软件复位,理论上应该有一次MDM-AP System Reset Request
不知道为什么没有
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

103

帖子

0

新手上路

Rank: 1

积分
173
最后登录
1970-1-1
 楼主| 发表于 2014-2-19 09:45:54 | 显示全部楼层

RE:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

在线等回复
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

103

帖子

0

新手上路

Rank: 1

积分
173
最后登录
1970-1-1
 楼主| 发表于 2014-2-19 15:57:31 | 显示全部楼层

RE:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

没有人解决此问题吗?
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

103

帖子

0

新手上路

Rank: 1

积分
173
最后登录
1970-1-1
 楼主| 发表于 2014-2-24 13:05:38 | 显示全部楼层

RE:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

再次顶起来
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-24 15:37:51 | 显示全部楼层

    回复:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

    回复第 3 楼 于2014-02-15 20:37:00发表:
    回复第 2 楼 于2014-02-14 09:27:41发表:
    请问你设置的中断是哪个模块的中断,在通过排IAR下载进程序后,默认进行一次软件复位的,在AN2295中有下面这么一段来判断上次复位的原因,如果是在debug过程中,这一句话始终不会运行,因为下载进去调试时默认都会SW复位。所以,这理论上讲和你是否再复位一次应该没关系。
    if(SRS_REG & SRS_POR_MASK)
    enableBootMode = 1;
     
    现在使用的中断有TPM模块中断,PIT中断和LPTMR中断,都是定时器中断。
    现在的现象时,如果通过IAR进行在线调试的时候,如果不软件复位一次,这些定时器中断都无法进入。软件复位后,中断正常。
    如果不通过IAR在线调试,即代码下载到板子中正常运行,板子只有完全下电然后在上电后才能正常进行中断,否则也不会进入中断。
     

     

    请问楼主是否有注意过:
    TPM模块的TPMx_CONF寄存器的DBGMODE位
    PIT模块的PIT_MCR寄存器FRZ位
    LPTMR模块工作在定时器模式时,请注意Table 33-1. Modes of operation表中Debug模式
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    103

    帖子

    0

    新手上路

    Rank: 1

    积分
    173
    最后登录
    1970-1-1
     楼主| 发表于 2014-2-27 17:01:48 | 显示全部楼层

    回复:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

    回复第 8 楼 于2014-02-24 15:37:51发表:
    回复第 3 楼 于2014-02-15 20:37:00发表:
    回复第 2 楼 于2014-02-14 09:27:41发表:
    请问你设置的中断是哪个模块的中断,在通过排IAR下载进程序后,默认进行一次软件复位的,在AN2295中有下面这么一段来判断上次复位的原因,如果是在debug过程中,这一句话始终不会运行,因为下载进去调试时默认都会SW复位。所以,这理论上讲和你是否再复位一次应该没关系。
    if(SRS_REG & SRS_POR_MASK)
    enableBootMode = 1;
     
    现在使用的中断有TPM模块中断,PIT中断和LPTMR中断,都是定时器中断。
    现在的现象时,如果通过IAR进行在线调试的时候,如果不软件复位一次,这些定时器中断都无法进入。软件复位后,中断正常。
    如果不通过IAR在线调试,即代码下载到板子中正常运行,板子只有完全下电然后在上电后才能正常进行中断,否则也不会进入中断。
     

     

    请问楼主是否有注意过:
    TPM模块的TPMx_CONF寄存器的DBGMODE位
    PIT模块的PIT_MCR寄存器FRZ位
    LPTMR模块工作在定时器模式时,请注意Table 33-1. Modes of operation表中Debug模式
     
    你说的这些确实没有注意过,我试试看。不过,LPTMR我现在用的就是counter 模式,按照table 33-1中的描述,counter模式在Debug下不能继续计数,这个有什么其他方法来规避这个问题呢?
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2014-3-11 10:12:03 | 显示全部楼层

    回复:为什么KL46 IAR下载完毕后必须软件复位才能进入中断。

    回复第 9 楼 于2014-02-27 17:01:48发表:
    回复第 8 楼 于2014-02-24 15:37:51发表:
    回复第 3 楼 于2014-02-15 20:37:00发表:
    回复第 2 楼 于2014-02-14 09:27:41发表:
    请问你设置的中断是哪个模块的中断,在通过排IAR下载进程序后,默认进行一次软件复位的,在AN2295中有下面这么一段来判断上次复位的原因,如果是在debug过程中,这一句话始终不会运行,因为下载进去调试时默认都会SW复位。所以,这理论上讲和你是否再复位一次应该没关系。
    if(SRS_REG & SRS_POR_MASK)
    enableBootMode = 1;
     
    现在使用的中断有TPM模块中断,PIT中断和LPTMR中断,都是定时器中断。
    现在的现象时,如果通过IAR进行在线调试的时候,如果不软件复位一次,这些定时器中断都无法进入。软件复位后,中断正常。
    如果不通过IAR在线调试,即代码下载到板子中正常运行,板子只有完全下电然后在上电后才能正常进行中断,否则也不会进入中断。
     

     

    请问楼主是否有注意过:
    TPM模块的TPMx_CONF寄存器的DBGMODE位
    PIT模块的PIT_MCR寄存器FRZ位
    LPTMR模块工作在定时器模式时,请注意Table 33-1. Modes of operation表中Debug模式
     
    你说的这些确实没有注意过,我试试看。不过,LPTMR我现在用的就是counter 模式,按照table 33-1中的描述,counter模式在Debug下不能继续计数,这个有什么其他方法来规避这个问题呢?
     

     

    你好,你是time counter 模式还是 Pulse Counter模式?
    手册中明确讲了LPTMR在Debug模式下的情况,Pulse Counter模式是可以正常工作,但是time counter 模式,它的counter就不增加了。
    而且没有具体的寄存器去设置。
    所以如果你想定时,建议你使用PIT,或者TPM,这两个都是可以设置的。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 01:22 , Processed in 0.105415 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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