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.

[参考译文] UNIFLASH:使用 TMS570XXX 限制存储器范围验证的范围

Guru**** 2587365 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1162133/uniflash-limiting-range-for-verification-of-memory-range-with-tms570xxx

器件型号:UNIFLASH

我将 Uniflash 的 CLI 版本与 XDS110搭配使用、以便在生产线环境中对我们的产品(基于 TMS570LS033X)进行编程。  

迄今为止、这种方法效果非常好、但最近进行了更改、其中产品的其他数据存储在 MCU 存储器的组7扇区3区域中(这由 FW 命令存储、而不是通过 JTAG 存储)。

我想在编程周期中将这个区域排除在编程、擦除和验证之外。  

我设法将其从使用范围设置进行编程和擦除中排除  

{"FlashRangeTog":true、"FlashRangeAddr":"0x0000000-0x0003FFFF、0xF0200000-0xF0202FFF"}

但是、如果编程序列号的区域导致验证失败、这仍然会为验证部件创建错误。  

我的问题是、在对产品运行硬件验证后、我必须擦除芯片、并对最终用户的固件进行编程。 类似地、如果在初始运行中发现错误时必须运行第二个测试、则电路板将已存储额外的数据、因此无法验证。  

我知道、智能移动是将这些附加数据编程到 OTP 区域、但这不是所做的决定、也不可能更改此数据。  

此致、

Henrik 水坝

Uniflash 输出:  

DSLite 版本9.2.0.1723  
正在配置调试器(首次启动可能需要几分钟时间)...  
 正在初始化寄存器数据库...  
 正在初始化:IcePick  
 执行启动脚本:IcePick  
 正在初始化:DAP  
 执行启动脚本:DAP  
 正在初始化:CortexR4  
 执行启动脚本:CortexR4  
正在连接...  
CortexR4:GEL 输出: 闪存的存储器映射设置@地址0x0Loading Program:Multiple Files  
 正在准备...  
CortexR4:GEL 输出: 由于系统复位、闪存@地址0x0的存储器映射设置  
 0x0时为40960的0  
正在擦除闪存  
 擦除组0、扇区0  
 擦除组0、扇区1:5%  
 擦除组0、扇区2:10%  
 擦除组0、扇区3:15%  
 擦除组0、扇区4:20%  
 擦除组0、扇区5:25%  
 擦除组0、扇区6:30%  
 擦除组0、扇区7:35%  
 擦除组0、扇区8:40%  
 擦除组0、扇区9:45%  
 擦除组0、扇区10:50%  
 擦除组0、扇区11:55%  
 擦除组0、扇区12:60%  
 擦除组0、扇区13:65%  
 擦除组7、扇区0:75%  
 擦除组7、扇区1:80%  
 擦除组7、扇区2:85%  
 0x0时40960的32752:12%  
 0xa000处为200352的0:15%  
 0xa000处200352的32752:28%  
 200352的65504在0xa000:41%  
 200352的98256在0xa000:53%  
 200352的131008在0xa000:66%  
 200352在0xa000处的163760:79%  
 200352在0xa000处的196512:92%  
 0x3fee0为288的0:93%  
 0xf0200000处16384的0:93%  
 完成:93%  
CortexR4:GEL 输出: 由于系统复位、闪存@地址0x0的存储器映射设置  
 将 PC 设置为入口点。:93%  
正在验证程序:多个文件  
 正在准备...  
 0x0时为40960的0  
 0x0时40960的32752:12%  
 0xa000处为200352的0:15%  
 0xa000处200352的32752:28%  
 200352的65504在0xa000:41%  
 200352的98256在0xa000:53%  
 200352的131008在0xa000:66%  
 200352在0xa000处的163760:79%  
 200352在0xa000处的196512:92%  
 0x3fee0为288的0:93%  
 0xf0200000处16384的0:93%  
错误:CortexR4:文件加载程序:验证失败:地址0xF0203000上的值不匹配请验证目标内存和内存映射。  
 完成:93%  
失败:文件:多个文件:发生数据验证错误、文件加载失败。  

 

配置文件:  

                                                                                                

设置文件: {"Texas Instruments XDS110 USB Debug Probe/CortexR4":{"FlashRangeTog":true、"FlashRangeAddr":"0x0000000-0x0003FFFF、0xF0200000-0xF0202FFF"}

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

    您好!

    我需要跟进工程设计。 我将在收到任何更新时传递这些更新。

    谢谢

    Ki  

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

    我现在发现了这种失败的部分原因。

    我要编程到组7区域的十六进制文件为16KB、最后4KB 全部为零。

    当将这个16KB 文件编程到12KB 空间时、如果我不包含程序运行的空空间、但是验证失败、因为有部分文件需要在距离函数设置的区域之外进行编程。  

    我本来希望这可能会使编程显示错误、这可能会使我走错路、但我想这是有道理的。

    现在、我正在尝试确定如何修复我的十六进制文件...

    此致、

    Henrik