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.

[参考译文] TMS320F2812:CCSV5.0中的 TMS320F2812连接器#39;s 文件错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1289396/tms320f2812-tms320f2812-linker-s-file-error-in-ccsv5-0

器件型号:TMS320F2812

您好!

我正在使用具有外部128KB RAM 和 CCSV5.0的 TMS320F2812 (我已将代码从 CCSV3迁移到 CCS v5.0)。 如果我使用来自存储库的默认链接器文件(F2812 Flash.cmd)、则编译时没有错误、但 MICRO 在调试期间被复位。

 

如果我在 F2812 Flash.cmd 中按照我从 KT 收到的文档之一中指定的那样使用以下代码

 

内存

{

第0页:/*程序存储器*/

 

 RAML0:origin = 0x008000、length = 0x000A00 /*片上 RAM 块 L0 */

 ZONE2:origin = 0x080000、length = 0x010000 /* XINTF zone 2 */

 FLASHALL:origin = 0x3D8000、length = 0x01E000

 ENDFLASH:origin = 0x3F6000、length = 0x000004

 CSM_RSVD:origin = 0x3F7F80,length = 0x000076 /*当 CSM 处于状态时全为0x0000的程序

使用。 */

 begin:origin = 0x3F7FF6、length = 0x000002 /*用于"Boot to Flash"引导加载程序

测试模式。 */

 csm_PWL:origin = 0x3F7FF8、length = 0x000008 /* FLASHA 中的 CSM 密码位置*/

 ROM:origin = 0x3FF000,length = 0x000FC0 /* Boot ROM Available if MP/MCN=0 */

 复位:origin = 0x3FFFC0,length = 0x000002 /*启动 ROM 的一部分(MP/MCN=0 )或

XINTF 区域7 (MP/MCN=1)*/

 VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM (MP/MCN=0 )或

XINTF 区域7 (MP/MCN=1)*/

第1页:/*数据存储器*/

 

 ZONE2DAT:origin = 0x090000、length = 0x010000 /* XINTF zone 2 data */

 RAMM0:origin = 0x000000,length = 0x000400 /*片上 RAM 块 M0 */

 RAMM1:origin = 0x000400,length = 0x000400 /*片上 RAM 块 M1 */

 RAML1:origin = 0x008A00、length = 0x0015F7 /*片上 RAM 块 L1 */

 TST_LOC:origin = 0x009FF8、length = 9 /*用于 RAM 状况测试*/

 RAMH0:origin = 0x3F8000,length = 0x002000 /*片上 RAM 块 H0 */

/*将段分配给内存块。

 注:

 DSP28_CodeStartBranch.asm 中的 codestart 用户定义段用于重定向代码

 引导至闪存时执行

 ramfuncs 的用户定义的部分、用于存储将从闪存复制到 RAM 中的函数

*/

 

部分

{

 

 /*分配计划领域:*/

 .cinit:> FLASHALL page = 0

 .pinit :> FLASHALL 页面= 0

 .text:> FLASHALL page = 0

 配置:> FLASHALL PAGE = 0

 initXintf:> FLASHALL page = 0

 codestart :>开始页面= 0

ramfuncs:{Filter.lib < iir32.obj>(.text)、fft.lib < cfft32i.obj、cfft32c.obj、rfft32aq.obj、rfft32w.obj、

 rfft32s.obj、rfft32m.obj >(.text)}

 负载= FLASHALL、

 RUN = RAML0、

 Load_start (_RamfuncsLoadStart)、

 Load_End (_RamfuncsLoadEnd)、

 RUN_START (_RamfuncsRunStart)、

 RUN_END (_RamfuncsRunEnd)、

 PAGE = 0

 csmpasswds :> csm_PWL page = 0

 csm_rsvd :> csm_rsVD page = 0

 iirfilt :> RAMM1页面= 1

 FFTipcb1A align (1024 ):{}>RAMH0 page = 1

 FFTipcb1B align (1024 ):{}>RAMH0 page = 1

 FFTipcb2A align (1024 ):{}>RAMH0 page = 1

 FFTipcb2B align (1024 ):{}>RAMH0 page = 1

 FFTtf > FLASHALL PAGE = 0

 FLASH_SUM:>ENDFLASH PAGE = 0

 /*分配未初始化的数据段:*/

 .stack

 .ebss

:> RAMM0 page = 1, end(_TopOfStack )

:> RAML1页面= 1

 .esysmem :> RAMH0页面= 1

 TstLoc :> TST_LOC PAGE = 1

 FSDATA :> RAML1页面= 1

 /*初始化段进入闪存*/

 /*要使 SDFlash 对这些单元进行编程,它们必须被分配到 PAGE 0 */

 econst:> FLASHALL PAGE = 0

 .switch:> FLASHALL PAGE = 0

 /*分配 IQ 数学领域:*/

 IQMath :> FLASHALL PAGE = 0 /*数学代码*/

 IQmathTables :> ROM page = 0, type = NoLoad /* Math Tables in ROM */

 /*.reset 是编译器使用的标准段。 它包含*/

 /* C 代码的_c_int00起始地址。 /*

 /*使用引导 ROM 时、此段和 CPU 矢量*/

 不需要/*表。 因此、此处将默认类型设置为*/

 /* DSECT */

 .reset:> RESET、PAGE = 0、TYPE = DSECT

 引导程序:>引导程序页面= 0,类型= DSECT

 

我在编译时遇到以下错误代码-

 

描述         资源             路径      位置              类型

#10099-D 程序无法装入可用内存。  针对".stack"大小0x4b0页1运行对齐/分块失败的放置。  可用内存范围:      F2812 flash.cmd              /Exacta 行149 C/C++问题

 

需要帮助我解决相同的问题。 如果需要任何其他信息、请 提前告知我、并表示感谢

 

此致、

苏迪尔·扬格拉

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

    您好!

    我相信您正在尝试将栈分配给 RAMM0。 RAMM0的大小为0x400、而栈的大小为0x4b0、因此导致了错误。 请尝试减小堆栈大小或使用更大的内存区域

    此致、

    维纳

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

    您好!

    感谢您的答复。 我尝试了你的建议,但问题没有得到解决。

    之前我使用的是 CCSV3.3、但目前我使用的是 CCSV5.0。 在 CCSV3.3中、此链接器文件运行良好(因为该产品由团队在2008年制造)、但今天我使用的是存储库中的 CCSV5.0和链接器文件。 使用此链接器文件、我能够编译代码、但在调试期间、微控制器将被重置、而且我还尝试根据从 KT 中接收到的链接器文件内容对链接器文件进行更改。

    此致、

    苏迪尔·扬格拉

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

    您好!

    在此产品中、还有一点、我们使用外部 RAM ISSI DF7371X1