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.

[参考译文] TMS320LF2407A:验证在程序地址0xxxxx 处失败

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/833540/tms320lf2407a-verification-failed-at-program-address-0xxxxx

器件型号:TMS320LF2406A

大家好、

我在基于 F2406的传统项目上为客户提供支持。

他们要做的是将代码下载到现有板上。 目前、它们可以连接和擦除器件。 但是、当他们尝试对器件进行编程时、会出现错误"Verification failed at program address 0xxxxx"。

以下是 CMD 文件:

-c rts2xxm.lib
-stack 0x00E0
-x
-m cu_loader.map
-o cu_loader.out

objs\ap_main.objs\boot.obj

objs\flash_vec.objs\flash_objs\io_can
obj


obj obj objs\io_hardware.objs\io_timer_tk_timer.obtk.obtk_js\ctobtk.objs\tk.obtk.obtk_000pinjs*








*/
AHDR:origin=00080h、length=00005h//应用报头 *
亚太区域中心 origin=00085h、length=00001h /* Application CRC-16 */
HDRSUM origin=00086h、length=00001h /* Header 校验和 */
开始: origin=00087h、length=00002h //应用程序代码开始*/
代码:origin=00089h、length=07F76h//应用程序代码 */

第1页:
regs:origin=0000h、length=005Fh
B2:origin=0060h、length=0020h/* DARAM */
B0:origin=0200h、length=0100h// DARAM 为向量保留!*/
B1:origin=0300h、length=00F0h/* DARAM */
AMP_RAM origin=0800h、length=0100h
RAM origin=0900h、length=06FFh
}

/*指定 SECTIONS */
SECTIONS
{
start :>起始页= 0
fvectors:> VECS 页= 0
.text :>代码页= 0
.cinit :>代码页= 0
.const :>代码页= 0
.data :> RAM page = 1.bss
:> RAM page = 1
.heap :> RAM page = 1.stack
:>B1页=1
小程序:
{
objs\io_CAN.obj (.bss)
} >B2 PAGE = 1

} 


这是尝试对器件进行编程时的错误。 由于器件读回0xFFFF、因此似乎未成功编程。

这是编程期间的日志:

****开始程序代码操作****
确定:闪存算法被载入 DSP 存储器
好的:在 PRG_STOP 设置断点
好的:运行闪存算法
好的:从符号 PRG_bufsize 读取值0x01f4
OK:DSP 暂停
确定:从符号 PRG_STATUS 读取状态值0x0000
OK:PC 设置为 PRG_INIT
好的:运行闪存算法
OK:DSP 暂停
确定:从符号 PRG_STATUS 读取状态值0x0000
好的:PC 设置为 PRG_PROGRAM
好的:运行闪存算法
OK:DSP 暂停
错误:从符号 PRG_STATUS 读取状态值0x0003
程序操作期间闪存算法失败

希望您对如何解决此问题发表意见。

谢谢、
Brian

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

    对 LF240xA 闪存进行编程包括3个不同的步骤:

    clear -->使所有位为0

    擦除-->使所有位为1

    编程-->不会干扰需要为1的位。 翻转需要为0的位。  

    上述顺序极为重要。 也就是说、必须按照所示的顺序完成全部3个步骤来对器件进行编程。

    当您说您能够"擦除"器件时、我假设您说您能够清除擦除器件。 从技术上讲、如果您能够清除擦除器件、您也应该能够对其进行编程。 请尝试以下操作:

    清除器件并验证所有位是否为0。

    擦除器件并验证所有位是否为1。

    不要对应用程序代码进行编程、而是尝试对附加的 address=data 模式进行编程。  

    您似乎正在使用 CCS3.3闪存插件。 您是否可以访问 Spectrum Digital 的其他工具、如 prg2xx?

    e2e.ti.com/.../L32KNoPw.out

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

    您好、Haresh、

    感谢您的快速响应。

    与客户一起测试。 即使是您提供的 L32KNOPW.OUT。 客户无法加载代码:

    我建议客户测试是否可以只擦除和只清除。 事实证明、客户只能擦除器件、但无法清除器件?

    是否会导致器件锁定?

    尚未尝试  prg2xx。

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

    通过检查程序存储器中地址0x0040至0x0043的内容、可以确定器件是否安全。 如果在这些地址处没有读取0xFFFF,则设备是安全的。  

    如果设备只能被擦除,但不能被清除,则闪存可能会被损坏。 您能否在清除后和擦除后提供闪存内容的屏幕截图?

    是否可以在相同的设置下尝试使用已知良好的设备?

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

    Hareesh、

    已建议客户订购一些新器件以进行进一步测试。

    如果有任何新发现、将启动新帖子。

    此致、

    Brian