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.

[参考译文] TMS570LS3137:闪存 API 问题

Guru**** 2578945 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1078623/tms570ls3137-flash-api-issue

部件号:TMS570LS3137

您好,

使用 F021闪存 API 通过 CAN 接口升级应用程序时遇到问题。

#10008-D 找不到文件“.\SOURCE \BL_FLASH.obj”
#10008-D 找不到文件“.\SOURCE \Fapi_UserDefinedFuncions.obj”
链接期间遇到#10010错误;未构建“LabOSat -02_Engine.out”
a href="file:/C:/ti/Cccs1031/cs/tools/compiler/dMED/HTML/10234.html">#10234-D</A> 未解析的符号仍然存在
gmake:***[所有]错误2.
gmake [1]:***[LabOSat -02_Engine.Out ]错误1
未解析的符号 UpdateerCAN,首先在./source/sys_main.obj 中引用

如何解决此问题?

谢谢,此致,

莱安德罗

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

    你好, 莱安德罗,

     UpdateerCAN()函数在 bl_can.h 中声明,并在 BL_CAN.C.中定义

    您能否检查这两个文件是否仍在您的项目中?

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

    QJ 您好,

    感谢您的回答。 我检查了它,它是在 BL_dcan.c.中定义的  我的项目结构中没有包括 BL_dcan。

    然后我可以编译我的代码。

    现在,我可以刷新 MCU,但它会一直复位。 我认为它 与 BL_LINK_cmd 有关。

    * Copyright (C) 2013-2019 Texas Instruments Incorporated - http://www.ti.com/
     *
     *
     *  Redistribution and use in source and binary forms, with or without
     *  modification, are permitted provided that the following conditions
     *  are met:
     *
     *    Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     *    Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the
     *    distribution.
     *
     *    Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    /*                                                                            */
    /*----------------------------------------------------------------------------*/
    /* USER CODE BEGIN (0) */
    /* USER CODE END */
    
    
    /*----------------------------------------------------------------------------*/
    /* Linker Settings                                                            */
    --retain="*(.intvecs)"
    
    /* USER CODE BEGIN (1) */
    /* USER CODE END */
    
    /*----------------------------------------------------------------------------*/
    /* Memory Map                                                                 */
    
    MEMORY
    {
    
        VECTORS (X)  : origin=0x00000000 length=0x00000020	vfill = 0xffffffff
        FLASH0  (RX) : origin=0x00000020 length=0x0017FFE0	vfill = 0xffffffff
        FLASH1  (RX) : origin=0x00180000 length=0x00180000	vfill = 0xffffffff
        SRAM  (RW) : origin=0x08002000 length=0x00002000
        STACK   (RW) : origin=0x08004000 length=0x00002000
    
    
    
    
     //   VECTORS    (X)   : origin=0x00000000 length=0x00000020    vfill = 0xffffffff
     //   FLASH0     (RX)  : origin=0x00000020 length=0x00010000    vfill = 0xffffffff
     //   FLASH1     (RX)  : origin=0x00010020 length=0x07FF1FE0    vfill = 0xffffffff
     //   SRAM       (RWX)  : origin=0x08002000 length=0x00002000
      //  STACK      (RW)  : origin=0x08004000 length=0x00002000
    
    /* USER CODE BEGIN (2) */
    #if 1
        ECC_VEC  (R) : origin=(0xf0400000 + (start(VECTORS) >> 3))
                       length=(size(VECTORS) >> 3)
                       ECC={algorithm=algoL2R5F021, input_range=VECTORS}
    
        ECC_FLA0 (R) : origin=(0xf0400000 + (start(FLASH0)  >> 3))
                       length=(size(FLASH0)  >> 3)
                       ECC={algorithm=algoL2R5F021, input_range=FLASH0 }
    
        ECC_FLA1 (R) : origin=(0xf0400000 + (start(FLASH1)  >> 3))
                       length=(size(FLASH1)  >> 3)
                       ECC={algorithm=algoL2R5F021, input_range=FLASH1 }
    #endif
    /* USER CODE END */
    
    }
    
    /* USER CODE BEGIN (3) */
    ECC
    {
        algoL2R5F021 : address_mask = 0xfffffff8 /* Address Bits 31:3 */
                       hamming_mask = R4         /* Use R4/R5 build in Mask */
                       parity_mask  = 0x0c       /* Set which ECC bits are Even and Odd parity */
                       mirroring    = F021       /* RM57Lx and TMS570LCx are build in F021 */
    }
    /* USER CODE END */
    
    
    /*----------------------------------------------------------------------------*/
    /* Section Configuration                                                      */
    
    SECTIONS
    {
       .intvecs : {} > VECTORS
    
    
       flashAPI:
       {
         .\source\Fapi_UserDefinedFunctions.obj (.text)
         .\source\bl_flash.obj (.text)
         //--library= "c:\ti\Hercules\F021 Flash API\02.01.01\F021_API_CortexR4_BE_V3D16.lib"  (.text)
         --library="F021_API_CortexR4_BE_V3D16.lib"  (.text)
       } palign=8 load = FLASH0, run = SRAM, LOAD_START(apiLoadStart), RUN_START(apiRunStart), SIZE(apiLoadSize)
    
       .text  : {} > FLASH0 /*Initialized executable code and constants*/
       .const : {} load=FLASH0, run = SRAM, LOAD_START(constLoadStart), RUN_START(constRunStart), SIZE(constLoadSize)
    
    //  ; .cinit : {} > FLASH0 /*Initialized global and static variables*/
    // ;  .pinit : {} > FLASH0
    // ;  .data  : {} > SRAM
    //  ; .bss   : {} > SRAM   /*Uninitialized Global and static variables */
    //  ; .sysmem  : {} > SRAM
    
    
    //  ;  .intvecs : {} > VECTORS
    //   ; .text    : {} > FLASH0 | FLASH1
    //    ;.const   : {} > FLASH0 | FLASH1
    
        .cinit   : {} > FLASH0 | FLASH1
        .pinit   : {} > FLASH0 | FLASH1
        .bss     : {} > SRAM
        .data    : {} > SRAM
    	.sysmem  : {} > SRAM
    /* USER CODE BEGIN (4) */
    /* USER CODE END */
    }
    
    /* USER CODE BEGIN (5) */
    /* USER CODE END */
    
    
    /*----------------------------------------------------------------------------*/
    /* Misc                                                                       */
    
    /* USER CODE BEGIN (6) */
    /* USER CODE END */
    /*----------------------------------------------------------------------------*/

    此致,

    莱安德罗

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

    您好,

    另一个有用的线索:

    我发现,每次 MCU 被 RTI 中断时,它都会自动重置。

    非常感谢您的问候,

    莱安德罗

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

    您是否解决了问题?

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

    QJ 您好,

    很抱歉耽误你的时间。

    我解决了。 我评论了以下行,并将其汇编:

    .const : {} load=FLASH0, run = SRAM, LOAD_START(constLoadStart), RUN_START(constRunStart), SIZE(constLoadSize)

    谢谢,此致,

    莱安德罗

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

    很高兴知道您已经解决了这个问题。