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.

[参考译文] TM4C123GE6PM:"Unlock"操作

Guru**** 2365090 points
Other Parts Discussed in Thread: UNIFLASH, LMFLASHPROGRAMMER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1525596/tm4c123ge6pm-unlock-operation

器件型号:TM4C123GE6PM
Thread 中讨论的其他器件:UNIFLASHLMFLASHPROGRAMMER

工具/软件:

我已经使用以下代码对 BOOTCFG 寄存器进行了编程和设置:

#include <stdint.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"

#define FLASH_FMA  0x400FD000
#define FLASH_FMD  0x400FD004
#define FLASH_FMC  0x400FD008

int main(void)
{
    // 1. FMA should have this value to program BOOTCFG
    HWREG(FLASH_FMA) = 0x75100000;

    // Data to be flashed in BOOTCFG, must be stored in FMD
    // 2. BOOTCFG value: PD1 active LOW = 0xFFFF64FE
    HWREG(FLASH_FMD) = 0xFFFF64FE; //FMD to enable Port D1 on LOW for ROM bootloader execution

    // FMC should have writekey and commit bit
    HWREG(FLASH_FMC) = 0xA4420000 | 0x9;

    // Wait until commit is complete
    while (HWREG(FLASH_FMC) & 0x9);
}

我已经对其进行了测试、它可以正常工作、BOOTCFG 正在按编程方式工作。

我现在想将 BOOTCFG 寄存器更改为[0xFFFF66FE]、根据之前的支持问题、我认为需要“解锁“器件、然后重新编程。

编程完成后、再次更改其值的唯一方法是执行“解锁“操作并将器件恢复到出厂设置。

我有一个使用 XDS110 调试探针的 JTAG 接口。 我尝试了具有“Erase Flash“和“Blank Check“以及 LMFlashProgrammer “Debu Port Unlock“->"Unlock"的“的 Uniflash“ Uniflash 实用程序、但没有成功。 在 Uniflash 存储器浏览器中、我仍然看到 BOOTCFG 为 FFFF64FE

解决此问题的最佳方法是什么?

谢谢!

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

    您好、

     擦除闪存仅擦除主闪存。 它不会擦除 BOOTCFG 等非易失性寄存器。  请使用 dbgjtag.exe 解锁器件。 您可以在 C:\ti\ccs1260\ccs\ccs_base\common\uscif\dbgjtag.exe 中找到该命令、路径取决于您的 CCS 安装。

    “dbgjtag.exe–f @xds110–Y 解锁、mode=Tiva“

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

    这就是我所需要的。 谢谢!