器件型号:CCSTUDIO-C2000
工具/软件:Code Composer Studio
您好!
我使用 loadti 脚本从命令行加载和运行.outs。 但是、我看到脚本永远不会退出(除非我使用 Ctrl+C 强制退出)。
我的主代码不在无限循环中、并且在主函数完成时、代码会卡在作为 EXIT 函数一部分的 ABORT 函数中用于循环。
如何使用脚本以便在脚本到达 EXIT/ABORT 时退出?
谢谢、
Veena
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-C2000
工具/软件:Code Composer Studio
您好!
我使用 loadti 脚本从命令行加载和运行.outs。 但是、我看到脚本永远不会退出(除非我使用 Ctrl+C 强制退出)。
我的主代码不在无限循环中、并且在主函数完成时、代码会卡在作为 EXIT 函数一部分的 ABORT 函数中用于循环。
如何使用脚本以便在脚本到达 EXIT/ABORT 时退出?
谢谢、
Veena
[引用 user="Veena Kamath">我使用 loadti 脚本从命令行加载和运行.outs。 但是、我看到脚本永远不会退出(除非我使用 Ctrl+C 强制退出)。程序是否从 C2000器件上的闪存运行并使用 CIO?
查看一些执行 printf()然后从 main 返回的示例程序:
Cortex-A8程序生成 CIO 输出、然后正常退出:
~/ti/ccs830/ccsv8/ccs_base/scripting/examples/loadti/loadti.sh -c targetConfigs/BeagleBone_Black.ccxml Debug/AM3359_struct_padding.out ***** DSS 通用加载程序***** 开始:11:04:08 GMT-0000 (GMT) 为指定目标配置调试服务器... 目标完成 :Blackhawk USB560-M 仿真器、20引脚 JTAG 电缆 连接至目标... testEnv.outFiles:Debug/AM3359_struct_padding.out 加载调试/AM3359_struct_padding.out 已完成 目标正在运行... 中断以中止。 。 。 sizeof (nopack)=6 &nopack.stX=0x40305948 &nopack.pktlen=0x4030594a &nopack.pid=0x4030594c sizeof (packed)=4 &pid packed.stX=0x40305950 &packed.pktlen=0x40305951 &gMT 正常完成周期数:0x40305904 :0x1504:0x5414:gmced.04:0x40553&gm=0x40553&gm=0x40553&gm=0x40553&g
与最小 loadti 参数一起使用时、闪存中的 C2000程序不会生成 CIO 输出、并且在与 Ctrl-C 终止之前不会退出:
~/ti/ccs830/ccsv8/ccs_base/scripting/examples/loadti/loadti.sh -c targetConfigs/TMS320F28027.ccxml Debug/TMS320F28027_printf.out ***** DSS 通用加载程序***** 开始:11:25:41 GMT-0000 (GMT) 为指定目标配置调试服务器... 目标完成 :德州仪器 XDS100v1 USB 调试探针 连接到目标... testEnv.outFiles:Debug/TMS320F28027_printf.out 加载调试/TMS320F28027_printf.out 已完成 目标正在运行... 中断以中止。 。 。 ^C
如果使用--no-profile loadti 选项,则程序会报告 CIO 输出,但仍必须使用 Ctrl-C 终止:
~/ti/ccs830/ccsv8/ccs_base/scripting/examples/loadti/loadti.sh --no-profile -c targetConfigs/TMS320F28027.ccxml Debug/TMS320F28027_printf.out ***** DSS 通用加载程序***** 开始:11:27:56 GMT-0000 (GMT) 为指定目标配置调试服务器... 目标完成 :德州仪器 XDS100v1 USB 调试探针 连接到目标... testEnv.outFiles:Debug/TMS320F28027_printf.out 加载调试/TMS320F28027_printf.out 已完成 目标正在运行... 中断以中止。 。 。 foo 为:1 foo 为:2 ^C
我认为问题是 C2000器件只有两个用于支持硬件断点/配置文件时钟的 AET 资源。
如果使用 loadti --no-profile 选项(阻止 loadti 为配置文件时钟使用一个 AET 资源),是否允许脚本正常退出?
程序从 RAM 运行、而不是从闪存运行。 它使用 printf 函数来打印一些结果。
除了.out 和目标 CCXML 之外、我没有使用任何其他参数来访问 loadti。
谢谢、
Veena
[引用 user="Veena Kamath">该程序从 RAM 而不是闪存运行。 它使用 printf 函数来打印一些结果。
除了.out 和目标 CCXML 之外、我没有使用任何其他参数来加载程序。[/quot]我可以使用 CCS 8.3加载程序和 TMS320F2812的程序来重复此操作、该程序在 RAM 中运行并使用 printf、因为该程序不会在 main 末尾终止。
发现 loadti 使用默认调试属性。 对于 C28xx 目标、 ccsv8\ccs_base\DebugServer\propertyDB\PropertiesDB.xml 中的默认 AddCEXITbreakpointAfterLoad "Halt at program exit for TI 编译器(需要断点)"属性为 false。
loadti 没有支持更改调试属性的命令行选项。 因此,创建了一个修改的版本, 其中 loadti\main.js 中的 run()函数被修改为在 debugSession.options.setString("FileIODefaultDirectory"、testEnv.fileIOFolder 之后插入以下内容;调用:
//对于 C2800目标覆盖默认值、该默认值不会将断点设置为在退出 debugSession.options.setBoolean("AddCEXITbreakpointAfterLoad"时停止、true);
使用此修改后的 loadti 脚本、在报告 printf 输出后、在 RAM 中运行的 TMS320F2818程序在完成时退出:
C:\users\MR_半 字\workspace_v8\SPILED>loadti\loadti.bat -c targetConfigs\TMS320F2812.ccxml Debug\SpiLED.out***** DSS 通用加载程序***** 开始:15:07:19 GMT-0000 (GMT) 为指定目标配置调试服务器... 目标完成 :德州仪器 XDS100v2 USB 调试探针 连接到目标... testEnv.outFiles:Debug\SpiLED.out Loading Debug\SpiLED.Out Done Target Running... 中断以中止。 。 。 LED = 1 LED = 2 LED = 3 LED = 4 LED = 5 LED = 6 LED = 7 LED = 8 LED = 9 正常完成:545635636周期 结束:15:07:42 GMT-0000 (GMT)