Other Parts Discussed in Thread: TMS320F28379D
部件号: TMS320F28379D
您好:
我请求您提供帮助、以解决发现的不一致行为 Code Composer Studio 20.4.0 、使用 旧 DSS (dss.bat) 在 A 上 TMS320F28379D 目标 (CPU1 + CPU2) 。
我目前正在将旧版 DSS 脚本(从 CCS 9.2)迁移到 CCS 20.4.0、并且遇到与相关的阻塞问题 闪存擦除后的闪存内容验证 。
发现的问题
可以了 .out每个 CPU 在闪存中加载 5 个程序 () (CPU1 和 CPU2)。
标称外壳(工作正常)
loadProgram(.out)
verifyProgram(.out)
verifyProgram(.out)
→验证正常
有问题的情况
使用以下器件执行的闪存擦除:
debugSessionsMap[cpuName].flash.options.setString(
"FlashEraseSelection",
"Entire Flash"
);
debugSessionsMap[cpuName].flash.erase();
擦除两个 CPU 后、我执行:
debugSessionsMap[cpuName].memory.verifyProgram(binPath);
意外结果
-
verifyProgram()不抛出任何异常 和打印件 “验证成功“ 指定 五个已加载程序之一 。 -
这种行为 始终出现在同一程序中 在五人中。
-
问题是 CPU1 和 CPU2 上都是相同的 。
不过:
-
a. 原始内存转储 擦除后立即执行的操作显示相应的闪存区域已存在 完全充满了
0xFF。 -
下载程序后、相同的转储文件正确地显示程序存在于闪存中。
因此:
-
闪存为 有效擦除 转换为擦除操作。
-
但是
verifyProgram()错误地报告程序仍然存在 。
所用代码
验证/闪存
try {
debugSessionsMap[cpuName].memory.verifyProgram(binPath);
print("Verification successful on " + cpuName +
" FLASH for the binary '" + binPath + "'.");
} catch (ex) {
print("Verification failed on " + cpuName +
" FLASH for the binary '" + binPath + "'.");
if (mode === "FLASH") {
print("Flashing to " + cpuName +
" FLASH the binary '" + binPath + "'...");
debugSessionsMap[cpuName].memory.loadProgram(binPath);
}
}
原始闪存读取(转储)
var nativeArray = debugSessionsMap[cpuName].memory.readData(
0, startAddr, 8, lengthBytes
);
提前感谢您的帮助。
此致、
Mathis Grenier
软件工程师

