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闪存的内容复制到有故障的闪存中

Guru**** 2390735 points
Other Parts Discussed in Thread: TMS320LF2407A

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/617156/need-to-copy-the-content-of-a-good-tms320lf2407a-flash-to-a-faulty-one

主题中讨论的其他部件:TMS320LF2407A

您好,

我有同样的问题,希望有人能帮助我解决。

我正在使用3.3 和XDS510 JTAG适配器。

我需要将良好的TMS320LF2407A闪存的内容复制到有故障的闪存中。 我已经阅读了一个好的文件,并且有两种类型的文件,(COFF).out和(hex),dat.

无法使用“片上闪存编程器”和TMS320LF24XX闪存编程器来闪存.out文件。 我一直有"文件未链接"错误。 我看到了David发布的解决方案,但我不知道怎么做,因为我对CCS了解甚少。 是否有人能帮助我逐步完成该流程?

我一直在努力,但我对流程有一些疑问。

"然后,您可以创建一个CCS项目并将此数据放入项目中。 我会把它变成一个个体和小型个体的项目。" ---我如何使它成为一个仅用于ASM的项目? CSS将其添加到"文档"文件夹中,对吗?

"然后打开.dat文件并删除第一行(第一行是唯一的,在它下面,您将看到闪存中的数据值一行接一行)。 然后在文件中添加.data指令作为第一行(确保该指令不从第1列开始)”---完成了,只是一个Tab就可以完成吗? 我们不希望它与十六进制数据对齐吗?

"这会将所有闪存数据放入项目中的.data部分。" ———我怎么能看到它呢? 也许只是在链接所有内容后才会进入数据部分?

"为项目创建链接程序.cmd文件并将.data部分链接到地址0x0000"--这对我来说是最困难的部分。 我能做到吗? 是否必须创建.cmd文件并将其添加到项目中,以便在生成该文件时使用该.cmd文件来执行此工作?  该如何编写? 我尝试修改一些exemple .cmd文件,但没有成功。 有人可以发布一个简单的工作.cmd链接程序文件来完成此工作吗?

在构建项目之前,我是否还需要在项目中设置其他内容?

提前感谢任何能帮助我的人。

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

    我将您的主题从这个主题中分离出来: e2e.ti.com/.../46.8297万 ,并指派了C2000团队的人员来帮助您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Marco,当我按下"提交"时,论坛将把我的要点弄混在下面,对此造成的不便,我深表歉意。

    _________________________________

    Marco,

    与我的同事交谈时,在使用CCS3时,这个问题经常出现。

    您的解决方法已步入正轨。

    1. 将您拥有的.dat文件作为"部分"包含在ASM文件中
    1. 您已正确删除了第一行,它只是指示它在内存中的位置。然后,您创建的部分可以用链接程序命令文件放置到内存中
    2. 我不能为您提供一个"开钥匙"的解决方案,但创建起来应该非常简单。
    • 在内存中创建一个足够大的区域,以容纳您在步骤1中创建的分区。
    1. 内存
      {   第 0页:    FlashMemory: Origin = 0000h,length = 005Fh  /*要 放置.dat的内存位置*/
    • 将该部分插入您创建的区域。
      1. SectionName :{}> FlashMemory    第0页    /*将包含.dat的部分放入 内存 */

     上面的代码行显示 了代码的外观示例,您需要调整起始地址和长度以适应您的代码。

    希望它能有所帮助。
    科迪

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

    感谢Cody的帮助,没有出现混淆的要点问题。 我今天只能看到您的答案,因为我目前正在度假。 我现在正在尝试在家里重现我的问题并解决它。 很遗憾,到目前为止没有成功。 我真的很抱歉,但正如我在第一个帮助请求中所提到的,我几乎不知道日常工作对您有什么帮助。 也许我们可以通过步骤做到这一点。 你的第一点对我来说是很模糊的。 如何将.dat文件作为“sections”(部分)包含在ASM文件中? 该ASM文件应该如何? 它的扩展名应该是.a或.s并进入"源"文件夹, 对吗?
    我的.dat文件包含完整的32k芯片闪存,这只是为了给你更多的信息。 我认为我的链接程序.cmd代码应该具有origin=0000h和lengge=8000h (整闪)。 如果您可以上传一个完整的32k空文件(空的我是指填充了00或FF)可刷新的.out文件(使用刷新实用程序),我可以用十六进制编辑器将32k ff替换为我的代码,这对您和我来说可能会更容易一些? 对于我看到的.out文件中没有包含字节数的校验和信息,只需开始.data部分的地址及其扩展名。
    等待您的回复,
    此致,Marco。

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

    Marco,

     我在下面列出了几个示例,希望能让您入门...这些示例不是有效的示例,需要进行编辑以符合您的目的。 我从未编译过它们,因此可能会有一些语法错误,但它们应该非常接近您需要的内容! 创建以下文件后,您应该能够构建项目并创建可用于对设备进行编程的.out文件。

    要在ASM中创建一个部分,您需要创建一个与以下内容类似的汇编文件(例如sample.asm)。

    ; Sample.asm	
    	.sect "flash_section"
    		.uword 0.008万h,0.004万h,0.002万h,0.001万h;格式化为word
    	.end的客户.dat文件 

    创建该部分后,您需要使用与以下内容类似的命令文件(例如sample.cmd)

    /*
    //文件:	sample.cmd
    
    */
    
    
    memory
    {
    page 0:/* Program Memory */
    /*内存(RAM/FLASE/OTP)块可移至Page1以进行数据分配*/
    
    
    FLASH_Memory :原点= 0x00xxxxxxx,长度= 0x00xxxx /*片上闪存*/
    
    
    第1页:/*数据存储器*/
    /*内存(RAM/FLASE/OTP)块可以移动到PAGE0以进行程序分配*/
    /*寄存器保留在Page1上 */
    
    
    RAM :原点= 0x00xxxx,长度= 0x00xxxx /*片上RAM块L1 */
    
    }
    
    
    
    节
    {/*
    
    分配程序区域:*/
    
    FLASH_SECREE :> FLASH_Memory 页面=0
    
    }
    
    
    

    希望它有所帮助,
    科迪

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

    您好,Cody:

    非常感谢您的示例代码。 我对它们进行了调整以符合我的目的,我认为我做到了。 我只想做一个笔记,也许会帮助处于相同情况的任何人。 编译器无法识别.utword指令,因此我使用了.word指令。 在构建选项期间,我仍然有一条警告消息,说“WARNING:entry point symbol _c_int0 undefined”,我应该关心它,或者只是正常的,因为我的“唯一ASM项目”? 不管怎样,我现在有一个.out闪存代码,一旦我回到工作岗位,我就会尝试在我的芯片上闪存。 希望它能起作用。 我将此主题留待讨论,以便在出现问题时,我会向您寻求更多帮助,并为您提供所有详细信息。 有消息后,我会立即在这里更新。

    再次感谢,

    Marco。

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

    很高兴听到您取得成功。

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

    您好,Cody。
    现在我又回到工作岗位,我可以确认一切都按预期工作,并且我可以对我的TMS320LF2407A闪存进行编程,而不会出现3.3 “片上闪存编程器”中的错误。
    非常感谢你的帮助。

    此致,

    Marco。