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.

[参考译文] TMS320F280033:无法写入 TMS320F280033 FlashROM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1261000/tms320f280033-unable-to-write-to-tms320f280033-flashrom

器件型号:TMS320F280033
主题中讨论的其他器件: UNIFLASH

环境:CCS v12.4.00007

采取的步骤:

  1. 从 CCS 菜单栏创建了一个新项目、并将 TMS320F280033设置为目标。
  2. 将项目名称设置为"test"。
  3. 配置了"连接到 XDS2xx USB 调试探针"、并将 JTAG 模式设置为 cJTAG (1149.7) 2引脚高级模式。
  4. 已运行调试、接收到以下错误、但是 RAM 可执行:
    C28xx_CPU1:GEL:执行 OnReset (0)时出错:未找到标识符:SYSCTL_O_DC21
    在(0x0005D000+SYSCTL_O_DC21)[f280033.GEL:814]
    at Device_Config ()[f280033.GEL:192]
    在 OnReset (0)时
  5. 结束调试执行、并在 Project 属性中将连接器命令文件更改为 F280033_flash_lnk.cmd。
  6. F280033_flash_lnk.cmd 的默认 FlashROM 段不包括组0的 Section0~Section7、因此它们无法按原样使用。 因此、BANK0中的所有设置都更改为 BANK1。
    (示例:FLASH_BANK0_sec2 > FLASH_BANK1_sec2)
    此外、由于 GAP 包含在 GROUP 存储器范围中、请进行以下更改:
    begin:origin = 0x088000、length = 0x000002
    FLASH_BANK0_SEC8:origin = 0x088002、length = 0x000FFE
  7. 在此状态下运行 Debug 会导致控制台中显示以下错误消息、并且闪存写入失败:
    C28xx_CPU1:闪存编程器:缺少闪存编程设置。
    C28xx_CPU1:文件加载程序:存储器写入失败:未知错误
    C28xx_CPU1:GEL:文件:C:\workspace_v12\test\Debug\test.out:加载失败。

控制台中显示的完整日志如下所示:

C28xx_CPU1:GEL 输出:

RAM 初始化完成

C28xx_CPU1:GEL 输出:
存储器映射初始化完成
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:GEL:执行 OnReset (0)时出错:未找到标识符:SYSCTL_O_DC21
  在(0x0005D000+SYSCTL_O_DC21)[f280033.GEL:814]
  at Device_Config ()[f280033.GEL:192]
  在 OnReset (0)时
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:GEL:执行 OnReset (0)时出错:未找到标识符:SYSCTL_O_DC21
  在(0x0005D000+SYSCTL_O_DC21)[f280033.GEL:814]
  at Device_Config ()[f280033.GEL:192]
  在 OnReset (0)时
C28xx_CPU1:闪存编程器:缺少闪存编程设置。
C28xx_CPU1:文件加载程序:存储器写入失败:未知错误
C28xx_CPU1:GEL:文件:C:\workspace_v12\test\Debug\test.out:加载失败。

