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.

[参考译文] CC2650:CCS:已指定"flash 存储器范围;复制项目时出错

Guru**** 2539500 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1218734/cc2650-ccs-flash-memory-range-has-already-been-specified-error-when-copying-a-project

器件型号:CC2650

我有一个基于 simple_peripheral 示例的项目。  它会成功构建和运行。  现在我想制作一个变量、以便我复制 CCS 项目并粘贴到新项目中。  当我尝试在新副本上进行全新构建时、会收到以下错误:

说明资源路径位置类型
#10010链接过程中遇到错误;"Power10.out" Not Built Power10 C/C++ problem
#10263闪存范围已指定为 cc26x0f128.cmd /power10行78 C/C++ problem
#10263 SRAM 内存范围已指定为 cc26x0f128.cmd /power10 line 80 C/C++ problem
#10264闪存范围与现有内存范围闪存 cc26x0f128.cmd /power10行78 C/C++问题重叠
#10264闪存范围与现有内存范围 FLASH_LAST_PAGE cc26x0f128.cmd /Power10行78 C/C++问题重叠
#10264 SRAM 内存范围与现有内存范围 SRAM cc26x0f128.cmd /power10 line 80 C/C++问题重叠
gmake:***[全部]错误2 Power10 C/C++问题
gmake[1]:***[Power10.Out]错误1 Power10 C/C++问题
#10190-D 重新定义的绝对符号"__stack_top" cc26x0f128.cmd /Power10第124行 C/C++问题
#69-D 整数转换导致符号 simple_peripheral.c /Power10/Application 行297 C/C++问题发生变化

cc26x0f128.cmd 中发生错误、表明该错误是自动生成的。  这一代使用什么工具?  复制 CCS 工程时是否需要特定操作?

我使用的是 CCS 版本10.2.0.00009

