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.
我尝试使用 DSS 脚本 loadit.sh、它在 main.js 行239 (debugSession.memory.loadProgram (OUTFILE))挂起。
我不熟悉 DSS、因此请不要以为我知道太多。
我在 Linux 系统上运行、能够通过 CCS GUI 加载和执行该操作、但我必须能够通过命令行对器件进行编程和刷写、以实现自动化。 我无法通过 Rhino 进一步进入。
如何进一步调试?
控制台:
~/ti/ccs1210/ccs/ccs_base/scripting/examples/loadti $ dss.sh -dss.debug main.js -v -s=~/stdout.log -c ~/ti/CCSTargetConfigurations/am243x-gp-evm-XDS200.ccxml /home/markwar/workspaces/ti-rot4.1-fvt/rot4.1-fvt/fvt_jtag_flash/Debug/fvt_jtag_flash.out SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See www.slf4j.org/codes.html for further details.
Rhino 内部的 JavaScript 控制台:
***** DSS Generic Loader ***** START: 09:40:31 GMT-0600 (CST) Configuring Debug Server for specified target... getServer: ENTRY sServerName: DebugServer.1 getServer: Getting definition for: DebugServer.1 getServer: Constructing server getServer: RETURN com.ti.debug.engine.scripting.DebugServer@45909523 setConfig: ENTRY sConfigurationFile: /home/markwar/ti/CCSTargetConfigurations/am243x-gp-evm-XDS200.ccxml setConfig: RETURN Done debuggerOpen: ENTRY sBoardName: * sCPUName: * start: ENTRY start: Firing: onServerStarting() start: Connecting to XPCOM DebugServer start: Initializing DebugServer using specified configuration: "/home/markwar/ti/CCSTargetConfigurations/am243x-gp-evm-XDS200.ccxml" waitUntil: ENTRY com.ti.ccstudio.scripting.environment.ScriptingEnvironment@4759f349 timeout: infinite <init>: CPU Name: MAIN_Cortex_R5_0_0 <init>: PartNum: AM2434_ALV <init>: Family: 470 <init>: SubFamily/MajorISA: d <init>: Revision/MinorISA: 0 <init>: Platform: EMULATOR <init>: Processor ID: 1971336192 <init>: DBName: ArmAdvancedFeatures <init>: CPU Name: CS_DAP_0 <init>: PartNum: AM2434_ALV <init>: Family: 224 <init>: SubFamily/MajorISA: 1 <init>: Revision/MinorISA: 0 <init>: Platform: NONE <init>: Processor ID: 939525125 waitUntil: RETURN com.ti.ccstudio.scripting.environment.ScriptingEnvironment@4759f349 start: Firing: onServerStarted() start: Searching for devices listDevices: ENTRY listDevices: Found debuggable device: Texas Instruments XDS2xx USB Debug Probe_0/MAIN_Cortex_R5_0_0 listDevices: Found non-debuggable device: Texas Instruments XDS2xx USB Debug Probe_0/CS_DAP_0 listDevices: RETURN start: RETURN debuggerOpen: RETURN Texas Instruments XDS2xx USB Debug Probe_0/MAIN_Cortex_R5_0_0 setString: ENTRY ID: FileIODefaultDirectory Value: undefined setString: RETURN TARGET: Texas Instruments XDS2xx USB Debug Probe_0 Connecting to target... connect: ENTRY isConnected: ENTRY isConnected: Target is not connected isConnected: RETURN false connect: Requesting target connect waitUntil: ENTRY timeout: infinite log: Target is now connected waitUntil: RETURN isConnected: ENTRY isConnected: Target is connected isConnected: RETURN true connect: RETURN testEnv.outFiles: /home/markwar/workspaces/ti-rot4.1-fvt/rot4.1-fvt/fvt_jtag_flash/Debug/fvt_jtag_flash.out Loading /home/markwar/workspaces/ti-rot4.1-fvt/rot4.1-fvt/fvt_jtag_flash/Debug/fvt_jtag_flash.out loadProgram: ENTRY sFileName: /home/markwar/workspaces/ti-rot4.1-fvt/rot4.1-fvt/fvt_jtag_flash/Debug/fvt_jtag_flash.out load: Requesting program load waitUntil: ENTRY timeout: infinite waitUntil: RETURN load: Program load successful getBoolean: ENTRY ID: AutoRunToLabelOnRestart getBoolean: RETURN true waitForHaltIfPropertySet: Waiting for halt waitUntil: ENTRY timeout: infinite
SLF4J 警告不会打扰到我,它们是一个已知的问题,我可以忽略它。
我可以加载一些图像。 我们有一些更简单、更小的编译、可以加载和运行(223K)、但当我尝试加载更大的(1.2M)时(它通过 CCS GUI 加载和运行而不会出现任何问题)、它会挂起。
我一直在研究日志中的差异,并且尝试在 Rhino 中单步执行脚本,但除了等待停止之外,我没有进一步了解到挂起的性质。
两个输出都显示“LOAD:程序加载成功”,但较大的图像似乎挂起,等待暂停。
我知道.out 文件通过 CCS GUI 加载和运行时没有问题,但不是通过命令行加载和运行的,我似乎无法更好地了解为什么它会滞留等待暂停。 您能详细介绍一下这方面的情况吗?我可以做些什么来推动发展吗?
Mark、您好!
默认情况下、loadti 将运行程序、然后等待程序终止。 如果程序未终止(在循环中运行等)、则 loadti 将无限期地等待、直到 loadti 被强制终止(CTRL+C 等)。 如果您运行程序、然后立即退出 loadti、则可以使用"-a"选项运行。 另一个选项是设置超时(使用"-t")、以便 loadti 在退出前等待指定的时间量。
有关更多详细信息、请参阅以下链接中的"已知限制"和"将 loadti 与 MSP430配合使用"部分:
https://software-dl.ti.com/ccs/esd/documents/sdto_dss_loadti.html
谢谢
Ki
这是可以的、但我希望我的器件的控制台使用 UART 端口。
加载了 CART_SINK_AM243_GPIO_fvt_1.out 后、它会定期向 UART 和控制台发出一系列字符串、指示一组 GPIO 引脚的状态。 它不会退出、只会在所选 GPIO 引脚的状态下每10秒打印一次行。
CART_SINK_AM243.OUT 使用相同的 UART 来记录其启动序列、然后在完全初始化后、UART 用作器件的控制台、但不会向 UART 输出单个字符。
当您通过 CCS 加载并运行该程序时、您会看到来自 UART 的所有预期输出、但在使用 loadti (仅使用-v、-s 和-c)时、您在程序运行时看不到任何 UART 输出?
正确。 从 CCS 运行时的 UART 输出、但通过 loadti 运行时不输出。
loadti 不应干扰这一点。 它应类似于从 CCS 运行程序。
您是否有机会分享您的计划? 您是否在定制 AM243x 目标或某些 TI EVM 或 LaunchPad 上运行?
谢谢
Ki
我们今天取得了突破、能够通过我们的 OL8系统上的 loadti.sh 运行 kitch_sink_am243.out 文件。 似乎问题是用于构建其中一个项目的嵌入式目标器件是 AM2434_AVL、而另一个是 AM243x_GP_EVM。 使用与 OUT 构建相同的配置、使其运行。 让我有点担心的是、AM2432_AVL 没有与电路板上的处理器相匹配的配置选项、而 AM2434_AVL 不是我们要选择的正确目标?
为了使工作更加顺畅,我进入了高级设置并“绕过”了除 MAIN_Cortex_R5_0_0处理器之外的所有设置。
我无法运行的是 Rhino 调试器经过或进入 loadti foldler 中 main.js 的第87行。 Rhino 将从没有问题的开始、但如果我让它运行、它将退出。 如果我单步执行 getArgs(),它就会退出,而不会显示函数的第一行。 我想让此功能正常工作、因为当我们编写一个脚本以加载并刷写到 am2432时、它会非常有用。
您知道为什么我不能让 Rhino 步入 getArgs()或超过 getArgs()?
这是我要使用的命令行:
~/ti/ccs1210/ccs/ccs_base/scripting/examples/loadti $ dss.sh -dss.debug main.js -c -v ~/ti/CCSTargetConfigurations/am243-gp-evm-fresh-xds200.ccxml ~/Downloads/kitchen_sink_am243_gpio_fvt_1.out
我猜在 DSS 下运行 loadit.sh 可能会导致 loadti 参数解析问题,但这不会阻止我单步执行。
此致、
标记
我不能就此发表评论、因为我不知道两者之间的主要区别是什么。 它可能非常相似、但我将服从设备专家的意见(可能在此基础上创建新主题)
[引用 userid="547606" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1194963/mcu-plus-sdk-am243x-am243x/4508334 #450834"]我无法运行的是 Rhino 调试器经过或进入 loadti foldler 中 main.js 的第87行。 Rhino 将从没有问题的开始、但如果我让它运行、它将退出。 如果我单步执行 getArgs(),它就会退出,而不会显示函数的第一行。 我想让此功能正常工作、因为当我们编写一个脚本以加载并刷写到 am2432时、它会非常有用。
您知道为什么我不能让 Rhino 步入 getArgs()或超过 getArgs()?
[/报价]这是奇数。 这对我来说很有用。 如果您在第87行设置了断点、那么什么会显示为参数值?
进入
如何为 loadti 运行 Rhino 调试器? 您是否修改了 loadti.bat 脚本以使用 shell 上的调试器?
这是奇数。 这对我来说很有用。 如果您在第87行设置了断点、那么什么会显示为参数值?
-c -v ~/ti/CCSTargetConfigurations/am243-gp-evm-fresh-xds200.ccxml ~/Downloads/kitchen_sink_am243_gpio_fvt_1.out
进入
进入失败我没有获取 getArgs.js 文件或 getArgs()函数,它只是存在的
如何为 loadti 运行 Rhino 调试器? 您是否修改了 loadti.bat 脚本以使用 shell 上的调试器?
Rhino 无法在输入端获取批处理文件或 shell 脚本。 我将 main.js 作为起点($ dss.sh -dss.debug main.js -c -v ~/ti/CCSTargetConfigurations/am243-gp-evm-fresh-xds200.ccxml ~/Downloads/kitchen_sink_am243_gpio_fvt_1.out)、因此我没有修改批处理文件或脚本文件、因为它们未被使用。
loadti.sh 文件比 loadti.bat 文件简单得多:
#! /bin/sh
#此脚本执行 DSS Linux 的 LoadTI
导出 LOADTI_path=$(dirname $(which $0))
$LOADTI_PATH/./../bin/dss.sh $LOADTI_PATH/main.js $@
因此、我在调用 DSS 之前执行了导出。
我可以在 main.js 的第一部分看到其他源文件和单步执行,但当我设置到 getArgs()或通过 getArgs()时,所有文件都会停止。
这是不正确的。 您需要在-c 参数后指定 ccxml 文件。 您在-c 参数后有一个-v。 这将导致出现异常。
[引用 userid="547606" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1194963/mcu-plus-sdk-am243x-am243x/4510282 #4510282"] loadti.sh 文件比 loadti.bat 文件简单得多:抱歉、我忘记了您在 Linux 上。 我将在该环境中尝试。
导出 LOADTI_PATH 时、是否可以使用 LOADTI 目录的绝对路径? 我需要这样做、才能使事情正常工作
我从~/ti/ccs1220/ccs/ccs_base/scripting/examples/loadti 文件夹运行 loadit。 dss.sh 之所以可用、是因为 n ü~/ti/ccs1220/ccs/ccs_base/scripting/bin 文件位于我的$path 中。
您是否尝试过绝对路径? 它是否起作用?
不变。 我从主文件夹中运行了该文件。
$ dss.sh -dss.debug ~/ti/ccs1210/ccs/ccs_base/scripting/examples/loadti/main.js -c -v ~/ti/CCSTargetConfigurations/am243-gp-evm-fresh-xds200.ccxml ~/Downloads/kitchen_sink_am243_gpio_fvt_1.out
我的意思是:
双击图像以展开。
查看如何在控制台中使用绝对路径将 LOADTI_PATH 导出到 loadti 脚本的位置。 未使用"~"。
然后、我在 Rhino 调试器中运行 main.js 脚本。
我现在能够逐步了解 getArgs.js。 请注意、我遇到第140行、因为我错误地传入了参数:
-c -v
这是不正确的。 它应该是:
-c -v
我希望您也会遇到相同的错误、因为您也在执行以下操作:-c -v
谢谢
Ki