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.

[参考译文] TMS320F280033:文件加载程序:验证失败:地址 0x080000@程序不匹配(预期值:0x0048、Actual:0xFFFF)请验证目标存储器和存储器映射。

Guru**** 2513035 points
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE, TMS320F280039C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1543633/tms320f280033-file-loader-verification-failed-values-at-address-0x080000-program-do-not-match-expected-0x0048-actual-0xffff-please-verify-target-memory-and-memory-map

器件型号:TMS320F280033
主题中讨论的其他器件:SysConfigC2000WARETMS320F280039C

工具/软件:

您好、

我需要为我们的一个项目制定一个测试计划。 我使用工程向导创建了一个新程序、目标 F280033 并选择了与我的目标相对应的示例 empty_project_80pn。 然后、我根据需要编辑了 SysConfig 文件(仅更改了一些 GPIO 默认状态)。

我首先使用 RAM 构建进行编程、然后它就成功了。 但随后,我尝试使用闪存构建对其进行编程,并得到了错误:

File Loader: Verification failed: Values at address 0x080000@Program do not match (expected: 0x0048, actual: 0xFFFF) Please verify target memory and memory map.

SysConfig 配置对于目标是正确的、目标配置文件也是正确的。

但是,当我查看项目属性时,我看到项目被自动配置为错误的目标:

由于某种原因、我无法更改此值。 我尝试直接编辑.cproject 文件、但它恢复为原始设置。

如何解决此问题?

我有点担心、因为该工程的实际(非测试)代码是首先为 LaunchPad 开发的、并且也必须迁移到 F280033 目标器件、我担心会遇到相同的问题。

提前感谢您的帮助、

此致、

