查看: 4216|回复: 5

[已解决] KL17存在BUG坟坑,异常进入ROM BOOT卡死连外部看门狗都咬不活

[复制链接]

该用户从未签到

11

主题

101

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2021-11-15
发表于 2018-7-5 14:50:08 | 显示全部楼层 |阅读模式
       MKL17包含ROM BOOT功能,在Flash的0x40D位置决定其上电后程序执行起始位置,附件中含两个示例程序,基于IAR For Arm V7.6开发,其中iar_app工程的startup_MKL17Z4.s配置从Flash启动,iar_rom工程的startup_MKL17Z4_rom_boot.s配置从ROM BOOT启动。       同样的源码,iar_app工程可正常运行(LED1和LED2以500毫秒同期翻转),iar_rom工程仿真运行后,LPTMR中断产生后KL17从暗门(无解从哪跳入)跨入ROM BOOT区的0x1c0021b8:0xe7fe B.N 0x1c0021b8死循环,拔掉J-Link仿真器,跳帽使能板上看门狗,示波器测量RESET_b引脚有1.6秒周期200毫秒低电平复位信号,CPU仍无法重启复活,此乃KL17 BUG坟坑,进入ROM BOOT区死循环,复位引脚低电平都无法使系统复活,然后必须整板断电再上电,程序又可正常运行(LED1和LED2以500毫秒同期翻转)
   示例程序用ROM BOOT加载方式复现正常程序运行过程中异常进入ROM BOOT区卡死,程序开发仿真过程中曾发生过偶然跨入ROM BOOT区死循环,均通过整板断电后再上电方可恢复,原因不明曾被忽略,现在此缺陷已对项目产品造成毁灭性损害,卡死在现场无法复活了




   求助各路大神有没遇到过这样异常,以及如何绕开KL17此BUG坟坑。

最佳答案

从你的描述来说,好像指KL17只要从ROM启动后,中断的发生会使得KL17跳转到ROM内,并且不能出来,是这样吗? 还有这个问题在你的测试中,是每一片芯片都是同样的表现吗? ...

mkl17_blink_sdk231.zip

199.45 KB, 下载次数: 1, 下载积分: 威望 1

ROM BOOT

回复

使用道具 举报

该用户从未签到

11

主题

101

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2021-11-15
 楼主| 发表于 2018-7-5 14:56:26 | 显示全部楼层
附件为试验过程截图
ROM_BOOT.PNG
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24884
最后登录
2025-7-20
发表于 2018-7-6 09:56:40 | 显示全部楼层
从你的描述来说,好像指KL17只要从ROM启动后,中断的发生会使得KL17跳转到ROM内,并且不能出来,是这样吗?
还有这个问题在你的测试中,是每一片芯片都是同样的表现吗?
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

101

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2021-11-15
 楼主| 发表于 2018-7-6 14:17:39 | 显示全部楼层
小恩GG 发表于 2018-7-6 09:56
从你的描述来说,好像指KL17只要从ROM启动后,中断的发生会使得KL17跳转到ROM内,并且不能出来,是这样吗? ...

对的,我是通过配置FOPT使KL17上电从ROM BOOT启动,IAR仿真时可以复现在main函数运行过程中LPTMR的中断触发时KL17跨立即入ROM BOOT区里的死循环,片外看门狗的复位引脚也无法恢复KL17重启运行,需整板断电再上电KL17才可恢复正常运行程序。

每块板都这样,只要配置从ROM BOOT启动,IAR仿真时均在LPTMR中断产生时重入ROM BOOT跑死,屏蔽未用LPTMR时,仿真监视正常运行main函数,只是SysTick中断未能执行。。
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

101

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2021-11-15
 楼主| 发表于 2018-7-6 14:19:59 | 显示全部楼层
小恩GG 发表于 2018-7-6 09:56
从你的描述来说,好像指KL17只要从ROM启动后,中断的发生会使得KL17跳转到ROM内,并且不能出来,是这样吗? ...

用FRDM-KL27Z官方开发板跑官方SDK包,LPTMR例程配置FOPT选项从ROM BOOT启动,仿真时也可复现程序跨入ROM BOOT死循环
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

101

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2021-11-15
 楼主| 发表于 2018-7-11 17:34:03 | 显示全部楼层
问题已查明,主要是IAR仿真时跳过ROM BOOT代码,进入main函数前未将RCM_MR清0,导致中断向量仍指向ROM BOOT区的中断向量表导致,但查看SCB->VTOR的TBLOFF值为0了,外设中断时仍以ROM BOOT中的死循环响应。
KL17异常原因.PNG
RCM_MR.PNG
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-21 04:24 , Processed in 0.101769 second(s), 28 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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