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.

[参考译文] J721EXSOMXEVM:使用 javascript loadProgram 在 R5F 处理器上加载可执行文件与加载 wtih CCS UI 时产生的结果不同

Guru**** 2451970 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1526823/j721exsomxevm-loading-an-executable-on-an-r5f-processor-with-javascript-loadprogram-does-not-produce-same-result-as-loading-wtih-ccs-ui

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

工具/软件:

我有一个简单的 javascript、用于为 2 个 Cortex R5 处理器打开一个调试服务器、重置它们、然后在每个处理器上加载一个映像。 但是、通过脚本加载结果会产生不同的结果、然后当我直接从 Code Composer Studio UI 加载结果时。  它们也无法正常运行。

已加载脚本。

已加载 UI

有什么我遗漏的事情吗?

下面是我的脚本。

importPackage(Packages.com.ti.debug.engine.scripting)
importPackage(Packages.com.ti.ccstudio.scripting.environment)
importPackage(Packages.java.lang);
importPackage(Packages.java.io);

var script = ScriptingEnvironment.instance();
print("Got Scripting instance.");

// Get the Debug Server and start a Debug Session
debugServer = script.getServer("DebugServer.1");

// Configure target for a TCI6488 EVM with SD XDS510 USB emulator
print("Configuring debug server for TDA4VM EVM...");
debugServer.setConfig("C:/Users/rstjohn/ti/CCSTargetConfigurations/TDAV4M_DemoBoard.ccxml");
print("Done!");

// Open a debug session for each CPU we want to load and run
print("Opening a debug session for MCU cores...");
dbsMcu2_0 = debugServer.openSession(".*MAIN_Cortex_R5_0_0");
dbsMcu2_1 = debugServer.openSession(".*MAIN_Cortex_R5_0_1");
print("Done!");

// Connect to each TCI6488 CPU
print("Connecting to MCUs...");
dbsMcu2_0.target.connect();
dbsMcu2_1.target.connect();
print("Done!");

// Halt each processor
print("Pausing each RF.5..");
if( dbsMcu2_0.target.isHalted() == false )
{
	dbsMcu2_0.target.halt();
}
if( dbsMcu2_1.target.isHalted() == false )
{
	dbsMcu2_1.target.halt();
}
print("Paused...."); 
 
// Issue a reset to each processor
print("Resetting each RF...");
//dbsMcu2_0.target.reset();
//dbsMcu2_1.target.reset();
mcu2_0_Reset =dbsMcu2_0.target.getResetType(0);
mcu2_1_Reset =dbsMcu2_1.target.getResetType(0);
mcu2_0_Reset.issueReset();
mcu2_1_Reset.issueReset();

// Load a program for the MCUs
print("Loading programs to MCUs...");
dbsMcu2_0.memory.loadProgram("Z:/home/rstjohn/Repos/NTS2/Gemini12/bin/release/wx.ipcTest.main_r5f_mcu2_0.xer5f");
dbsMcu2_1.memory.loadProgram("Z:/home/rstjohn/Repos/NTS2/Gemini12/bin/release/wx.ipcTest.main_r5f_mcu2_1.xer5f");
print("Done!");

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

    您好、

    让我更详细地浏览脚本、然后返回给您。

    谢谢、

    Neehar

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

    太好了、谢谢

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

    尊敬的 Randy:

    它们也无法正常运行。

    两种上传方法都无法正常运行二进制文件?

    能否提供更多有关情况的信息? 您无法单步执行吗? 或者二进制文件未按预期运行?

    谢谢、

    Neehar

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

    如果您看一下我最初发布的图片、您可以看到在调试器中加载的模块在这两种方法之间是不同的。 当加载脚本后执行“run"时“时、程序将在执行处理程序中结束、不执行代码。 使用 UI 加载代码后、“run"会“会正确执行代码。

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

    尊敬的 Randy:

    在我们的 J7 器件上、我们仅支持通过 CCS UI 加载代码、如标题为“CCS Setup for J721E“的 SDK 文档中所述。  

    但是、我建议查看 launch.js JavaScript 文件 、作为 TI 编写的代码示例、可以在以下位置找到:  [pdk_install_path]/packages/ti/drv/sciclient/tools/ccsLoadDmsc/j721e/launch.js

    由于我们不支持通过 JavaScript 等脚本加载示例、因此无法提供相关支持或帮助、因为您使用 UI 加载应用程序代码时不会出现问题。

    谢谢、

    Neehar

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

    Neehar。 我理解你的立场。   

    不过、我想说的是、我对 TI 愿意提供的支持水平感到失望。 文档中没有任何内容表明我不应能够使用脚本将应用程序加载到 R5F 处理器。 我花了几个小时的时间尝试调试和研究使用脚本,以节省一些时间,它需要一个论坛帖子,以发现它不是官方支持.

    只是没有人有时间了解它为什么不起作用、还是真正的已知问题是在 J721e 处理器的 R5f 处理器上加载程序由于脚本支持中的一些潜在问题而无法正常工作?

    我的示例脚本实际上是使用 launch.js 脚本作为示例编写的。

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

    尊敬的 Randy:

    我明白 你的处境。 这不是已知的问题、并且您应该不会在通过脚本加载到内核时遇到问题、因为 launch.js 脚本被广泛使用。 我会看看你的脚本,并在本周回复你。

    谢谢、

    Neehar

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

    谢谢你。

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

    尊敬的 Randy:

    您能否确认运行 launch.js 脚本时没有问题?

    谢谢、

    Neehar

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

    是、运行 launch.js 脚本没有问题。 我们每天做几次以进入调试状态。  

    我想知道 IPC 示例是否有任何特殊要求?  因为我们编写的程序基于 ipc_echo_test_fretos 示例

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

    尊敬的 Randy:

    您是否测试过加载任何其他示例? 如 PDK 中的 GPIO 或 UART 示例。

    谢谢、

    Neehar

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

    尊敬的 Randy:

    接下来、该问题是否仍然存在?

    谢谢、

    Neehar

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

    好吧,它还没有解决,但我已经停止尝试使用脚本加载可执行文件,并刚刚使用了 UI 和处理器组.  

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

    尊敬的 Randy:

    感谢此更新,这是我们建议  使用我们的 launch . js 脚本加载二进制文件的方式。 只要你没有这个问题,我就会结束这个话题。

    谢谢、

    Neehar

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

    我不明白你的评论。  

    我无法使用 JS 脚本文件成功加载两个处理器。 我们运行 launch.js 脚本以获取 sciserver 以及它设置的其他运行、但这不会加载我们的可执行文件。

    我们已经绕过了使用脚本,因为它们对我们不起作用。 我们使用 UI 手动加载程序、而不是像我们想做的那样的脚本。

    如果需要、您可以关闭此项、但没有任何问题得到解决。 我们只是不使用脚本,因为它们不对我们起作用。

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

    尊敬的 Randy:

    我无法使用 JS 脚本文件成功加载两个处理器。 我们运行 launch.js 脚本以使 sciserver 以及它设置的任何其他运行、但这不会加载我们的可执行文件。

    是的、正确。 launch.js 脚本用于设置裸机环境、其中包括设置 DDR、PLL、PSC 等以及 sciserver 测试应用程序。 您仍必须使用 CCS UI 手动加载二进制文件。

    如果需要、您可以关闭此窗口、但尚未解决任何问题。 我们只是不使用脚本,因为它们对我们不起作用。

    如果您没有主动尝试使用脚本加载二进制文件、我将关闭线程。 如果您仍在尝试此方法并需要帮助、我将保持该线程处于活动状态并继续响应。

    谢谢、

    Neehar