谢谢你的任何意见!

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

    您好、Jim、

    您是在 CCS 项目浏览器环境中还是在您的文件浏览器中复制粘贴项目?
    首次在工作区中打开 simple_peripheral 示例时、您是否选中了以下框?

    使用此框可以修改示例、而不会影响原始示例、即 SDK 示例。 因此、您可以直接在此文件中应用修改、无需复制粘贴。

    此致、

    PS:确保您的所有项目名称不同。

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

    纪尧姆、您好!

    我在 CCS 项目浏览器窗口中完成了最近的复制/粘贴操作。  该项目可以正常构建并根据需要工作。  当我将它复制并粘贴到其他名称的项目时、我收到了错误。

    我几年前设置了原始项目、因此我不记得是否勾选了"将项目复制到工作区"框。

    吉姆

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

    当您在新的工作区中复制粘贴项目时是否仍然会出现此错误?

    似乎重新定义了符号__STACK_TOP、但我需要更多信息来修复它、您能否提供项目浏览器和发生错误的文件的屏幕截图?

    此致、

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

    是的、我在复制/粘贴工作项目时收到生成错误。

    下面是项目资源管理器的屏幕截图:

    错误位于 cc26x0f128.cmd 文件中:

    //*****************************************************************************
    //! @file       cc26x0f128.cmd
    //! @brief      CC26x0F128 rev2 linker file for Code Composer Studio.
    //!
    //! Revised     $Date$
    //! Revision    $Revision$
    //
    //  This file is auto-generated.
    //
    //  Copyright (C) 2017 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.
    //****************************************************************************/
    
    /* Retain interrupt vector table variable                                    */
    --retain=g_pfnVectors
    /* Override default entry point.                                             */
    --entry_point ResetISR
    /* Allow main() to take args                                                 */
    --args 0x8
    /* Suppress warnings and errors:                                             */
    /* - 10063: Warning about entry point not being _c_int00                     */
    /* - 16011, 16012: 8-byte alignment errors. Observed when linking in object  */
    /*   files compiled using Keil (ARM compiler)                                */
    --diag_suppress=10063,16011,16012
    
    /* The following command line options are set as part of the CCS project.    */
    /* If you are building using the command line, or for some reason want to    */
    /* define them here, you can uncomment and modify these lines as needed.     */
    /* If you are using CCS for building, it is probably better to make any such */
    /* modifications in your CCS project and leave this file alone.              */
    /*                                                                           */
    /* --heap_size=0                                                             */
    /* --stack_size=256                                                          */
    /* --library=rtsv7M3_T_le_eabi.lib                                           */
    
    /* The starting address of the application.  Normally the interrupt vectors  */
    /* must be located at the beginning of the application.                      */
    #define FLASH_BASE              0x0
    #define FLASH_SIZE              0x20000
    #define RAM_BASE                0x20000000
    #define RAM_SIZE                0x5000
    #define GPRAM_BASE              0x11000000
    #define GPRAM_SIZE              0x2000
    
    
    /* System memory map */
    
    MEMORY
    {
        /* Application stored in and executes from internal flash */
        FLASH (RX) : origin = FLASH_BASE, length = FLASH_SIZE
        /* Application uses internal RAM for data */
        SRAM (RWX) : origin = RAM_BASE, length = RAM_SIZE
        /* Application can use GPRAM region as RAM if cache is disabled in the CCFG
        (DEFAULT_CCFG_SIZE_AND_DIS_FLAGS.SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM = 0) */
        GPRAM (RWX): origin = GPRAM_BASE, length = GPRAM_SIZE
    }
    
    /* Section allocation in memory */
    
    SECTIONS
    {
        .intvecs        :   > FLASH_BASE
        .text           :   > FLASH
        .const          :   > FLASH
        .constdata      :   > FLASH
        .rodata         :   > FLASH
        .binit          :   > FLASH
        .cinit          :   > FLASH
        .pinit          :   > FLASH
        .init_array     :   > FLASH
        .emb_text       :   > FLASH
        .ccfg           :   > FLASH (HIGH)
    
        .vtable         :   > SRAM
        .vtable_ram     :   > SRAM
         vtable_ram     :   > SRAM
        .data           :   > SRAM
        .bss            :   > SRAM
        .sysmem         :   > SRAM
        .stack          :   > SRAM (HIGH)
        .nonretenvar    :   > SRAM
        .TI.noinit      :   > SRAM
        .gpram          :   > GPRAM
    
    #ifdef __TI_COMPILER_VERSION__
    #if __TI_COMPILER_VERSION__ >= 15009000
    /*  Hide section from older compilers not supporting the "ramfunc" attribute.
        See processors.wiki.ti.com/.../Placing_functions_in_RAM */
        .TI.ramfunc : {} load=FLASH, run=SRAM, table(BINIT)
    #endif
    #endif
    }
    
    /* Create global constant that points to top of stack */
    /* CCS: Change stack size under Project Properties    */
    __STACK_TOP = __stack + __STACK_SIZE;
    

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

    一些其他相关问题:

    -是否有一个应用手册介绍如何将 simpleperipheral 应用使用的文件收集到单独的 CCS 项目?

    -是否有可能发布 simpleperipheral 应用的开源定制?

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

    您好、Jim、

    这似乎是链接器文件错误、您能在中为我提供链接器命令文件吗 属性 高精度实验室视频、 常规。

    检查此文件是否与您的专用复制工程相对应。

    此致、

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

    您好!

    通过一个过程、可以正确地创建定制 CC2650 CCS 工程。 但在任何地方都没有记录下来。  我想您可以做的就是重命名 simple peripheral。

    -kel

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

    复制的工程使用以下链接器命令文件: c:\ti\ccs1020\ccs\ccs_base\arm\include\cc26x0f128.cmd。 我检查了原始工程、该工程的链接器命令字段为空。  当我删除内容,在我的新项目,它开始工作!  我不确定链接器命令文件是如何更改的。

    我正在尝试了解在基于 simple_peripheral 创建作为 Github repo 共享的自定义工程时使用的最佳实践。  如果我使整个 SDK 成为 Git 存储库、它将包含制作项目真正不需要的许多文件。  我的工程仅修改了 simple_peripheral.c/.h、simple_GATT_profile.c/.h 和 devinfoservice.c、因此它实际上只是 SDK 中的一小组文件。   感谢任何指导。