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.

[参考译文] 编译器/TMS320F28377S:链接器中的问题 TI 18.1.5

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/800175/compiler-tms320f28377s-issue-in-linker-ti-18-1-5

器件型号:TMS320F28377S

工具/软件:TI C/C++编译器

我发现以下问题:

在我的命令文件中:


          组
       {
          ramfuncs
           .TI.ramfunc
            }LOAD = FLASH 代码,
                        run = RAMDfunt、
                        load_start (_RamfuncsLoadStart)、
                        load_size (_RamfuncsLoadSize)、
                        load_end (_RamfuncsLoadEnd)、
                        run_start (_RamfuncsRunStart)、
                        run_size (_RamfuncsRunSize)、
                        run_end (_RamfuncsRunEnd)、
                        PAGE = 0、ALIGN (4)

如果 RAMDfunt 中没有足够的空间被覆盖全局变量:

 

如果您可以看到 RamfuncsRunStart + RamfuncsLoadSize 超过了第一个全局变量 CANID。

增加 RAMDfunt 可以解决这个问题。

映射文件

ABS  0000164a _Cla1funcsLoadSize                        
ABS  000020d7 _RamfuncsLoadSize                         
abs  000020d7 _RamfuncsRunSize                          
ABS  0000b000 _RamfuncsRunStart                         
abs  0000d0d7 _RamfuncsRunEnd       

0000d001    340 (0000d000)    _CANID

错误消息应该很好。

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

    请阅读有关 内存页的文章。  您必须确保第0页和第1页上的存储器范围之间没有重叠。  我怀疑 RAMDfunct 和一些其他存储器范围有一些重叠。

    谢谢、此致、

    乔治