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.

[参考译文] TMS320F2810:TMS320F2810闪存错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/986636/tms320f2810-tms320f2810-flash-error

器件型号:TMS320F2810

我在现场有一个 TMS320F2810器件。 我们使用另一个微控制器通过 UART 将数据传输到 TMS320F2810进行了现场升级。 它完成升级、然后重新启动。 新应用程序启动后、我们看到发送给我们的消息很少、但稍后我们发现器件完全无法正常工作。 当我们让器件检查时、我们连接了 JTAG 并看到闪存中的几个数据段丢失。 此外、0x3E8000内的.boot 段丢失、因此器件不会在该段之后启动。 我们无法确定导致此部分数据丢失的原因。 我们也感到困惑的是、为什么它在升级后启动、并将几条消息发送回、然后停止工作。 是否有任何闪存内容可以被擦除的想法?

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

    您好!

    [引用 userid="314821" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/986636/tms320f2810-tms320f2810-flash-error 时]当我们让器件检查连接 JTAG 时、发现闪存中的几个数据段丢失。 [/报价]

    当您说段缺失时、您意味着它们处于擦除状态(即存储器读取0xFFFF)? 缺失数据的"部分"是否与器件数据表中定义的闪存扇区相匹配? 请注意、闪存 API 擦除函数将擦除整个扇区、这就是我提出要求的原因。

    F281x 闪存 API 库是否存储在器件上?

    最棒的

    Kevin

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

    尊敬的 Kevin:

    缺少段我意味着它们处于擦除状态(0xFFFF)我们在编译中检查了每个扇区和.map 文件以比较数据。 从0x3e8000开始、整个.boot 段为0xFFFF。  出现 codestart.asm 的0x003f7ff6具有0xFFFF。 只有 .text 段只有0x740个位置填充数据、其余位置为0xFFFF。

    闪存库位于 *** 中、以确保闪存从 RAM 运行。

    最大的问题是、升级后、它开始执行几个函数以发回消息、然后在某个时间后失败。 在多次硬复位之后、它没有启动、因此我们使用硬件并使用 JTAG 进行检查、并看到这些已擦除的部分。 我们不知道它是如何被擦除的。

    在应用程序运行时、指向 *** 的 PC 是否有可能启动另一个升级?

    谢谢、此致、

    Aviinaash S

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

    您好 Aviinaash。

    现在很难说出到底发生了什么。

    复位后、下面哪些闪存扇区 A 至 E 处于完全擦除状态(全部为0xFFFF)? 您还可以检查从0x3F7FF8开始的密码值吗?

    最棒的

    Kevin

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

    尊敬的 Kevin:

    我们当前未使用 CSM、这些位置默认为0xFFFF。 即使是带有 codestartbranch.asm 的0x3F7FF6的位置也会填充0xFFFF。

    扇区 C 中来自位置0x003F8046的数据很少、而在从0x3E8080开始的 Sectore E 中、数据最多为0x740位置的数据全部为0xFFFF。

    我们仍然无法确定、 如果升级过程中出现问题、我希望升级模块不会出现问题。 但在这种情况下、升级后它确实重新启动、我们能够在发送的消息中看到正确的升级版本号。 但是5分钟后没有更多消息、当我们检查硬件时、内存的大部分已被擦除。

    谢谢、此致、

    Aviinaash S

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

    Aviinaash、

    我将在本主题中接管 Kevin 的工作。  我从上面假设这是一个来自您现场的隔离式返回(即没有其他器件显示此结果)、但需要确保。

    虽然不是正常行为、器件本来可以调用闪存 API 擦除函数、这将导致上述结果。  再说一次、除非器件的行为不符合规格、否则通常不会发生这种情况。

    在下载新映像后是否检查代码以验证代码是否正确、然后重新编程闪存。  我这里的意思是、通过升级过程、我们知道在闪存内容开始擦除之前、闪存内容是好的?

    当您看到代码段转至0xFFFF 时、您能评论它是整个扇区为0xFFFF 还是一部分。

    最棒的

    Matthew