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.

[参考译文] CCStudio:使用 Loadti 示例.js 脚本对多个目标器件进行编程。 -- CPU 选项

Guru**** 2482225 points
Other Parts Discussed in Thread: TMS320F28335

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1433954/ccstudio-using-loadti-example-js-scripts-to-program-multiple-target-device---cpu-option

器件型号:CCSTUDIO
主题中讨论的其他器件:TMS320F28335

工具与软件:

您好!

使用 Loadti (ccsv8)的默认示例脚本不检索 getArgs.js 中的选项"--cpu"、因此 main.js 不包括选择在链中传递第一个 CPU 的能力。

是否有人做了任何事情或有改进的示例脚本来实现该选项、因为我所做的似乎并不起作用。 我知道 config .ccxml 文件非常好、因为它在 CCS 中工作正常。 器件类型为"TMS320F28335"

非常感谢

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

    您好!

    我假设您需要继续使用 CCSv8、却无法进行升级? 如果这样、我可以很肯定的是、你可以从支持--cpu 选项的后来 CCS 中获取 loadti 示例并将它与 CCSv8一起使用。 loadti 示例变化不大、只是做了少量细微添加。

    谢谢

    Ki

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

    谢谢 Ki、

    这非常有用、已经解决了我的问题、不幸的是、我现在还有一个问题...

    我在一个链中有4个 DPSS、前2个正常工作、但3和4当尝试连接(X200调试器)对其进行编程时、 我收到 debugsession.target.connect 调用返回的错误。

    C28xx_3:连接到目标时出错:(错误-1155 @ 0x0)器件可能在低功耗模式下运行。 调试器已强制唤醒器件。 选择"OK"以尝试完成调试连接。 (仿真包8.1.0.00012)  

    当从 CCS GUI 运行时也会发生这种情况、但很明显、我可以按 Enter 键、我无法通过此脚本进行交互、您知道如何解决这个问题吗?

    非常感谢

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通过此脚本我无法交互、您知道如何解决这个问题吗?

    您可能必须在连接到内核3和4时捕获并适当处理它时抛出的异常。 也许您只能在处理程序中尝试重新连接。

    在任何情况下、您都需要修改脚本。 如果使用 loadti、您需要直接修改 loadti 脚本示例。 现在、它只显示错误并退出:

        // Connect to target. If target is simulator or already connected, a warning will be reported.
        try
    	{
            debugSession.target.connect();
        }
    	catch (ex)
    	{
    		errCode = getErrorCode(ex);
            dssScriptEnv.traceWrite("Error code #" + errCode + ", could not connect to target!\nAborting!");
            quit(errCode != 0 ? errCode : 1);
        }

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

    再次感谢 Ki、

    问题在于、链上的3和4个器件不会连接、除非在器件2和3上打开会话。

    现在运转正常、在执行任何编程之前、我只需按顺序打开并连接全部4个模块。

    再次感谢。  

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

    很高兴您找出了这个问题、并感谢您的更新!

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

    尊敬的 Ki:

    很抱歉、我又是。 现在、我已经通过 LoadTI 脚本成功实现了程序文件的自动刷写、但最后要完成的是曲线锯。

    我们使用 CCS 中的"Tools->Load Memory"函数来修改闪存编程后的某些单独存储器位置、这只是我们以二进制格式加载的16字节十六进制数据。 我在 LoadTI 脚本中尝试了-mlr 和-mld 方法来执行此操作、但未成功。

    mlr (Session.memory.loadRaw)命令仅返回错误4009、表明存储器映射正在阻止加载数据(按预期报告 ADDR)

    MLD (Session.memory.loadData)命令指出、它无法对原始二进制数据进行编程、因为其没有需要的 COFF 标头。

    你知道这些脚本命令中的任何一个是否应该执行我想要的操作吗? 或者 DSS API 中是否有其他我应该尝试的函数。

    提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这只是我们以二进制格式加载的16字节十六进制数据。 我尝试在 LoadTI 脚本中同时使用-mlr 和-mld 方法来执行此操作、但没有成功。[/QUOT]

    您需要使用-mlr 来加载原始二进制文件。 -mld 用于*。dat 文件: https://software-dl.ti.com/ccs/esd/documents/users_guide_12.8.0/ccs_debug-main.html#ti-dat-format

    -mlr (session.memory.loadRaw)命令仅返回错误4009、表明存储器映射正在阻止数据加载(按预期报告 ADDR)

    这听起来像是数据验证错误排序。 请确保您尝试加载的地址未被调试器阻止:

    https://dev.ti.com/tirex/explore/node?node=A__APy2XbLelxyqBB2Yz0WR.w__ccs_devtools__FUz-xrs__LATEST

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

    您好、Ki、抱歉、我今天回到这里、我仍在努力工作、我们在 CCS 中用于执行此操作的工具是"Tools->LoadMemory"、并将文件类型选为二进制。

    loadti 脚本中的-mlr 函数似乎想要设置一些我们在 CCS 中不做的选项、事实上我们只是选择一个起始地址并喷出中的原始数据。 mlr 函数(session.memory.loadRaw) 似乎使用文件类型"TI Raw Data"选项

    所以

    而不是

    我们是否能够通过 DSS 执行此操作?

    DS API 文档中有以下内容...

    • LoadBinaryProgram

      Public void loadBinaryProgram(Java.lang.String sFileName、
      长 起始地址)
      抛出 ScriptingException
      将二进制文件加载到当前目标/CPU 中。 在程序加载之前自动发出 Target.halt (),在加载完成后自动发出 Target.restart ()。
      参数:
      sFileName -要加载的文件的名称。 允许使用相对路径 ScripingEnvironment.setCurrentDirectory(String) 来更改当前工作目录。
      抛出:
      ScriptingException

    我是否可以通过修改 Java 脚本并改为调用"debugSession.memory.loadBinaryprogram(nAddress, sFilename)"来使用它?

    再次提前感谢

    Matt

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

    loadRaw 加载二进制文件、但提供有关数据格式的更多选项。 这就是为什么建议使用该 API 以为用户提供最大灵活性的原因。

    loadBinaryProgram 将始终加载到 PAGE 0、默认情况下禁用默认字大小和字节交换。 它基本上是 loadRaw、但使用3个选项是固定的。 它主要用于可执行的二进制程序、而不是原始数据。

    我建议仍使用 loadRaw。