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.

[参考译文] TMS320F280037C:在闪存中保存代码时出现问题

Guru**** 2391565 points
Other Parts Discussed in Thread: TMS320F280037

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1300202/tms320f280037c-problem-saving-code-in-flash-memory

器件型号:TMS320F280037C
主题中讨论的其他器件:TMS320F280037

我使用微控制器 TMS320F280037的位域编程编写了一个代码、但当我尝试将代码保存在闪存中时、收到以下错误:

"../F280037_flash_lnk.cmd"、第13行:错误#10263:已指定 BOOT_RSVD 内存范围
"../F280037_flash_lnk.cmd"、第13行:错误#10264:BOOT_RSVD 内存范围与现有内存范围重叠 BOOT_RSVD 内存范围
"../F280037_flash_lnk.cmd"、第15行:错误#10263:已指定 RAMM0内存范围
"../F280037_flash_lnk.cmd"、第15行:错误#10264:RAMM0内存范围与现有内存范围 RAMM0重叠
"../F280037_flash_lnk.cmd"、第16行:错误#10263:已指定 RAMM1存储器范围
"../F280037_flash_lnk.cmd"、第16行:错误#10264:RAMM1内存范围与现有内存范围 RAMM1重叠
"../F280037_flash_lnk.cmd"、第20行:错误#10263:已指定 RAMLS0内存范围
"../F280037_flash_lnk.cmd"、第20行:错误#10264:RAMLS0内存范围与现有内存范围 RAMLS0重叠
"../F280037_flash_lnk.cmd"、第21行:错误#10263:已指定 RAMLS1内存范围
"../F280037_flash_lnk.cmd"、第21行:错误#10264:RAMLS1内存范围与现有内存范围 RAMLS1重叠
"../F280037_flash_lnk.cmd"、第22行:错误#10263:已指定 RAMLS2内存范围
"../F280037_flash_lnk.cmd"、第22行:错误#10264:RAMLS2内存范围与现有内存范围 RAMLS2重叠
"../F280037_flash_lnk.cmd"、第23行:错误#10263:已指定 RAMLS3内存范围
"../F280037_flash_lnk.cmd"、第23行:错误#10264:RAMLS3内存范围与现有内存范围 RAMLS3重叠
"../F280037_flash_lnk.cmd"、第24行:错误#10263:已指定 RAMLS4内存范围
"../F280037_flash_lnk.cmd"、第24行:错误#10264:RAMLS4内存范围与现有内存范围 RAMLS4重叠
"../F280037_flash_lnk.cmd"、第25行:错误#10263:已指定 RAMLS5内存范围
"../F280037_flash_lnk.cmd"、第25行:错误#10264:RAMLS5内存范围与现有内存范围 RAMLS5重叠
"../F280037_flash_lnk.cmd"、第26行:错误#10263:已指定 RAMLS6内存范围
"../F280037_flash_lnk.cmd"、第26行:错误#10264:RAMLS6内存范围与现有内存范围 RAMLS6重叠
"../F280037_flash_lnk.cmd"、第27行:错误#10263:已指定 RAMLS7存储器范围
"../F280037_flash_lnk.cmd"、第27行:错误#10264:RAMLS7内存范围与现有内存范围 RAMLS7重叠
"../F280037_flash_lnk.cmd"、第32行:错误#10263:已指定 RAMGS0内存范围
"../F280037_flash_lnk.cmd"、第32行:错误#10264:RAMGS0内存范围与现有内存范围 RAMGS0重叠
"../F280037_flash_lnk.cmd"、第33行:错误#10263:已指定 RAMGS1内存范围
"../F280037_flash_lnk.cmd"、第33行:错误#10264:RAMGS1内存范围与现有内存范围 RAMGS1重叠
"../F280037_flash_lnk.cmd"、第34行:错误#10263:已指定 RAMGS2内存范围
"../F280037_flash_lnk.cmd"、第34行:错误#10264:RAMGS2内存范围与现有内存范围 RAMGS2重叠
"../F280037_flash_lnk.cmd"、第35行:错误#10263:已指定 RAMGS3内存范围
"../F280037_flash_lnk.cmd"、第35行:错误#10264:RAMGS3内存范围与现有内存范围 RAMGS3重叠
"../F280037_flash_lnk.cmd"、第38行:错误#10263:已指定 BootROM 存储器范围
"../F280037_flash_lnk.cmd"、第38行:错误#10264:BootROM 内存范围与现有内存范围重叠 BootROM
"../F280037_flash_lnk.cmd"、第39行:错误#10263:已指定 SECURE_ROM 存储器范围
"../F280037_flash_lnk.cmd"、第39行:错误#10264:SECURE_ROM 存储器范围与现有存储器范围 SECURE_ROM 重叠
"../F280037_flash_lnk.cmd"、第41行:错误#10263:已指定重置存储器范围
"../F280037_flash_lnk.cmd"、第41行:错误#10264:复位内存范围与现有内存范围复位重叠
"../F280037_flash_lnk.cmd"、第48行:错误#10263:已指定开始内存范围
"../F280037_flash_lnk.cmd"、第48行:错误#10264:开始内存范围与现有内存范围重叠开始
"../F280037_flash_lnk.cmd"、第51行:错误#10263:已指定 FLASH_BANK0_SEC0内存范围
"../F280037_flash_lnk.cmd"、第51行:错误#10264:FLASH_BANK0_SEC0内存范围与现有内存范围 FLASH_BANK0_SEC0重叠
"../F280037_flash_lnk.cmd"、第52行:错误#10263:已指定 FLASH_BANK0_SEC1内存范围
"../F280037_flash_lnk.cmd"、第52行:错误#10264:FLASH_BANK0_SEC1内存范围与现有内存范围 FLASH_BANK0_SEC1重叠
"../F280037_flash_lnk.cmd"、第53行:错误#10263:已指定 FLASH_BANK0_sec2内存范围
"../F280037_flash_lnk.cmd"、第53行:错误#10264:FLASH_BANK0_sec2内存范围与现有内存范围 FLASH_BANK0_sec2重叠
"../F280037_flash_lnk.cmd"、第54行:错误#10263:已指定 FLASH_BANK0_SEC3内存范围
"../F280037_flash_lnk.cmd"、第54行:错误#10264:FLASH_BANK0_SEC3内存范围与现有内存范围 FLASH_BANK0_SEC3重叠
"../F280037_flash_lnk.cmd"、第55行:错误#10263:已指定 FLASH_BANK0_SEC4内存范围
"../F280037_flash_lnk.cmd"、第55行:错误#10264:FLASH_BANK0_SEC4内存范围与现有内存范围 FLASH_BANK0_SEC4重叠
"../F280037_flash_lnk.cmd"、第56行:错误#10263:已指定 FLASH_BANK0_SEC5内存范围
"../F280037_flash_lnk.cmd"、第56行:错误#10264:FLASH_BANK0_SEC5内存范围与现有内存范围 FLASH_BANK0_SEC5重叠
"../F280037_flash_lnk.cmd"、第57行:错误#10263:已指定 FLASH_BANK0_SEC6内存范围
"../F280037_flash_lnk.cmd"、第57行:错误#10264:FLASH_BANK0_SEC6内存范围与现有内存范围 FLASH_BANK0_SEC6重叠
"../F280037_flash_lnk.cmd"、第58行:错误#10263:已指定 FLASH_BANK0_sec7内存范围
"../F280037_flash_lnk.cmd"、第58行:错误#10264:FLASH_BANK0_sec7内存范围与现有内存范围 FLASH_BANK0_sec7重叠
"../F280037_flash_lnk.cmd"、第59行:错误#10263:已指定 FLASH_BANK0_SEC8内存范围
"../F280037_flash_lnk.cmd"、第59行:错误#10264:FLASH_BANK0_SEC8内存范围与现有内存范围 FLASH_BANK0_SEC8重叠
"../F280037_flash_lnk.cmd"、第60行:错误#10263:已指定 FLASH_BANK0_SEC9内存范围
"../F280037_flash_lnk.cmd"、第60行:错误#10264:FLASH_BANK0_SEC9内存范围与现有内存范围 FLASH_BANK0_SEC9重叠
"../F280037_flash_lnk.cmd"、第61行:错误#10263:已指定 FLASH_BANK0_SEC10内存范围
"../F280037_flash_lnk.cmd"、第61行:错误#10264:FLASH_BANK0_SEC10内存范围与现有内存范围 FLASH_BANK0_SEC10重叠
"../F280037_flash_lnk.cmd"、第62行:错误#10263:已指定 FLASH_BANK0_SEC11内存范围
"../F280037_flash_lnk.cmd"、第62行:错误#10264:FLASH_BANK0_SEC11内存范围与现有内存范围 FLASH_BANK0_SEC11重叠
"../F280037_flash_lnk.cmd"、第63行:错误#10263:已指定 FLASH_BANK0_SEC12内存范围
"../F280037_flash_lnk.cmd"、第63行:错误#10264:FLASH_BANK0_SEC12内存范围与现有内存范围 FLASH_BANK0_SEC12重叠
"../F280037_flash_lnk.cmd"、第64行:错误#10263:已指定 FLASH_BANK0_SEC13内存范围
"../F280037_flash_lnk.cmd"、第64行:错误#10264:FLASH_BANK0_SEC13内存范围与现有内存范围 FLASH_BANK0_SEC13重叠
"../F280037_flash_lnk.cmd"、第65行:错误#10263:已指定 FLASH_BANK0_SEC14内存范围
"../F280037_flash_lnk.cmd"、第65行:错误#10264:FLASH_BANK0_SEC14内存范围与现有内存范围 FLASH_BANK0_SEC14重叠
"../F280037_flash_lnk.cmd"、第66行:错误#10263:已指定 FLASH_BANK0_SEC15内存范围
"../F280037_flash_lnk.cmd"、第66行:错误#10264:FLASH_BANK0_SEC15内存范围与现有内存范围 FLASH_BANK0_SEC15重叠
"../F280037_flash_lnk.cmd"、第69行:错误#10263:已指定 FLASH_Bank1_SEC0内存范围
"../F280037_flash_lnk.cmd"、第69行:错误#10264:FLASH_Bank1_SEC0内存范围与现有内存范围 FLASH_BANK1_SEC0重叠
"../F280037_flash_lnk.cmd"、第70行:错误#10263:已指定 FLASH_Bank1_SEC1内存范围
"../F280037_flash_lnk.cmd"、第70行:错误#10264:FLASH_Bank1_SEC1内存范围与现有内存范围 FLASH_BANK1_SEC1重叠
"../F280037_flash_lnk.cmd"、第71行:错误#10263:已指定 FLASH_Bank1_sec2内存范围
"../F280037_flash_lnk.cmd"、第71行:错误#10264:FLASH_Bank1_sec2内存范围与现有内存范围 FLASH_BANK1_sec2重叠
"../F280037_flash_lnk.cmd"、第72行:错误#10263:已指定 FLASH_Bank1_SEC3内存范围
"../F280037_flash_lnk.cmd"、第72行:错误#10264:FLASH_Bank1_SEC3内存范围与现有内存范围 FLASH_BANK1_SEC3重叠
"../F280037_flash_lnk.cmd"、第73行:错误#10263:已指定 FLASH_Bank1_SEC4内存范围
"../F280037_flash_lnk.cmd"、第73行:错误#10264:FLASH_Bank1_SEC4内存范围与现有内存范围 FLASH_BANK1_SEC4重叠
"../F280037_flash_lnk.cmd"、第74行:错误#10263:已指定 FLASH_Bank1_SEC5内存范围
"../F280037_flash_lnk.cmd"、第74行:错误#10264:FLASH_Bank1_SEC5内存范围与现有内存范围 FLASH_BANK1_SEC5重叠
"../F280037_flash_lnk.cmd"、第75行:错误#10263:已指定 FLASH_Bank1_SEC6内存范围
"../F280037_flash_lnk.cmd"、第75行:错误#10264:FLASH_Bank1_SEC6内存范围与现有内存范围 FLASH_BANK1_SEC6重叠
"../F280037_flash_lnk.cmd"、第76行:错误#10263:已指定 FLASH_Bank1_sec7内存范围
"../F280037_flash_lnk.cmd"、第76行:错误#10264:FLASH_Bank1_sec7内存范围与现有内存范围 FLASH_BANK1_sec7重叠
"../F280037_flash_lnk.cmd"、第77行:错误#10263:已指定 FLASH_Bank1_SEC8内存范围
"../F280037_flash_lnk.cmd"、第77行:错误#10264:FLASH_Bank1_SEC8内存范围与现有内存范围 FLASH_BANK1_SEC8重叠
"../F280037_flash_lnk.cmd"、第78行:错误#10263:已指定 FLASH_Bank1_SEC9内存范围
"../F280037_flash_lnk.cmd"、第78行:错误#10264:FLASH_Bank1_SEC9内存范围与现有内存范围 FLASH_BANK1_SEC9重叠
"../F280037_flash_lnk.cmd"、第79行:错误#10263:已指定 FLASH_Bank1_SEC10内存范围
"../F280037_flash_lnk.cmd"、第79行:错误#10264:FLASH_Bank1_SEC10内存范围与现有内存范围 FLASH_BANK1_SEC10重叠
"../F280037_flash_lnk.cmd"、第80行:错误#10263:已指定 FLASH_Bank1_SEC11内存范围
"../F280037_flash_lnk.cmd"、第80行:错误#10264:FLASH_Bank1_SEC11内存范围与现有内存范围 FLASH_BANK1_SEC11重叠
"../F280037_flash_lnk.cmd"、第81行:错误#10263:已指定 FLASH_Bank1_SEC12内存范围
"../F280037_flash_lnk.cmd"、第81行:错误#10264:FLASH_Bank1_SEC12内存范围与现有内存范围 FLASH_BANK1_SEC12重叠
"../F280037_flash_lnk.cmd"、第82行:错误#10263:已指定 FLASH_Bank1_SEC13内存范围
"../F280037_flash_lnk.cmd"、第82行:错误#10264:FLASH_Bank1_SEC13内存范围与现有内存范围 FLASH_BANK1_SEC13重叠
"../F280037_flash_lnk.cmd"、第83行:错误#10263:已指定 FLASH_Bank1_SEC14内存范围
"../F280037_flash_lnk.cmd"、第83行:错误#10264:FLASH_Bank1_SEC14内存范围与现有内存范围 FLASH_BANK1_SEC14重叠
"../F280037_flash_lnk.cmd"、第84行:错误#10263:已指定 FLASH_Bank1_SEC15内存范围
致命错误#99900:已达到错误限制;检测到100个错误

