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.

[参考译文] TMS320F28379D:串行闪存编程器内核2错误

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165157/tms320f28379d-serial-flash-programmer-core-2-error

器件型号:TMS320F28379D
主题中讨论的其他器件:UNIFLASHC2000WARE

您好!

将 Core1和 Core 2的 OUT 文件转换为 txt 格式并运行 serial_flash_programr.exe 后

我成功加载 Core 1、但加载 Core 2时失败-我在地址0x090002处获得验证错误、程序未运行。

当我使用 UNIFLASH 加载输出文件时、地址0x090002没有错误和问题、然后运行的程序正常。  

请告知我如何解决此问题?

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

    您好、Zvi、

    根据 C2000 MCU 的串行闪存编程  文档、 在使用 CCS 加载2个内核时、是否确保对两个内核使用正确的构建设置? 一个设置为 RAM、另一个设置为闪存? 验证错误表示该位置尚未编程(没有预期的数据)、因此它可能位于另一个位置。

    此致、

    查尔斯

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

    您好、Charles、

    我不使用 CCS 加载、我尝试使用串行闪存引导加载程序加载、当它失败时、我使用 UNIFLASH 刻录内核2的原始输出文件。

    两个内核都设置为闪存。 使用 UNIFLASH 刻录后没有问题。

    我们使用 Matlab / Simulink 来生成代码、两个内核的配置方式相同。  

     在引导加载程序失败后、我还使用 UNIFLAH 读取闪存存储器、我可以看到从地址0x090002开始未对8个字节进行编程。

    另一方面、当使用 UNIFLASH 刻录文件时、这8个字节不为空。

    是否有 hex2000不为引导加载程序生成数据?

    此致。

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

    您好、Zvi、

    我看到、Uniflash、而不是 CCS。 立即测试 f28379D。 对于在0x090002丢失的8个字节、也将检查 hex2000实用程序。 尽快报告。

    Zvi、这是否是串行闪存编程器中 hex2000的对齐问题?   对于两个内核、在链接器命令文件中映射到闪存的所有已初始化段、您的文件是否对齐(8)?

    谢谢、

    查尔斯

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

    我们正在使用:

    编译器版本 v18.12.2 LTS (也是来自此版本的 hex2000)

    C2000Ware 2.00.00.02版-用于 Matlab / Simulink 代码生成和 serial_flash_bootloader.exe

    希望此信息能为您提供帮助。

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

    Zvi、

    您能否显示正在发生的错误的图像、或者显示停止 hex2000的错误代码/消息是什么? 是否可以将编译器版本更新为最新版本? 目前为22.6。 我们将研究 C2K 的这个特定版本 。

    谢谢、

    查尔斯

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

    您好、Charles、

    1. 我正在使用 Matlab 提供的链接器命令文件、有 align (4)-我将尝试使用 align (8)
    2. MATLAB 2019b 正在使用此版本的编译器、但我将尝试使用版本22.6

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

    很棒  

    请告诉我发生了哪些变化。

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

    您好、Charles、

    • align (8)-使用此更改进行编译并尝试使用串行引导加载程序后、结果是不同的错误:

    错误状态:program_error

    错误地址:0x220026

    • 无法使用编译器版本22.6、因为程序编译正常、运行不正确


    我不明白为什么在更改为 align (8)后会出现不同的错误、为什么地址是我们没有的 EMIF1_CS2?!

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

    Zvi、

    成功的命令是一个好的、这意味着操作是成功的。 program_error 的错误表示应用文件中有未映射到闪存的段。 错误地址为0x220026、这是奇数。 现在您正在使用 align (8)、您能否尝试查看您的应用程序链接器 cmd 文件以查看是否有任何段映射错误? 器件还有一个存储器映射、其中显示了可用存储器的范围。

    谢谢、

    查尔斯

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

    您好、Charles、

    我认为现在是时候一起查看链接器命令文件了-因为其中没有任何内容表明我们错误地映射了内存:

    #include "MW_F2837xD_MemoryMap.h"
    #ifdef CLA_BLOCK_INCLUDED
    // Define a size for the CLA scratchpad area that will be used
    // by the CLA compiler for local symbols and temps
    // Also force references to the special symbols that mark the
    // scratchpad are. 
    CLA_SCRATCHPAD_SIZE = 0x100;
    --undef_sym=__cla_scratchpad_end
    --undef_sym=__cla_scratchpad_start
    #endif //CLA_BLOCK_INCLUDED
    MEMORY
    {
    PAGE 0 :
       /* BEGIN is used for the "boot to SARAM" bootloader mode   */
       BEGIN           	: origin = 0x000000, length = 0x000002
       BEGIN_FLASH     	: origin = 0x080000, length = 0x000002
       #ifdef CLA_BLOCK_INCLUDED
            RAMLS_PROG      	: origin = 0x008000, length = 0x001800
            RAMLS_CLA_PROG      : origin = 0x00A800, length = 0x000800
       #else
            #if BOOT_FROM_FLASH
                RAMLS_PROG      	: origin = 0x008000, length = 0x002000
            #else
                RAMLS_PROG      	: origin = 0x008000, length = 0x003000
            #endif //BOOT_FROM_FLASH
       #endif //CLA_BLOCK_INCLUDED
       
       #ifdef CPU1       
            #if (CPU1_RAMGS_PROG_LENGTH > 0)
                RAMGS_PROG          : origin = CPU1_RAMGS_PROG_START, length = CPU1_RAMGS_PROG_LENGTH
            #endif //(CPU1_RAMGS_PROG_LENGTH > 0)
       #else
            #if (CPU2_RAMGS_PROG_LENGTH > 0)
                RAMGS_PROG          : origin = CPU2_RAMGS_PROG_START, length = CPU2_RAMGS_PROG_LENGTH
           #endif //(CPU2_RAMGS_PROG_LENGTH > 0)
       #endif //CPU1
    
       RESET           	: origin = 0x3FFFC0, length = 0x000002
       /* Flash sectors */
       #if defined(F28376D) || defined(F28374D)
            FLASHA_N           : origin = 0x080002, length = 0x01FFFE	/* on-chip Flash */ 
       #else
            FLASHA_N           : origin = 0x080002, length = 0x03FFFE	/* on-chip Flash */ 
       #endif //defined(F28376D) || defined(F28374D)
    
    PAGE 1 :
       #ifdef CPU1
           BOOT_RSVD           : origin = 0x000002, length = 0x000120     /* Part of M0, BOOT rom will use this for stack */
       #else
           BOOT_RSVD           : origin = 0x000002, length = 0x00007E     /* Part of M0, BOOT rom will use this for stack */
       #endif //CPU1
    
       #ifdef CPU1
           RAMM0M1           	: origin = 0x000122, length = 0x0006DE
       #else
           RAMM0M1           	: origin = 0x000080, length = 0x000780
       #endif //CPU1
    
       RAMD0D1           	: origin = 0x00B000, length = 0x001000
    
       #ifdef CLA_BLOCK_INCLUDED
            RAMLS_CLA_DATA      : origin = 0x009800, length = 0x001000
       #else
            #if BOOT_FROM_FLASH
                RAMLS_DATA          : origin = 0x00A000, length = 0x001000
            #endif //BOOT_FROM_FLASH
       #endif //CLA_BLOCK_INCLUDED
    
    #ifdef CPU1       
            RAMGS_DATA       : origin = CPU1_RAMGS_DATA_START, length = CPU1_RAMGS_DATA_LENGTH
    #else
            RAMGS_DATA       : origin = CPU2_RAMGS_DATA_START, length = CPU2_RAMGS_DATA_LENGTH
    #endif //CPU1
    
       RAMGS_IPCBuffCPU1   : origin = RAMGS_IPC_CPU1_START, length = RAMGS_IPC_CPU1_LENGTH
       RAMGS_IPCBuffCPU2   : origin = RAMGS_IPC_CPU2_START, length = RAMGS_IPC_CPU2_LENGTH 
    
       CLA1_MSGRAMLOW      : origin = 0x001480, length = 0x000080
       CLA1_MSGRAMHIGH     : origin = 0x001500, length = 0x000080
    
       CPU2TOCPU1RAM       : origin = 0x03F800, length = 0x000400
       CPU1TOCPU2RAM       : origin = 0x03FC00, length = 0x000400
    
    #ifdef EMIF1_CS0_INCLUDED
       EMIF1_CS0_MEMORY    : origin = 0x80000000, length = 0x10000000
    #endif //EMIF1_CS0_INCLUDED
    #ifdef EMIF1_CS2_INCLUDED
       EMIF1_CS2_MEMORY    : origin = 0x00100000, length = 0x00200000
    #endif //EMIF1_CS2_INCLUDED
    #ifdef EMIF1_CS3_INCLUDED
       EMIF1_CS3_MEMORY    : origin = 0x00300000, length = 0x00080000
    #endif //EMIF1_CS3_INCLUDED
    #ifdef EMIF1_CS4_INCLUDED
       EMIF1_CS4_MEMORY    : origin = 0x00380000, length = 0x00060000
    #endif //EMIF1_CS4_INCLUDED
    #ifdef EMIF2_CS0_INCLUDED
       EMIF2_CS0_MEMORY    : origin = 0x90000000, length = 0x10000000
    #endif //EMIF2_CS0_INCLUDED
    #ifdef EMIF2_CS2_INCLUDED
       EMIF2_CS2_MEMORY    : origin = 0x00002000, length = 0x00001000
    #endif //EMIF2_CS2_INCLUDED
    
    }
    
    SECTIONS
    {
    #if BOOT_FROM_FLASH
       /* Allocate program areas: */
       .cinit              : > FLASHA_N      PAGE = 0, ALIGN(8)
       .pinit              : > FLASHA_N,     PAGE = 0, ALIGN(8)
       .text               : > FLASHA_N      PAGE = 0, ALIGN(8)
       codestart           : > BEGIN_FLASH       PAGE = 0, ALIGN(8)
       ramfuncs            : LOAD = FLASHA_N,
                             RUN = RAMLS_PROG,
                             LOAD_START(_RamfuncsLoadStart),
                             LOAD_SIZE(_RamfuncsLoadSize),
                             LOAD_END(_RamfuncsLoadEnd),
                             RUN_START(_RamfuncsRunStart),
                             RUN_SIZE(_RamfuncsRunSize),
                             RUN_END(_RamfuncsRunEnd),
                             PAGE = 0, ALIGN(8)
       /* Initalized sections go in Flash */
       .econst             : > FLASHA_N      PAGE = 0, ALIGN(8)
       .switch             : > FLASHA_N      PAGE = 0, ALIGN(8)
       /* Allocate IQmath areas: */
       IQmath			: > FLASHA_N, PAGE = 0, ALIGN(8)            /* Math Code */
       IQmathTables		: > FLASHA_N, PAGE = 0, ALIGN(8)
       
       #ifdef CLA_BLOCK_INCLUDED
           /* CLA specific sections */
           Cla1Prog         : LOAD = FLASHA_N,
                              RUN = RAMLS_CLA_PROG,
                              LOAD_START(_Cla1funcsLoadStart),
                              LOAD_END(_Cla1funcsLoadEnd),
                              RUN_START(_Cla1funcsRunStart),
                              LOAD_SIZE(_Cla1funcsLoadSize),
                              PAGE = 0, ALIGN(8)
           .ebss            : > RAMGS_DATA ,    PAGE = 1
       #else
           .ebss            : >> RAMGS_DATA | RAMLS_DATA,    PAGE = 1 
       #endif //CLA_BLOCK_INCLUDED
       
    #else
       codestart        : > BEGIN,     PAGE = 0
       ramfuncs         : > RAMLS_PROG      PAGE = 0
       .cinit           : > RAMLS_PROG,   PAGE = 0
       .pinit           : > RAMLS_PROG,     PAGE = 0
       .switch          : > RAMLS_PROG,     PAGE = 0
       .econst          : > RAMLS_PROG,    PAGE = 0
       /* Allocate IQ math areas: */
       IQmath			: > RAMLS_PROG,     PAGE = 0            /* Math Code */
       IQmathTables		: > RAMLS_PROG, PAGE = 0
    
       #ifdef CLA_BLOCK_INCLUDED
           /* CLA specific sections */
           Cla1Prog         : > RAMLS_CLA_PROG, PAGE=0
           .text            : >> RAMLS_PROG | RAMGS_PROG,   PAGE = 0
       #else
           .text            : > RAMLS_PROG,   PAGE = 0
       #endif //CLA_BLOCK_INCLUDED
    
       .ebss            : > RAMGS_DATA ,    PAGE = 1
     #endif //BOOT_FROM_FLASH
    
       .stack           : > RAMM0M1,     PAGE = 1
       .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used, */
       .esysmem         : > RAMD0D1,    PAGE = 1
       .cio             : > RAMLS_PROG, PAGE = 0
    
       #if defined(EMIF1_CS0_INCLUDED) && defined(EMIF2_CS0_INCLUDED)
          .farbss          : > EMIF1_CS0_MEMORY | EMIF2_CS0_MEMORY,      PAGE = 1
          .farconst        : > EMIF1_CS0_MEMORY | EMIF2_CS0_MEMORY,      PAGE = 1
       #elif !defined(EMIF1_CS0_INCLUDED) && defined(EMIF2_CS0_INCLUDED)
          .farbss          : > EMIF2_CS0_MEMORY,      PAGE = 1
          .farconst        : > EMIF2_CS0_MEMORY,      PAGE = 1
       #elif defined(EMIF1_CS0_INCLUDED) && !defined(EMIF2_CS0_INCLUDED)
          .farbss          : > EMIF1_CS0_MEMORY,      PAGE = 1
          .farconst        : > EMIF1_CS0_MEMORY,      PAGE = 1
       #else
          //No EMIF memory sections
       #endif //defined(EMIF1_CS0_INCLUDED) && defined(EMIF2_CS0_INCLUDED)
    
       #ifdef EMIF1_CS0_INCLUDED
          Em1Cs0           : > EMIF1_CS0_MEMORY,      PAGE = 1
       #endif //EMIF1_CS0_INCLUDED
       #ifdef EMIF2_CS0_INCLUDED
           Em2Cs0          : > EMIF2_CS0_MEMORY,      PAGE = 1
       #endif //EMIF2_CS0_INCLUDED
       #ifdef EMIF1_CS2_INCLUDED
           Em1Cs2          : > EMIF1_CS2_MEMORY,      PAGE = 1
       #endif //EMIF1_CS2_INCLUDED
       #ifdef EMIF1_CS3_INCLUDED
           Em1Cs3          : > EMIF1_CS3_MEMORY,      PAGE = 1
       #endif //EMIF1_CS3_INCLUDED
       #ifdef EMIF1_CS4_INCLUDED
           Em1Cs4          : > EMIF1_CS4_MEMORY,      PAGE = 1
       #endif //EMIF1_CS4_INCLUDED
       #ifdef MW_EMIF2_CS2_INCLUDED
           Em2Cs2          : > EMIF2_CS2_MEMORY,      PAGE = 1
       #endif //MW_EMIF2_CS2_INCLUDED
        
       #ifdef CLA_BLOCK_INCLUDED
           /* CLA C compiler sections */
           //
           // Must be allocated to memory the CLA has write access to
           //
           Cla1DataRam0		: > RAMLS_CLA_DATA, PAGE=1
    
           Cla1ToCpuMsgRAM  : > CLA1_MSGRAMLOW,   PAGE = 1
           CpuToCla1MsgRAM  : > CLA1_MSGRAMHIGH,  PAGE = 1
           CLAscratch       :
                             { *.obj(CLAscratch)
                             . += CLA_SCRATCHPAD_SIZE;
                             *.obj(CLAscratch_end) } >  RAMLS_CLA_DATA,  PAGE = 1
    
           .scratchpad      : > RAMLS_CLA_DATA,       PAGE = 1
           .bss_cla		    : > RAMLS_CLA_DATA,       PAGE = 1
           .const_cla	    :  LOAD = FLASHA_N,
                               RUN = RAMLS_CLA_DATA,
                               RUN_START(_Cla1ConstRunStart),
                               LOAD_START(_Cla1ConstLoadStart),
                               LOAD_SIZE(_Cla1ConstLoadSize),
                               PAGE = 1
       #endif //CLA_BLOCK_INCLUDED
    
       #ifdef CPU1  
           /* The following section definitions are required when using the IPC API Drivers */ 
            GROUP : > CPU1TOCPU2RAM, PAGE = 1 
            {
                PUTBUFFER 
                PUTWRITEIDX 
                GETREADIDX 
                WRITEFLAG1CPU1
    	    WRITEFLAG2CPU1
                READFLAG1CPU1
                READFLAG2CPU1
            }
            GROUP : > CPU2TOCPU1RAM, PAGE = 1
            {
                GETBUFFER :    TYPE = DSECT
                GETWRITEIDX :  TYPE = DSECT
                PUTREADIDX :   TYPE = DSECT
                WRITEFLAG1CPU2: TYPE = DSECT
                WRITEFLAG2CPU2: TYPE = DSECT
                READFLAG1CPU2:  TYPE = DSECT
                READFLAG2CPU2:  TYPE = DSECT
            }
    
       #else
           /* The following section definitions are required when using the IPC API Drivers */ 
            GROUP : > CPU2TOCPU1RAM, PAGE = 1 
            {
                PUTBUFFER 
                PUTWRITEIDX 
                GETREADIDX 
                WRITEFLAG1CPU2
                WRITEFLAG2CPU2
                READFLAG1CPU2			
                READFLAG2CPU2			
            }
            GROUP : > CPU1TOCPU2RAM, PAGE = 1
            {
                GETBUFFER :    TYPE = DSECT
                GETWRITEIDX :  TYPE = DSECT
                PUTREADIDX :   TYPE = DSECT
                WRITEFLAG1CPU1: TYPE = DSECT
                WRITEFLAG2CPU1: TYPE = DSECT
                READFLAG1CPU1 : TYPE = DSECT
                READFLAG2CPU1 : TYPE = DSECT
            }
       #endif //CPU1
            GROUP : > RAMGS_IPCBuffCPU1, PAGE = 1 
            {
                CPU1TOCPU2GSRAM
            }
            GROUP : > RAMGS_IPCBuffCPU2, PAGE = 1 
            {
                CPU2TOCPU1GSRAM
            }
    }
    
    /*
    //===========================================================================
    // End of file.
    //===========================================================================
    */
    

    #ifndef MW_F2837xD_MemoryMap_h_
    #define MW_F2837xD_MemoryMap_h_
    
    /* Below defines are used to allocate global shared memory in linker 
     * command file and for assign memory region to specific CPU. 
     * When you need to update global shared memory map, update through 
     * this file instead of linker command file. 
     * Copyright 2021 The MathWorks, Inc.*/
    
    #if (BOOT_FROM_FLASH == 0) && defined(CLA_BLOCK_INCLUDED)
        #if defined(F28376D) || defined(F28374D)
            #define CPU1_RAMGS_PROG_START       0x011000
            #define CPU1_RAMGS_PROG_LENGTH      0x002000
            #define CPU2_RAMGS_PROG_START       0x016000
            #define CPU2_RAMGS_PROG_LENGTH      0x002000
    
            #define CPU1_RAMGS_DATA_START       0x00E000
            #define CPU1_RAMGS_DATA_LENGTH      0x003000
            #define CPU2_RAMGS_DATA_START       0x013000
            #define CPU2_RAMGS_DATA_LENGTH      0x003000
        #else
            #define CPU1_RAMGS_PROG_START       0x013000
            #define CPU1_RAMGS_PROG_LENGTH      0x002000
            #define CPU2_RAMGS_PROG_START       0x01A000
            #define CPU2_RAMGS_PROG_LENGTH      0x002000
    
            #define CPU1_RAMGS_DATA_START       0x00E000
            #define CPU1_RAMGS_DATA_LENGTH      0x005000
            #define CPU2_RAMGS_DATA_START       0x015000
            #define CPU2_RAMGS_DATA_LENGTH      0x005000
        #endif
    #else
        #define CPU1_RAMGS_PROG_START       0x013000
        #define CPU1_RAMGS_PROG_LENGTH      0x000000
        #define CPU2_RAMGS_PROG_START       0x01A000
        #define CPU2_RAMGS_PROG_LENGTH      0x000000
        #if defined(F28376D) || defined(F28374D)
            #define CPU1_RAMGS_DATA_START       0x00E000
            #define CPU1_RAMGS_DATA_LENGTH      0x005000
            #define CPU2_RAMGS_DATA_START       0x013000
            #define CPU2_RAMGS_DATA_LENGTH      0x005000
        #else
            #define CPU1_RAMGS_DATA_START       0x00E000
            #define CPU1_RAMGS_DATA_LENGTH      0x007000
            #define CPU2_RAMGS_DATA_START       0x015000
            #define CPU2_RAMGS_DATA_LENGTH      0x007000
        #endif
    #endif
    #define RAMGS_IPC_CPU1_START       0x0C000
    #define RAMGS_IPC_CPU1_LENGTH      0x001000
    #define RAMGS_IPC_CPU2_START       0x0D000
    #define RAMGS_IPC_CPU2_LENGTH      0x001000
    #endif
    
    

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

    您好、Zvi、

    查看 cmd 文件后、我看到您已将整个闪存扇区 A 至 N 用于闪存、但是正如示例链接器 cmd 文件中的勘误建议所指出的、FLASHN_RSVD 必须受到保护(origin = 0x0BFFF0、length = 0x000010)以避免"内存预取: 超出有效内存"。 是否可以避免为您的应用程序编程此部分、尝试更改使用的部分?

    请告诉我这一点。

    查尔斯  

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

    你好

    请将此勘误表发送给我

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

    Zvi、

    下面是 TMS320F2837xD 勘误表的链接。  有关预取的建议可在第32页找到、也可在示例文件中找到( 器件 LED 示例中讨论 FLASHN_RSVD 的2837xD_FLASH_lnk_CPU1.cmd)。

    谢谢、

    查尔斯

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

    谢谢、我使用的是 F28379D、此勘误表不适用于此器件

    为什么 Core1的闪存正常、而不是 Core2?

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

    Zvi、

    需要更多的时间来查看显示的文件、我已经检查了存储器范围、它们看起来很好。 就勘误表而言、需要就此咨询其他人。 将尽快返回给您。

    谢谢、

    查尔斯

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

    您好、Zvi、

    测试链接器 cmd 文件将尝试重现调试问题。 这可能是编程问题。

    需要注意的是、勘误表也适用于 F28379D 器件。 将看到有关更新应用手册的信息。

    谢谢、此致、

    查尔斯

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

    您好、Charles、

    如果在酷睿2系列编程方面有任何进展、请随时更新我。

    兹维。

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

    您好、Zvi、

    为了取得进展、您可以 在此处还是在消息中发送.out 文件? 我将看到它是否会影响我的器件以及可以执行的操作。

    谢谢、

    查尔斯

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

    您好、Charles、

    我无法向您发送我们公司的 IP。

    请尝试使用其他输出文件对其进行调试

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

    您好、Zvi、

    可以理解。 我将尝试使用不同的.out 文件对其进行调试、并在第二天内返回给您。  

    查尔斯

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

    您好、Zvi、

    查尔斯让我看一下这个帖子。

    快速问题:我注意到下面链接器 cmd 文件中的内容。  您能否检查您的映射文件以查看 您报告的地址0x220026分配的内容?   

    #IF 已定义(EMIF1_CS0_INDED)&&已定义(EMIF2_CS0_INDED)
    .farbss:> EMIF1_CS0_MEMORY | EMIF2_CS0_MEMORY,PAGE = 1.
    farconst:> EMIF1_CS0_MEMORY | EMIF2_CS0_MEMORY,PAGE = 1.
    #elif!defined (EMIF1_CS0_included)& defined (EMIF2_CS0_included)
    .farbss:> EMIF2_CS0_MEMORY,PAGE = 1
    .farconst:> EMIF2_CS0_MEMORY,PAGE = 1
    #elif defed (EMIF1_CS0_INDED)&&!defined (EMIF2_CS0_INDED)
    .farbss:> EMIF1_CS0_MEMORY,PAGE = 1
    .farconst:> EMIF1_CS0_MEMORY,PAGE = 1
    其他
    //无 EMIF 内存段
    #endif //定义(EMIF1_CS0_included)&&定义(EMIF2_CS0_included)

    可能有一些已初始化的内容映射在此处、 因此闪存内核正在尝试对其进行编程(这将失败、因为它不是闪存地址)。

    谢谢、此致、
    Vamsi

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

    您好、Vamsi、

      我刚刚查看了映射文件,没有段:.farbss 和.farconst 。

      我们对内核1使用相同的链接器 cmd 文件,对其进行编程时没有问题。

    此致、Zvi。

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

    您好、Zvi、

    我 目前无法重现此问题。 您是否可以尽快打电话给我们、以便我们一起诊断它?

    谢谢、

    查尔斯