S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

这篇具有很好参考价值的文章主要介绍了S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.背景

近期在做一个小产品,是基于S32K144为MCU的板子。在调试过程中发现,虽然采用Jlink可以连接上,但是无法用S32DS的Debug模式进行调试。也就是.elf文件无法下载进入FLASH,而错误提示总是如下:

(1)Failed to download RAMCode

(2)Failed to Read Memory xxx

而且让人崩溃的是焊接了10套板子,有百分之八九十会有这种现象,现象还是一模一样。

首先是怀疑焊接有问题,焊接了N次,也换过N次MCU,最终的结果都是一样的。

xxxxx:真是让人欲哭无泪

2.排除的N种方法

2.1 是否S32DS的Debug模式有问题

网上遍历了各种帖子,也搜寻了各种官方的文档,然而没有任何作用。并不是各位大牛不牛,只能说没有对症下药

S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

 2.2 怀疑复位和晶振问题

             既然焊接确保了,电压也测量了,阻抗也测量了,Debug设置也没问题,那是否是复位和晶振的问题,一查复位,还真是有问题,出现了谜之一样的波形:三角波形状的复位信号。抱着试试看的心里,看各位广大的网友是否也遇到类似的情况,还真找到了一遍很相关的S32K1xx系列MCU应用指南之芯片锁死(lockup)复位原因分析与恢复方法详解 (qq.com)

       刚开始以为看了希望,按照上面的步骤一步步稳扎稳打,通过SWD读取MDM-AP状态寄存器的命令:

(1)SWDWriteDP 2 0x01000000 //SELECT[31:24] = 0x01选择MDM-AP,且设置DPACC寄存器的SELECT[7:4] = 0x0

(2)SWDReadAP 0   //通过AP index(A[3:2]=0b00)读取MDM-AP状态寄存器

(3)SWDReadAP 0   //dump out真实的AP寄存器值

然后出现了如下界面:

S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

        根据读取的指令确定FLASH已经初始化成功,就开始给FLASH解锁,解锁指令就是unlock Kinetis,出现了比较友好的结果:unlock device ok

         以为看到了未来,开始又尝试用S32DS的debug模式下载程序,然后问题依旧!!!!!!!令人很抓狂的。

        是不是复位的RC值不对,换了几组RC后,问题依旧存在。

进一步抓狂!!!!!!!!!!!!!!!

 2.3 FLASH Lock?

   在尝试了N次 unlock Kinetis后,也没有成效,又研究了这个帖子S32K1xx系列MCU应用指南之芯片锁死(lockup)复位原因分析与恢复方法详解 (qq.com)

    是不是没有mass  erase的原因,但是直接输入mass erase没有任何反应,Jlink Command根本不识别,后参考Jlink command的Help ,发现Erase指令,如下图:

S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

   直接输入Erase,果真能Erase,然后S32DS Debug还是不行。愤慨了,再Erase下,结果再也连不上Jlink了,MCU变成砖了。愤慨没用,继续搬砖

S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

 令人跟崩溃的,换了MCU,采用Jlink的UI界面手动擦除,结果MCU又变成砖了。又一次躺倒在希望的道路上S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

 3.N中死法后的重生

既然已经死了N次,再来一次,换了颗MCU后,尝试了下Jliink UI界面的如下指令,如下图所示

S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

        既然出现了奇迹,如下图所示,擦写、下载、验证都是OK的,重新上电,跑马灯起来了,整个世界都亮了。

S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

4.重生后的回味

        重生后的喜悦是必然的,但是到底是什么原因了,原来官方的手册写的很明白,当FLASH Memory的安全机制是激活的时候,仿真器是可以连上,但是没法读取Flash Memory的内容的,就出现了Debug模式下的:Failed to Read Memory xxx。

S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?

        那需要怎么解除安装机制呢,官方手册也说了,就是trigger a mass erase。 

       那上文尝试的几次Erase怎么还变砖了,那就是擦除的方式不对,导致mass erase disable,这样无法连接上仿真器,这个时候的方法是采用后门钥匙,但这是天方夜谭,除非你找到原厂支持。

      因此,不要随便擦除,还是按照Jlink自带的Production Programming就行擦除下载。

5.tips

当使用Jlink  UI执行Production Programming没有证书,可以私信。文章来源地址https://www.toymoban.com/news/detail-421474.html

