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.

[参考译文] TMS320F28377D-DSS EP:无法在调试会话期间将数据写入全局变量。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1265444/tms320f28377d-ep-not-able-to-write-data-to-global-variable-during-debug-session-dss

器件型号:TMS320F28377D-TMS320F28375D-DSP EP
主题中讨论的其他器件:CCStudio

大家好、我已经创建了这个脚本来记录一些数据。

有人能指导我将数据写入全局变量吗?

下面是 DSS 脚本:

//Use this command in the scripting console to run this script"
// > loadJSFile "C:/git/master/dss/test/dataLog.js"

// Import the DSS packages into our namespace to save on typing
importPackage(Packages.com.ti.debug.engine.scripting)
importPackage(Packages.com.ti.ccstudio.scripting.environment)
importPackage(Packages.java.lang)
importPackage(Packages.java.io.*)

var globalBuffData1 = activeDS.symbol.getAddress("globalBuffDataF1");
var globalBuffData2 = activeDS.symbol.getAddress("globalBuffDataF2");
var globalBuffData3 = activeDS.symbol.getAddress("globalBuffDataF3");
var globalBuffData4 = activeDS.symbol.getAddress("globalBuffDataF4");

var captureEN = activeDS.symbol.getAddress("captureEN");
var captureENF = activeDS.symbol.getAddress("captureENF");

//Write 1 to captureEN and captureENF
//activeDS.memory.writeData(0, captureEN, 1);
//activeDS.memory.writeData(0, captureENF, 1);
//Wait for some time to capture the data
Thread.sleep(2000);
try{
activeDS.memory.saveData(0, globalBuffData1, "C:/git/master/dss/test/globalBuffData" + 1 + ".dat", 256, 4, false); 
activeDS.memory.saveData(0, globalBuffData2, "C:/git/master/dss/test/globalBuffData" + 2 + ".dat", 256, 4, false); 
activeDS.memory.saveData(0, globalBuffData3, "C:/git/master/dss/test/globalBuffData" + 3 + ".dat", 256, 4, false); 
activeDS.memory.saveData(0, globalBuffData4, "C:/git/master/dss/test/globalBuffData" + 4 + ".dat", 256, 4, false); 
print('Memory logged succesfully');
}
catch(ex) {
	if(activeDS == null)
	{
		print('Error!! Debug session not detected !!');
	}
	print(ex);
	quit();
}

我无法在脚本中写入1来捕获和捕获 ENF,它会在这些行(行号19和20)上抛出错误。

亲切的帮助!

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

    您好、Arun、

    我将尝试看看我们是否有这方面的专家。 同时、您是否使用此引用来创建脚本?

    https://software-dl.ti.com/ccs/esd/training/workshop/ccsv9/dss_fundamentals_workshop.html

    我不太熟悉此脚本的工作原理,但我认为 activeDS 必须在某个  位置定义;您是否检查了它是否正确包含在此源文件的位置中? 正在抛出什么错误?

    此致、

    阿米尔·奥马尔

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

    您好、Omer:

    脚本可以运行、但我只能从调试会话中读取数据、但当我尝试写入数据时、我会得到以下错误:

    js:> var captureEN = activeDS.symbol.getAddress("captureEN");
    
    js:> var captureENF = activeDS.symbol.getAddress("captureENF");
    
    js:> activeDS.memory.writeData(0, captureEN, 1);
    Can't find method com.ti.debug.engine.scripting.Memory.writeData(number,number,number).

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

    您好、Arun、

    我 将查看我们是否有这种脚本编写方法的专家、并在本周晚些时候与您联系。

    此致、

    阿米尔·奥马尔

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

    Arun,
    我认为写入函数缺少一个参数、即 nTypeSize 或

    公共 空 writeData (int nPage、long nAddress、long[] nValues、int nTypeSize ) 

    您能尝试一下吗?
    activeDS.memory.writeData (0、captureEN、1、16);

    看看这是否起作用。

    此致!
    马特

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

    大家好、Matthew、是的、很有用、感谢您的更正。