您能否告诉我、是否需要任何解决方案或其他设置? 谢谢你。

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

    尊敬的 Yuhei:

    你是否 只是因为第4步中的错误而更改了设置/链接器 cmd 文件? 这似乎是 GEL 文件的错误、我将循环咨询相应的专家来解决此问题。

    Luke

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

    Luke、您好!

    感谢您调查此问题。

    我想澄清一点、对 settings/linker cmd 文件所做的更改不是为了响应在步骤4中遇到的初始错误。
    这里的主要目标是写入闪存、缺省连接器命令文件有问题、所以有必要修改它。
    RAM 执行的目的是为了证明调试器连接没有问题。

    我期待专家对 GEL 文件错误的深入了解。
    感谢您的帮助。

    此致、
    鱼平市

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

    Yuhei,  

    GEL 文件有问题。  将为此问题生成一个错误。  

    SYSCTL_O_DC21用于此器件上不可用的 CLB。   

    请注释掉 GEL 中的以下行(行编号819) (f280033.gel)  

     *(unsigned long *)(DEVCFG_base + SYSCTL_O_DC21)= DCX_ENABLE_HIGH |*(unsigned long *)(TI_OTP_ADDR_DC21);

    此致

    西达尔特

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

    尊敬的 Siddharth:

    感谢您的快速响应和指导。

    我按照您的说明操作、并注释掉了 GEL 文件中的指定行。
    这确实更改了日志输出、我不再看到先前与 SYSCTL_O_DC21相关的错误。
    但是、闪存写入仍然遇到问题。
    当前日志输出如下所示:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    C28xx_CPU1: GEL Output:
    RAM initialization done
    C28xx_CPU1: GEL Output:
    Memory Map Initialization Complete
    C28xx_CPU1: GEL Output: ... DCSM Initialization Start ...
    C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
    C28xx_CPU1: GEL Output: ... DCSM Initialization Start ...
    C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
    C28xx_CPU1: Flash Programmer: Missing Flash Programming Settings.
    C28xx_CPU1: File Loader: Memory write failed: Unknown error
    C28xx_CPU1: GEL: File: C:\workspace_v12\test\Debug\test.out: Load failed.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    似乎仍然存在与闪存编程设置相关的问题、并且存储器写入失败。 您能否指导我进一步说明需要执行哪些额外步骤来解决此问题?

    非常感谢您的帮助。

    此致、
    鱼平市

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

    Yuhei,

    您能够擦除闪存吗?  您可以尝试使用片上闪存选项来擦除闪存吗?

    将此查询转发给闪存编程专家以进一步注释。

    此致

    西达尔特

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

    尊敬的 Siddharth:

    我很感激你对 Flash 擦除的指导,但我在遵循指示的过程中遇到了一些困难。

    在项目的 Debug Configuration 中、我知道应该通过"Flash Settings"菜单完成擦除。 但是、对于 F280033工程、"Debug Configuration"菜单未显示、因此无法进行所需的调整。

    为了进行比较、F280039C 项目的 Debug Configuration 中提供了"Flash Settings"菜单。

    如果我的理解有误、您能否提供更多见解或更正我?

    我还尝试安装 UniFlash 8.4.0、但在"设置和实用程序"下、它显示"没有可用于所选内核的闪存设置/实用程序"、使我无法执行擦除操作。

    在其他上下文中、我想强调的是、我可以通过编程和执行 F021闪存 API 来写入和擦除闪存区域、而不会遇到任何问题。 这可能会说明问题的某些方面,虽然我仍然遇到了前面提到的困难与标准擦除过程。

    此致、
    鱼平市

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

    Yuhei,

    感谢详情,将此查询转发给 Flash 编程专家进一步评论,并帮助您解决此问题。

    此致

    西达尔特

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

    尊敬的  Yuhei:

    我们将检查 CCS v12.4中的 F280033支持、并在本周结束时回复您。

    谢谢。此致、

    瓦姆西

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

    尊敬的 Yuhei:

    我们的团队将向您发送友谊请求、并提供有关如何成功对 F280033器件进行编程的说明。

    对于可能参考这篇文章的其他用户:CCSv12.5本身就支持 F280033。  如果您在 CCSv12.4中需要 F280033支持、可通过论坛联系我们、同时我们将提供启用支持的相关说明。

    谢谢。此致、

    瓦姆西

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

    尊敬的 Vamsi 和 Siddharth:

    感谢您团队提供的指导、我已成功确认现在可以写入 F280033器件。
    问题已解决、感谢您的快速响应和帮助。

    此致、
    鱼平市

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

    供参考对于可能参考此帖子的其他人:  请在 https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1096194/faq-c2000-ccs-flash-plugin-and-uniflash 的闪存工具常见问题解答页面中搜索以下问题 

       我们知道、默认情况下、CCSv12.5支持 F280033器件的闪存操作。  我们如何在 CCSv12.4中获得此支持?

    谢谢。此致、
    瓦姆西