Adrien

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

    尊敬的 Adrien:

    感谢您提请我们注意这一点。 您能否帮助提供您所使用的 C2000Ware 版本、CCS 版本和 SysConfig 版本(在 CCS 安装路径> CCS > utils 中)、以便我可以更仔细地查看此问题?

    [quote userid=“455399" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1543633/tms320f280033-file-loader-verification-failed-values-at-address-0x080000-program-do-not-match-expected-0x0048-actual-0xffff-please-verify-target-memory-and-memory-map 通过目标 F280033 和选定示例 empty_project_80pn

    您在哪里看到了这个示例?

    最棒的餐厅

    Marlyn

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

    尊敬的 Marilyn:

    I use

    • CCS 版本:20.2.0.12__1.8.0
    • SysConfig 1.23.0 或 1.24.0(均已安装)
    • C2000Ware 5_05_00_00(我在其中找到示例)

    创建项目后、在项目属性中:

    点击“TMS320F280039C"框“框中的箭头根本不会执行任何操作。

    话虽如此、我甚至不确定这是问题...

    此致、

    Adrien

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

    尊敬的 Adrien:

    感谢您分享更多信息。 我们正在研究这个问题。 我希望能够在本周结束前提供更多的细节。

    此致、

    Marlyn

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

    尊敬的 Adrien:

    在工程属性的依赖项中、您是否可以将 SysConfig 添加到依赖项列表中? 您应该可以选择 CCS 版本。 我们在 SysConfig 版本 1.24 中添加了对 F280033 的支持、因此您至少需要工程中的该版本才能检测 F280033。

    此致、
    Marlyn

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

    尊敬的 Marlyn:

    我强制将 SysConfig 的工程属性中的版本 1.24。

    我仍然无法更改器件/ F280033 的型号、它卡在 F280039C 上。 误差仍然存在。

    不过、SysConfig 似乎配置正确。

    有什么想法发生了什么?

    提前感谢、

    此致、

    Adrien

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

    尊敬的 Adrien:

    该专家目前已离职、将  在下周返回时与您联系。

    谢谢您、

    Aj Favela.  

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

    尊敬的 Adrien:

    您是否还重建了工程?

    此致、

    Marlyn

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

    尊敬的 Marlyn:

    我的鸡巴在裤裆里跳动,不停地跳动,不停地在裤裆里跳动。

    如我在上一篇文章(7 月 29 日)中所述、我使用 SysConfig 1.24 重新构建工程、错误仍然存在。 我在等待你方面的更多建议。

    此致、

    Adrien

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

    尊敬的 Adrien:

    别担心,希望你有一个好的休息。

    您可以删除该工程并重试吗? 当我尝试它在我的身边,我没有得到任何错误。

    我还会将此问题重新分配给 CCS 团队的某个人、以便他们可以更深入地了解 SysConfig 版本。  

    此致、

    Marlyn

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

    尊敬的 Marlyn:

    CCS 获得了更新、我删除了工程并使用新工具链 (C2000Ware 6.0) 创建了一个新工程。 不幸的是,问题仍然是一样的:

    进入工程属性后、变体仍滞留在 F280039C 上、而不是 F280033

    我会的 新 LPWAN 标准 需要将一些代码移交给硬件团队、并且需要从闪存工作(他们不会为每次测试对 MCU 进行重新编程!)。 我真的需要能够编程这些微控制器!

    提前感谢、

    此致、

    Adrien

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

    您好 Adrien、

    当我进入工程属性时、变体仍滞留在 F280039C 上、而不是 F280033

    我需要确认这一点、但我认为器件型号中显示的器件不会更新以显示对 SysConfig 工程所做的更改。 在 SysConfig 文件中为器件配置的内容应该是此处的相关内容、以及 SysConfig 生成的依赖文件。  

    我将重点说明数据验证错误。 链接器命令文件中的信息与调试器存储器映射之间似乎存在不匹配。 您能否确认它们是否正确对齐?

    谢谢

    Ki

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

    您好、Ki、

    我在哪里可以找到调试器内存映射,请? 我不确定您要参考的内容。

    提前感谢、

    Adrien

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在哪里可以找到调试器内存映射、请告诉我们? 我不确定您要参考的内容。

    请参阅: https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_debug-main.html#memory-map-view

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

    尊敬的 Ki:

    该文档指出“连接到目标后、您可以在 Code Composer Studio 中查看存储器映射“。 但是、我无法在调试模式下连接到目标、因为它在之前的程序加载阶段停止。

    此致、

    Adrien

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但是、我无法在调试模式下连接到目标、因为它在程序加载阶段之前会停止。

    您可以执行“手动启动“以启动调试会话并在不加载程序的情况下连接到目标:

    https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_debug-main.html#manual-launch

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

    尊敬的 Ki:

    我已经尝试按照无工程调试的过程进行操作。 我启动了无工程调试、连接了目标。 记忆图显示...没有太多。 然后我尝试加载代码、再次失败。

    除了我的同事很快就会被卡住之外、我的客户已经宣布他将于下周访问我们的实验室、在实验室中进行一些测试。 我真的需要解决这个问题。

    提前感谢您的帮助、

    此致、

    Adrien

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

    看起来存储器映射未启用(所有内容都设置为 RAM)、因此调试器本身不会阻止访问。

    您是否使用 f280033.gel 启动文件? 无论如何、对于 f280033.gel 和 f280039.gel、都具有位于 0x80000 的闪存组 0。 失败的说法是您加载了程序、程序预计在验证步骤中将 0x48 写入 0x80000、但没有看到该值。

    我尝试了从 C2000Ware 加载相同的示例。 但是、我使用了 F280039C 并使用了类似的环境、为 F28033 设置了目标配置。 在任何情况下、程序加载/闪存都是成功的、您都可以看到 0x48 最终被写入地址 0x8000(请注意,“Program"和“和“Data"页面“页面都页面都映射到同一个存储器位置)。 加载程序时没有看到这种情况吗?

    e2e.ti.com/.../280033_5F00_flash2.mp4

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

    尊敬的 Adrien 和 Ki:

    我今天能够在 80 引脚 F280033 器件上尝试这种方法。 我也看到了相同的验证错误。 我将目标配置更改为 F280033、该工程还使用  f280033.gel 文件、并修改了 cmd 文件以删除 F280033 型号无法访问的所有闪存组(因为它的闪存比 F280039 及其他型号少)。 但我仍然看到问题。 我需要进一步调试。 将在明天提供更新。

    此致、

    Marlyn

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

    您好、Ki 和 Marlyn、

    下面是我正在做的事情的记录。 有什么问题吗? 如果是、我看不到。

    它使用 teh f280033.gel 文件。 我尝试在 ccxml 中更改 GEL 文件的路径、以使用绝对路径(以防相对路径有问题)、但结果是相同的。

    e2e.ti.com/.../Enregistrement-de-l_2700E900_cran-2025_2D00_08_2D00_29-121255.mp4

    这有什么用吗?

    此致、

    Adrien

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我今天可以在 80 引脚 F280033 器件上试用该器件。 我也看到相同的验证错误。

    感谢您尝试! 我使用的最接近的器件是 F280039C controlCARD、看起来可以。  

    Adrien — 我将推迟到 Marlyn 这里。 我没有器件专业知识(或器件本身)需要进一步研究。

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

    尊敬的 Adrien:

    您能否将闪存 cmd 文件中的内容替换为以下版本?

    MEMORY
    {
       //BEGIN            : origin = 0x00080000, length = 0x00000002
       BEGIN : origin = 0x088000, length = 0x000002
       BOOT_RSVD        : origin = 0x00000002, length = 0x00000126
    
       RAMM0            : origin = 0x00000128, length = 0x000002D8
       RAMM1            : origin = 0x00000400, length = 0x000003F8
       // RAMM1_RSVD       : origin = 0x000007F8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
       RAMLS0           : origin = 0x00008000, length = 0x00000800
       RAMLS1           : origin = 0x00008800, length = 0x00000800
       RAMLS2           : origin = 0x00009000, length = 0x00000800
       RAMLS3           : origin = 0x00009800, length = 0x00000800
       RAMLS4           : origin = 0x0000A000, length = 0x00000800
       RAMLS5           : origin = 0x0000A800, length = 0x00000800
       RAMLS6           : origin = 0x0000B000, length = 0x00000800
       RAMLS7           : origin = 0x0000B800, length = 0x00000800
    
       RAMGS0           : origin = 0x0000C000, length = 0x00001000
       RAMGS1           : origin = 0x0000D000, length = 0x00001000
       RAMGS2           : origin = 0x0000E000, length = 0x00001000
       RAMGS3           : origin = 0x0000F000, length = 0x00000FF8
       // RAMGS3_RSVD      : origin = 0x0000FFF8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
       BOOTROM          : origin = 0x003F8000, length = 0x00007FC0
       SECURE_ROM       : origin = 0x003F2000, length = 0x00006000
    
       RESET            : origin = 0x003FFFC0, length = 0x00000002
    
       /* Flash sectors */
       /* BANK 0 */
       //FLASH_BANK0_SEC0  : origin = 0x080002, length = 0x000FFE
       //FLASH_BANK0_SEC1  : origin = 0x081000, length = 0x001000
       //FLASH_BANK0_SEC2  : origin = 0x082000, length = 0x001000
       //FLASH_BANK0_SEC3  : origin = 0x083000, length = 0x001000
       //FLASH_BANK0_SEC4  : origin = 0x084000, length = 0x001000
       //FLASH_BANK0_SEC5  : origin = 0x085000, length = 0x001000
       //FLASH_BANK0_SEC6  : origin = 0x086000, length = 0x001000
       //FLASH_BANK0_SEC7  : origin = 0x087000, length = 0x001000
       
       
       //FLASH_BANK0_SEC8  : origin = 0x088000, length = 0x001000
       FLASH_BANK0_SEC8 : origin = 0x088002, length = 0x000FFE
       FLASH_BANK0_SEC9  : origin = 0x089000, length = 0x001000
       FLASH_BANK0_SEC10 : origin = 0x08A000, length = 0x001000
       FLASH_BANK0_SEC11 : origin = 0x08B000, length = 0x001000
       FLASH_BANK0_SEC12 : origin = 0x08C000, length = 0x001000
       FLASH_BANK0_SEC13 : origin = 0x08D000, length = 0x001000
       FLASH_BANK0_SEC14 : origin = 0x08E000, length = 0x001000
       FLASH_BANK0_SEC15 : origin = 0x08F000, length = 0x001000
    
       /* BANK 1 */
       FLASH_BANK1_SEC0  : origin = 0x090000, length = 0x001000
       FLASH_BANK1_SEC1  : origin = 0x091000, length = 0x001000
       FLASH_BANK1_SEC2  : origin = 0x092000, length = 0x001000
       FLASH_BANK1_SEC3  : origin = 0x093000, length = 0x001000
       FLASH_BANK1_SEC4  : origin = 0x094000, length = 0x001000
       FLASH_BANK1_SEC5  : origin = 0x095000, length = 0x001000
       FLASH_BANK1_SEC6  : origin = 0x096000, length = 0x001000
       FLASH_BANK1_SEC7  : origin = 0x097000, length = 0x001000
       //FLASH_BANK1_SEC8  : origin = 0x098000, length = 0x001000
       //FLASH_BANK1_SEC9  : origin = 0x099000, length = 0x001000
       //FLASH_BANK1_SEC10 : origin = 0x09A000, length = 0x001000
       //FLASH_BANK1_SEC11 : origin = 0x09B000, length = 0x001000
       //FLASH_BANK1_SEC12 : origin = 0x09C000, length = 0x001000
       //FLASH_BANK1_SEC13 : origin = 0x09D000, length = 0x001000
       //FLASH_BANK1_SEC14 : origin = 0x09E000, length = 0x001000
       //FLASH_BANK1_SEC15 : origin = 0x09F000, length = 0x001000
    
      /* BANK 2 */
       //FLASH_BANK2_SEC0  : origin = 0x0A0000, length = 0x001000
       //FLASH_BANK2_SEC1  : origin = 0x0A1000, length = 0x001000
       //FLASH_BANK2_SEC2  : origin = 0x0A2000, length = 0x001000
       //FLASH_BANK2_SEC3  : origin = 0x0A3000, length = 0x001000
       //FLASH_BANK2_SEC4  : origin = 0x0A4000, length = 0x001000
       //FLASH_BANK2_SEC5  : origin = 0x0A5000, length = 0x001000
       //FLASH_BANK2_SEC6  : origin = 0x0A6000, length = 0x001000
       //FLASH_BANK2_SEC7  : origin = 0x0A7000, length = 0x001000
       //FLASH_BANK2_SEC8  : origin = 0x0A8000, length = 0x001000
       //FLASH_BANK2_SEC9  : origin = 0x0A9000, length = 0x001000
       //FLASH_BANK2_SEC10 : origin = 0x0AA000, length = 0x001000
       //FLASH_BANK2_SEC11 : origin = 0x0AB000, length = 0x001000
       //FLASH_BANK2_SEC12 : origin = 0x0AC000, length = 0x001000
       //FLASH_BANK2_SEC13 : origin = 0x0AD000, length = 0x001000
       //FLASH_BANK2_SEC14 : origin = 0x0AE000, length = 0x001000
       //FLASH_BANK2_SEC15 : origin = 0x0AF000, length = 0x000FF0
    
    // FLASH_BANK0_SEC15_RSVD     : origin = 0x0AFFF0, length = 0x000010  /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
    }
    
    
    SECTIONS
    {
       codestart        : > BEGIN, ALIGN(8)
       .text            : >> FLASH_BANK1_SEC2 | FLASH_BANK1_SEC3 | FLASH_BANK1_SEC4,   ALIGN(8)
       .cinit           : > FLASH_BANK1_SEC1,  ALIGN(8)
       .switch          : > FLASH_BANK1_SEC1,  ALIGN(8)
       .reset           : > RESET,                  TYPE = DSECT /* not used, */
    
       .stack           : > RAMM1
    
    #if defined(__TI_EABI__)
       .init_array      : > FLASH_BANK1_SEC1,  ALIGN(8)
       .bss             : > RAMLS5
       .bss:output      : > RAMLS3
       .bss:cio         : > RAMLS0
       .data            : > RAMLS5
       .sysmem          : > RAMLS5
       .const           : > FLASH_BANK1_SEC4,  ALIGN(8)
    #else
       .pinit           : > FLASH_BANK1_SEC1,  ALIGN(8)
       .ebss            : > RAMLS5
       .esysmem         : > RAMLS5
       .cio             : > RAMLS0
       .econst          : > FLASH_BANK1_SEC4,  ALIGN(8)
    #endif
    
        ramgs0 : > RAMGS0
        ramgs1 : > RAMGS0
    
        /*  Allocate IQ math areas: */
       IQmath           : > FLASH_BANK1_SEC1, ALIGN(8)
       IQmathTables     : > FLASH_BANK1_SEC2, ALIGN(8)
    
       .TI.ramfunc      : LOAD = FLASH_BANK1_SEC1,
                          RUN = RAMLS0,
                          LOAD_START(RamfuncsLoadStart),
                          LOAD_SIZE(RamfuncsLoadSize),
                          LOAD_END(RamfuncsLoadEnd),
                          RUN_START(RamfuncsRunStart),
                          RUN_SIZE(RamfuncsRunSize),
                          RUN_END(RamfuncsRunEnd),
                          ALIGN(8)
    
    }
    

    此致、

    Marlyn

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

    尊敬的 Marlyn:

    非常感谢!

    我使用这个新的 cmd 文件顺利地加载了代码。 我还没有检查代码是否“能够承受“微控制器重启、但我认为没有理由这么做。

    只是出于好奇,你能给我一点解释一下你在这个命令文件中做了什么吗?

    非常感谢您的帮助!

    此致、

    Adrien

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

    尊敬的 Adrien:

    好的、我很高兴这能为您效劳。  

    F280033x 型号的存储器比其他 F28003x 型号少、因此我注释掉了此器件没有的任何闪存组(例如闪存组 0 扇区 0-7)。 您可以在数据表的“闪存存储器映射“部分中查看存储器配置的完整概述。

    我还将起始地址从 0x00080000 更改为 0x088000、因为 F280033 没有存储体 0 扇区 0 访问权限、所以它仅从存储体 0 扇区 8 开始。

    最后、我修改了 cmd 文件的 SECTIONS 部分中的内存区域分配。 大多数指向闪存的位置都指向闪存组 0 中 F280033 没有的扇区。 我将所有内容从闪存组 0 更改为闪存组 1、因为 F280033 具有闪存组 1 扇区 0-7。 但是、您可以将其更改为 F280033 器件具有的任何存储体和扇区。  

    我希望这能解释所有的变化。 如果您遇到任何其他问题、请告诉我。 祝您的发展顺利!

    此致、

    Marlyn