到了这里,关于S32K锁死之谜?Failed to download RAMCode? Failed to Read Memory?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • S32K142 MCU锁死解锁

    本文主要介绍S32K142 MCU锁死(Jlink报错:0x400-0x40F indicate that readout p’rotection is set)的原因简介以及如何使用 J-Link Commander 工具解🔒。 一、故障现象 二、原因分析 基于S32K144的芯片锁死,一般有如下几种可能:   1. 时钟配置异常 ,MCU被倍频以及不配置时钟,都有可能造成

    2024年02月04日
    浏览(58)
  • 解决stm32芯片锁死 出现Error:Flash Download Failed-“Cortex-M3“

    打开MDK软件使用SW当时连接单片机发现能连接到板子 显示已经连接上 但是再下载的时候出现Error:Flash Download Failed-\\\"Cortex-M3\\\"下载错误 首先排除硬件连接问题,能够连接到stm32说明硬件连接没有问题,再排除软件编译错误,最后预估可能是硬件stm32芯片由于脉冲电平的干扰导致芯

    2024年02月15日
    浏览(89)
  • S32k314的mcal介绍

    MCAL(Microcontroller Abstraction Layer)是 Autosar(Automotive Open System Architecture)中的一个重要组成部分。MCAL 提供了一组与底层硬件相关的 API 和服务,使高层应用程序能够与底层硬件进行通信和交互,以便实现系统的功能。 MCAL 模块负责处理与微控制器硬件相关的操作,包括 I/O 端

    2024年02月11日
    浏览(45)
  • S32K3系列单片机学习

    定时器中断,每个平台的实现方式均有差异,从51单片机通过寄存器配置实现定时器周期计数,再到使用HAL库配置STM32的定时器,他们的实现原理都是大同小异的,只不过不同的平台使用的底层库不同,导致实现的方法不同而已。 Periodic Interrupt Timer (PIT) : PIT是一个定时器数组

    2024年02月01日
    浏览(42)
  • 浅析S32K324的时钟树

    如下图为S32K3XX系列的时钟树图: 时钟源 说明 FIRC 快速内部RC时钟源 SIRC 慢速内部RC时钟源 FXOSC 快速外部晶振时钟源 SXOSC 慢速外部晶振时钟源 S32K3系列的mcu有4个时钟源如上表。 如上图标记为FIRC 对FIRC(快速内部RC时钟源)的操作,请参考上图中文档S32K3xx Reference Manual第25章节

    2024年02月03日
    浏览(38)
  • S32K3学习笔记---S32K3之MCU模块

    ​ 后续关于MCAL的配置都是基于EB29.0,RTD3.0的配置,MCU是基于S32K324。前期312、344也都使用过,也是第一次使用NXP的多核,后续将记录各个模块学习过程。 环境安装及参考资料如下: ​ 芯片手册:S32K3XXRM.pdf ​ EB工具 :EB29.0安装包 ​ RTD及demo路径:RTD3.0和Demo ​ EB安装步骤:

    2024年02月03日
    浏览(44)
  • S32K3系列 --- MCU(Clock) Mcal配置

            很多工程师其实并不太会过多的关注Clock的配置,本身我对Clock的了解也不是特别多,但是还是觉得想去了解一下,因为在其他的配置过程中,我遇到了很多错误,都是由于Clock的配置引起的问题,这里过一个简单的记录。 FIRC :Fast Internal RC Oscillator         芯

    2024年02月20日
    浏览(50)
  • S32K3 MCAL配置之GPT 基于EBtresos

    GPT GPT可以为系统配置定时器通道给需要定时功能的模块,比如OS需要一个时间刻度来周期执行TASK; 计时器按照用户设置进行计时,达到预定的时间通过中断通知系统,系统可在通知函数内进行服务调度; 涉及模块:GPT MCU Platform 在GptChannelConfiguration添加GPT通道 双击GPT通道进

    2024年02月02日
    浏览(37)
  • S32K3XX单片机DMA原理深度解析

    首先我们需要了解,什么是 DMA ? DMA 的中文名称叫做 直接内存访问 ( Direct Memory Access ),是一种不需要CPU参与,就能实现数据传输的技术(从一个地址空间到另一个地址空间)。也就是说,在不需要 CPU 插手的情况下,完成内存与外存之间的数据传输,从而 CPU 可以被解放

    2024年02月04日
    浏览(44)
  • 【Autosar】MCAL - MCU(NXP - S32K14x)

    MCAL - 汇总 配置工具:EB Tresos Studio 芯片类型:S32K146 MCU模块提供了访问 内核 相关功能的API,例如配置时钟、初始化RAM、设置低功耗模式、提供复位接口等。 1.1 时钟介绍 从上图可以看到最左边为输入时钟源,右边为输出时钟 ,为了让系统运行在合适的时钟频率环境下,我们

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包