您可以帮助解决此问题吗?

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

    您好!  

    看起来您可能已将两个链接器命令文件添加到项目中。  请检查是否是这种情况、并且只提供其中一项。

    此致

    西达尔特

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

    是的,你是对的,但现在我删除了一个 liker 和这个问题出现了。

    "C:\\ti\\ccs1250\\ccs\\utils\\bin\\gmake"-k -j 4 all -O

    构建目标:"F280037 0 FLASH teste.out"
    调用:C2000链接器
    "c:/ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla2 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcrc /ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib --advice:performance=all /ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include --define=_flash --define=debug -g --diag_warning=225 ---tm_wrap =off xml_link_info="f280037 0 flash teste_linkInfo.xml"--rom_model -o "F280037 0 flash teste.out"./sc.obj" Peripheral_Setup ./can.obj"./device.obj"./f28003x_adc.obj."./f28003x_codesstartbranch."./f283x.obj./f28003x_f283x.obj./f28003x"。


    第一个引用的未定义
    文件中的符号
    ---------------- ----------------
    _RamfuncsLoadSize ./device.obj
    _RamfuncsLoadStart ./device.obj
    _RamfuncsRunStart ./device.obj

    错误#10234-D:未解析的符号仍存在

    错误#10010:链接期间遇到错误;未生成"F280037 0 FLASH teste.out"
    >>编译失败
    Makefile:152:目标"F280037 0 FLASH teste.out"的配方失败
    gmake[1]:***[F280037 0 FLASH teste.out]错误1
    gmake:***[全部]错误2
    Makefile:148:目标"全部"的食谱失败

    有什么建议吗?

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

    您好!  

    看起来链接器命令文件中有一个部分已加载到闪存中、但代码从 RAM 运行。  

    这些符号由链接器创建、需要在程序中成为"extern "。 在项目的 C 文件中添加以下行以消除此错误。

    外部 uint16_t RamfuncsLoadStart;
    extern uint16_t RamfuncsLoadSize;
    外部 uint16_t RamfuncsRunStart;

    此致

    西达尔特

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

    您好!

    我已经在主 C 文件中添加了这3行内容、但问题仍然存在。

    ****项目 F280037的配置调试构建0闪存****

    "C:\\ti\\ccs1250\\ccs\\utils\\bin\\gmake"-k -j 4 all -O

    构建目标:"F280037 0 FLASH teste.out"
    调用:C2000链接器
    "c:/ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla2 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcrc /ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib --advice:performance=all /ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include --define=_flash --define=debug -g --diag_warning=225 ---tm_wrap =off xml_link_info="f280037 0 flash teste_linkInfo.xml"--rom_model -o "F280037 0 flash teste.out"./sc.obj" Peripheral_Setup ./can.obj"./device.obj"./f28003x_adc.obj."./f28003x_codesstartbranch."./f283x.obj./f28003x_f283x.obj./f28003x"。


    第一个引用的未定义
    文件中的符号
    ---------------- ----------------
    _RamfuncsLoadSize ./device.obj
    _RamfuncsLoadStart ./device.obj
    _RamfuncsRunStart ./device.obj

    错误#10234-D:未解析的符号仍存在
    错误#10010:链接期间遇到错误;未生成"F280037 0 FLASH teste.out"

    >>编译失败
    Makefile:152:目标"F280037 0 FLASH teste.out"的配方失败
    gmake[1]:***[F280037 0 FLASH teste.out]错误1
    Makefile:148:目标"全部"的食谱失败
    gmake:***[全部]错误2

    ****构建完成****

    还有其他理想吗?

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

    您好!  

    看起来这些都是在 device.c 中引用的、因为错误在 device.obj 中将其称为未解析符号

    请您在 device.c 而不是 main.c 中添加这些行、然后尝试一下。

    此致

    西达尔特