This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RM48L952:阻止调试和运行应用程序的程序代码

Guru**** 2535150 points
Other Parts Discussed in Thread: RM48L952, UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1203237/rm48l952-programmed-code-blocking-the-debugging-and-running-the-application

器件型号:RM48L952
主题中讨论的其他器件: UNIFLASHHALCOGEN

您好!

我在对 RM48L952器件进行编程时遇到问题。 我们需要使用我们自己从 RAM 运行的引导加载程序对其进行重新编程(使用引导 ROM 在并行模式下加载)。 如果器件为空白、引导加载程序将正常工作、一切正常。 但是、当我们尝试对器件进行重新编程(使用未知数据编程)时、加载到 RAM 中的引导加载程序不会启动、而且我们无法使用 Code Composer Studio (我们使用12.2版本)对该器件进行调试。 这个未知代码并未编辑 OTP 和 AJSM、只对闪存进行编程。

访问器件的唯一方法是使用 TI Uniflash。 当我们使用此应用程序擦除器件时、可以访问器件并运行引导加载程序(和调试)、而不会出现任何问题。 我可以从器件(通过 UniFlash)为您提供预先读取的闪存十六进制数据、但不会在此公共论坛中(如有必要)提供。 此外、我还可以为您提供我们的引导加载程序项目的源代码(一个 zip 文件)以供您调查。

这是时间紧迫的问题、非常感谢您的帮助。

Tomas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tomas:

    在将代码编程到这些闪存扇区之前、必须擦除闪存扇区。 要擦除扇区、必须启用这些扇区。

    Fapi_setActiveFlashBank ((Fapi_FlashBankType) 0);
    Fapi_enableMainBankSectors (0xFFFF);/*用于 API 2.01*

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、QJ:

    扇区很难擦除、如果我无法运行引导加载程序、它确实如此... 我不存在编程例程本身的问题。 也许你不明白我写了什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    没有想法/解决方案?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    新信息-我尝试在运行到 main.c 之前调试应用程序、并发现 algo 卡在行332:systemREG1->PLLCTL1  =(systemREG1->PLLCTL1 & 0xE0FFFFFFU)|(UINT32)((UINT32)(UINT32)(24U - 1U)中。

    有什么想法、为什么它会止步于此?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我需要添加信息、为了调试器件、我需要在"Debug/Flash settings"窗口中启用"System Reset on Connect"。 此外、这种调试非常不稳定。 我怀疑、如果使用器件、闪存中编程的代码会影响时钟/PLL 设置。 这是问题的根源。 但如何解决该问题并从 RAM (我的引导加载程序)运行应用、而不管闪存代码中已编程的时钟设置如何?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    似乎、在勾选"连接时系统重置"后、我的应用程序可正常工作。 没有打勾、我就无法完成主程序。 那么问题是、在调试开始之前、"连接时系统复位"在 JTAG 引脚上执行什么操作... 好像、我需要在内核暂停之后、在将应用程序代码加载到 RAM 之前实现这个"连接时复位"。。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    此论坛的某个 TI 成员能否撰写文章、  "System Reset on connect"在 JTAG 引脚上执行什么操作? 哪些 CPU 以及 CPU 寄存器会受到什么影响等 ?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tomas:

    在 JTAG 连接目标期间发出系统复位命令。 Hercules MCU 上的 ICEPICK 逻辑允许 通过调试逻辑生成系统复位。 系统复位将复位器件、但调试逻辑除外。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    Hercules MCU 上的 ICEPICK 逻辑允许 通过调试逻辑生成系统复位

    能否详细介绍一下在 ICEPICK 逻辑上执行哪些具体步骤才能实现系统复位?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    spna230文件是解决我的问题与核心停止 befora 应用程序启动的答案。线程可以关闭。

    谢谢!

    Tomas