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.

[参考译文] TMS320F280049:使用 Olimex XDS100-v2对 UniFlash 批处理文件进行编程问题-在 GUI 中工作、但在批处理模式下失败

Guru**** 2559750 points
Other Parts Discussed in Thread: UNIFLASH, TMS320F280049

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1392606/tms320f280049-programming-issue-with-uniflash-batch-file-using-olimex-xds100-v2---works-in-gui-but-fails-in-batch-mode

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

工具与软件:

大家好!

当尝试使用 Olimex XDS100-v2对我的 TMS320F280049进行编程时、UniFlash 出现问题。 我有使用 DCSM 锁定的固件。 我的问题是、由于无法手动使用 UniFlash、我需要创建批处理文件;我只能运行批处理文件来对电路板进行编程。

我使用 UniFlash 执行的操作如下:

  • 擦除闪存(整个闪存)
  • 设置 CSMPSWD 密码(程序密码)
  • 设置 GRABSECT/RAM (编程 GRABSECT/RAM)
  • 设置 OTPSECLOCK (编程 OTPSECLOCK)
  • 选中二进制选项并加载地址0x80000的二进制文件
  • 涂层

当我使用 UniFlash GUI 手动执行此过程时、一切都很完美。 不过、当我直接从 UniFlash 生成批处理文件时、该文件似乎无法正常工作。

让我更详细地解释一下:我没有收到任何错误消息;实际上、它表示它已成功编程。 问题是、通过观察电路板的电流消耗、就像从未对其进行编程一样。 对于纯色电路板、电流消耗为8 -10mA。 在编程期间、它增加到25mA。 使用 UniFlash GUI 进行编程后、我得到了40mA、这是正确的。 但是、如果我使用批处理文件、编程期间的消耗从8 -10mA 变为25mA、然后在完成后保持在8 -10mA。

看起来好像什么都没有编程。 批处理文件未被修改或没有任何内容;它只是看起来不能正常工作。 借助 UniFlash GUI、从原始电路板开始、一切都能完美运行。 如果我切换到另一个原始开发板并运行批处理文件、则会得到以下消息:"C28xx_CPU1:警告:复位后解锁器件(区域1)失败。" 但是从 GUI 看、一切都运行正常。

我无法理解会发生什么、因为如果我在 GUI 中执行相同的过程、它会很好地工作、但 UniFlash 生成的批处理文件无法工作。

有人能帮我吗?

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

    您好!

    Unknown 说:
    但是、当我直接从 UniFlash 生成批处理文件时、它似乎无法正常工作。

    我假设您是指独立的命令行包。 我不确定您提到的所有步骤是否都将添加到软件包中

    您能否提供生成的软件包? 您可以删除整个 ccs_BASE 文件夹。 如果您不想共享您的可执行文件、您也可以删除/user_files/images 文件夹。

    谢谢

    Ki

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

    你好,谢谢你的答复。

    是的、正确、我是指独立命令行。 我已在下面附加了 zip 存档。 我删除了包含固件的 Image 文件夹、并出于安全原因将 CSMP、GRABSECT 等的值更改为 XXXXXXXX。

    此外,我注意到,在我的"手册"程序,我也设置otpseclock,但正如你可以看到在设置文件,它不存在,从未定义。 所有"受保护"的值都已替换为 X

    感谢您的帮助

    e2e.ti.com/.../Uniflash_5F00_batch.zip

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

    解决了我的问题! 我必须指定寄存器、然后使用-b选项指示操作。 这是我使用的命令:

    dslite flash -c C:\Users\nicola.reat\Downloads\XXXXXXX.ccxml -s Z1B0CSMPSWD3=XXXXXXX -s Z1B0CSMPSWD2=XXXXXXX -s Z1B0CSMPSWD1=XXXXXXX -s Z1B0CSMPSWD0=XXXXXXX -b Z1PasswordProgram -s Z1B0GRABSECT=XXXXXXX -s Z1B0GRABRAM=XXXXXXX -b Z1B0GRABProgram -s Z1B1GRABSECT=XXXXXXX -b Z1B1GRABProgram -s Z1B0PSWDLOCK=XXXXXXX -s Z1B0CRCLOCK=XXXXXXX -b Z1OTPSECLOCKProgram -b Z1OTPBOOTCTRLProgram -b Z1Unlock -s VerifyAfterProgramLoad="No verification" -e "C:\Users\nicola.reat\XXXXXX.bin,0x80000"
    
    
    
    
    
    

    说明:

    • -c C:\Users\Nicola.create\Downloads\XXXXX.ccxml :指定目标设备的配置文件。
    • -s Z1B0CSMPSWD3=XXXXXXX (和类似参数):这些命令用于设置特定的寄存器值。
    • /b Z1PasswordProgram (和类似参数):该-b选项指示要执行的特定操作。
    • -s VerifyAfterProgramLoad="不验证" :此选项指定编程加载后不进行验证。
    • -e "C:\Users\Nicola.create\XXXX.bin、0x80000" :指定要刷新的二进制文件和应加载的内存地址。

    我希望这能帮助别人!