查看: 3299|回复: 16

[求助] KE02Z64 启动后频繁复位(SWD Reset)会是哪里有原因?

[复制链接]

该用户从未签到

12

主题

59

帖子

0

注册会员

Rank: 2

积分
123
最后登录
1970-1-1
发表于 2018-10-30 11:45:20 | 显示全部楼层 |阅读模式
在主循环中增加了W5500网络部分代码后,在启动后初始化过程中(尚未进入while(1)主循环)就会在串口不断打印出系统复位信息,其中复位类型显示“SWD Reset", 以区别于上电复位。

请问这会是哪里的原因?该如何处理?

我没有打开看门狗(不会是默认打开了吧)。

谢谢!
我知道答案 目前已有16人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2020-6-18 08:45
  • 签到天数: 812 天

    [LV.10]以坛为家III

    66

    主题

    4888

    帖子

    64

    金牌会员

    Rank: 6Rank: 6

    积分
    6152
    最后登录
    2024-4-15
    发表于 2018-10-30 13:12:16 | 显示全部楼层
    在配置文件中关闭看门狗

    评分

    参与人数 1 +1 收起 理由
    NXP管管 + 1

    查看全部评分

    开心
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20032
    最后登录
    2024-4-26
    发表于 2018-10-30 13:56:50 | 显示全部楼层
    kinetis的看门狗默认是开启的,所以如果你不用,启动后第一件事关看门狗,官方的代码都是这么干的。
    如果不关,那你要记得喂狗。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    59

    帖子

    0

    注册会员

    Rank: 2

    积分
    123
    最后登录
    1970-1-1
     楼主| 发表于 2018-10-30 13:58:49 | 显示全部楼层
    我没有打开看门狗,也要关闭一下试试?

    另外,我刚检查了一下打印信息有关复位源的判别代码,好像如果打印出来”SWD Reset“就已经排除了看门狗的可能,代码如下:


    /*****************************************************************************//*!
    +FUNCTION----------------------------------------------------------------
    * @function name: print_sys_log
    *
    * @brief  print system reset sources
    *        
    * @param  none
    *
    * @return none
    *
    * @ Pass/ Fail criteria: none
    *****************************************************************************/
    void print_sys_log(void)
    {
        uint8_t u8Rst = 0;
        uint8_t u8FamID, u8SubFamID, u8RevID, u8PinID;
        uint32_t u32Status;
       
        u32Status = SIM_GetStatus(0xFF);        /* get all status bits */
       
        /* get all IDs */
        u8FamID = SIM_ReadID(ID_TYPE_FAMID);   
        u8SubFamID = SIM_ReadID(ID_TYPE_SUBFAMID);   
        u8RevID = SIM_ReadID(ID_TYPE_REVID);   
        u8PinID = SIM_ReadID(ID_TYPE_PINID);   
       
        printf("\n--System Log BEGINS--\n");
        printf("\n Familly ID = 0x%x, Sub-family ID = 0x%x, Revision ID = 0x%x, Pin ID = 0x%x \n",
                u8FamID, u8SubFamID, u8RevID, u8PinID);

        if((u32Status & SIM_SRSID_POR_MASK) && (u32Status & SIM_SRSID_LVD_MASK))
        {
          u8Rst = 1;
          printf(" Power On Reset\n");
        }
       
        if(!(u32Status & SIM_SRSID_POR_MASK) && (u32Status & SIM_SRSID_LVD_MASK))
        {
          u8Rst = 1;
          printf(" LVD Reset\n");
        }
       
        if(u32Status & SIM_SRSID_WDOG_MASK)                 
        {
          u8Rst = 1;
          printf(" WDOG Reset\n");
        }
       
       
        if(u32Status & SIM_SRSID_PIN_MASK)
        {
          u8Rst = 1;
          printf(" Pin Reset\n");
        }
        if(u32Status & SIM_SRSID_LOC_MASK)
        {
          u8Rst = 1;
          printf(" Loss of Clock Reset\n");
        }   
        if(u32Status & SIM_SRSID_SACKERR_MASK)
        {
          u8Rst = 1;
          printf(" Stop Mode Acknowledge Error Reset\n");
        }   
        if(u32Status & SIM_SRSID_MDMAP_MASK)
        {
          u8Rst = 1;
          printf(" MDM-AP System Reset Request\n");
        }   
        if(u32Status & SIM_SRSID_SW_MASK)
        {
          u8Rst = 1;
          printf(" Software/SYSRESETREQ Reset\n");
        }   
        if(u32Status & SIM_SRSID_LOCKUP_MASK)
        {
          u8Rst = 1;
          printf(" Core lockup Reset\n");
        }   

        if(u8Rst != 1)
        {
          printf("SWD Reset\n");
        }
       
        printf("\n--System Log ENDS--\n\n");
      }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    59

    帖子

    0

    注册会员

    Rank: 2

    积分
    123
    最后登录
    1970-1-1
     楼主| 发表于 2018-10-30 14:00:06 | 显示全部楼层
    其中最后一行

    if(u8Rst != 1)
        {
          printf("SWD Reset\n");
        }

    说明u8Rst 不等于1,是否说明了不是看门狗复位?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    59

    帖子

    0

    注册会员

    Rank: 2

    积分
    123
    最后登录
    1970-1-1
     楼主| 发表于 2018-10-30 14:03:43 | 显示全部楼层
    我用的IAR 8.22开发环境,JLINK OB V2调试器,SWD调试下载。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20032
    最后登录
    2024-4-26
    发表于 2018-10-30 14:18:31 | 显示全部楼层
    Henryyam 发表于 2018-10-30 14:03
    我用的IAR 8.22开发环境,JLINK OB V2调试器,SWD调试下载。

    进入debug模式,查看WDOG_CS1[EN]位,你是关闭还是开启的?
    默认是开启的。
    另外,SWD口,你SWD_DAT是否外部上拉, NMI是否外部上拉?
    Reset引脚,外部上拉4.7K到10k,对地0.1uF电容,看看硬件是否有问题?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    59

    帖子

    0

    注册会员

    Rank: 2

    积分
    123
    最后登录
    1970-1-1
     楼主| 发表于 2018-10-30 14:42:05 | 显示全部楼层
    小恩GG 发表于 2018-10-30 14:18
    进入debug模式,查看WDOG_CS1[EN]位,你是关闭还是开启的?
    默认是开启的。
    另外,SWD口,你SWD_DAT是否 ...

    谢谢指导!我检查一下看看

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20032
    最后登录
    2024-4-26
    发表于 2018-10-30 14:58:57 | 显示全部楼层
    Henryyam 发表于 2018-10-30 14:42
    谢谢指导!我检查一下看看

    刚才又看了你说的问题,:在主循环中增加了W5500网络部分代码后,
    你的意思是,之前都用的好好的,只是加了部分代码之后,就这个样子了对吗?
    是不是RAM跑溢出了呢?你屏蔽些代码试试看,是否还有这个问题,如果还是有,你再跟随下你的添加代码,是不是操作哪些不存在的寄存器或者地址,或者溢出导致的错误问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    59

    帖子

    0

    注册会员

    Rank: 2

    积分
    123
    最后登录
    1970-1-1
     楼主| 发表于 2018-10-30 18:49:49 | 显示全部楼层
    把看门狗关了就不再进行初始化了,不知为什么?

    重新打开看门狗后,以下是初始化过程中printf通过串口打印出的内容:

    C々i曂褧祦Log BEGINS--

    Familly ID = 0x0, Sub-family ID = 0x2, Revision ID = 0x0, Pin ID = 0x7
    SWD Reset

    --System Log ENDS--

    6
    7
    C々i曂褧祦Log BEGINS--

    Familly ID = 0x0, Sub-family ID = 0x2, Revision ID = 0x0, Pin ID = 0x7
    SWD Reset

    --System Log ENDS--


    3
    4
    5
    6
    7
    C々i曂褧祦Log BEGINS--

    Familly ID = 0x0, Sub-family ID = 0x2, Revision ID = 0x0, Pin ID = 0x7
    SWD Reset

    --System Log ENDS--

    C々i曂褧祦Log BEGINS--

    Familly ID = 0x0, Sub-family ID = 0x2, Revision ID = 0x0, Pin ID = 0x7
    SWD Reset

    --System Log ENDS--

    如此反复地 SWD Reset 。。。。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-27 04:20 , Processed in 0.152041 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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