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.

[参考译文] TMS320F280025:错误#10099-D:程序将无法放入可用存储器中、或者该段包含一个需要能够为该段生成#39;t 的 trampoline 的调用点。 段"codestart&amp 的对齐/分块放置失败

Guru**** 2582405 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1173189/tms320f280025-error-10099-d-program-will-not-fit-into-available-memory-or-the-section-contains-a-call-site-that-requires-a-trampoline-that-can-t-be-generated-for-this-section-placement-with-alignment-blocking-fails-for-sectio

器件型号:TMS320F280025

您好!

   我厌倦了修改 flash_kernel_ex3_sci_flash_kernel 示例演示、当我生成代码时、我会遇到以下错误。 请对此进行指导。

错误#10099-D:程序将无法放入可用存储器、或者该段包含需要无法为此段生成的 trampoline 的调用站点。 对于"codestart"大小为0x57的第0页、放置对齐/阻断失败。 可用存储器范围:
开始大小:0x3B 未使用:0x3B 最大孔:0x3B
错误#10010:链接期间遇到错误;未构建"flash_kernel_ex3_sci_flash_kernel_1_.out"

>>编译失败
Makefile:148:目标'flash_kernel_ex3_sci_flash_kernel_1_.out'的配方失败
gmaked[1]:***[flash_kernel_ex3_sci_flash_kernel_1_out]错误1.
gmake[1]:目标"辅助输出"不会由于错误而重新生成。
Makefile:144:目标'all'的配方失败

请查找以下链接器文件以供您参考。

//
//保留_BankSelect 符号
//
-u bankSelect

存储器

开始:origin = 0x080000,length = 0x00003B
BOOT_RSVD:origin = 0x00000002,length = 0x00000126
RAMM0:origin = 0x00000128,length = 0x000002D8
RAMM1:origin = 0x00000400,length = 0x000003F8 //片上 RAM 块 M1 *
// RAMM1_RSVD:origin = 0x000007F8,length = 0x00000008 //根据勘误咨询“Memory:Prepetching Beyond valid Memory”(内存:超过有效内存的预取),保留并不用于代码*/

/* RAMLS4:origin = 0x0000A000,length = 0x00000800
RAMLS5:origin = 0x0000A800,length = 0x00000800
RAMLS6:origin = 0x0000B000、length = 0x00000800
RAMLS7:origin = 0x0000B800,length = 0x00000800*/

//
//为组0中的 liveDFU 函数分配空间
//
BANK0_SEC1:origin = 0x81000,length = 0x000017

/*合并所有 LS RAM */
RAMLS4567:origin = 0x0000A000,length = 0x00002000
RAMGS0:origin = 0x0000C000,length = 0x000007F8
// RAMGS0_RSVD:origin = 0x0000C7F8,length = 0x00000008 //保留并不用于根据勘误咨询“内存:预取超出有效内存”的代码*/


// FLASHBANK1:origin = 0x00080000,length = 0x0000FFF0
// flash_bank1_RSVD:origin = 0x0008FFF0,length = 0x00000010 //保留并不用于根据勘误咨询“Memory:pretching Beyond valid Memory”(内存:有效内存之外的预取)*/的代码
BootROM:origin = 0x003F0000,length = 0x00008000
BootROM_EXT:origin = 0x003F8000,length = 0x00007FC0
复位:origin = 0x003FFFC0,length = 0x00000002
/*闪存扇区*/
/*组0 */
FLASH_BANK0_SEC0:origin = 0x08003B、length = 0x000FC5 //片上闪存*
FLASH_BANK0_SEC1:origin = 0x081017、length = 0x000FE9 //片上闪存*
FLASH_BANK0_sec2:origin = 0x082000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC3:origin = 0x083000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC4:origin = 0x084000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC5:origin = 0x085000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC6:origin = 0x086000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC7:origin = 0x087000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC8:origin = 0x088000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC9:origin = 0x089000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC10:origin = 0x08A000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC11:origin = 0x08B000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC12:origin = 0x08C000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC13:origin = 0x08D000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC14:origin = 0x08E000、length = 0x001000 //片上闪存*
FLASH_BANK0_SEC15:origin = 0x08F000、length = 0x000FF0 //片上闪存*
// flash_BANK0_SEC15_RSVD:origin = 0x08FFF0,length = 0x000010 //根据勘误咨询“Memory: prepetching Beyond valid Memory”(内存:超出有效内存的预取),保留代码且不用于代码*/


部分

codestart:>开始,align (8)
.text:>> FLASH_BANK0_SEC0 | FLASH_BANK0_SEC1、ALIGN (8)
.cinit:> flash_BANK0_SEC1,align (8)
.switch:> FLASH_BANK0_SEC1,ALIGN (8)
.reset:> reset,type = DSECT /* not used,*/

.stack:> RAMM1

init_array:> flash_BANK0_SEC1,align (8)
.bss:> RAMLS4567
.bss:输出:> RAMLS4567
.bss:CIO :>RAMLS4567
.const:> FLASH_BANK0_SEC1、ALIGN (8)
.data:> RAMLS4567
.sysmem:> RAMLS4567

//ramgs0:> RAMGS0



.TI.ramfunc

-l FlashAPI_F28002x_FPU32.lib

}LOAD = FLASH_BANK0_SEC0、
运行= RAMLS4567、
Load_start (RamfuncsLoadStart)、
load_size (RamfuncsLoadSize)、
Load_End (RamfuncsLoadEnd)、
RUN_START (RamfuncsRunStart)、
run_size (RamfuncsRunSize)、
RUN_END (RamfuncsRunEnd)、
对齐(8)

LDFU_BANK0:> BANK0_SEC1,ALIG(8)

/*
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//文件结束。
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*

谢谢、

Nagaraj

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

    您好、Nagaraju、

    我将能够在本周三之前进行回顾并返回给您。

    谢谢、此致、

    Vamsi

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

    您好、Nagaraju、

    为 codestart 段分配的存储器范围(开始)不足以适应代码、因此是错误。   

    错误表示 codestart 需要0x57个字并且开始长度只有0x3B。

    您可以增加起始存储器范围的长度。

    谢谢、此致、
    Vamsi

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

    您好、Vasmi、

           我尝试将 起始存储器范围的长度从0x3B 修改为0x57,  FLASH_BANK0_SEC0 :origin = 0x080058,length = 0x000FC5 ,但我收到以下构建错误。

    错误#10264:FLASH_BANK0_SEC0存储器范围与现有存储器范围 BANK0_SEC1重叠
    "./28002x_LFU_flash_kernel_lnk.cmd"、行38:错误#10264:flash_BANK0_SEC1内存范围与现有内存范围 flash_BANK0_SEC0重叠

    谢谢、

    Nagaraj

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

    您好、Nagaraj、

    当您增加一个存储器范围的长度时、需要设置下一个(连续地址范围)存储器范围的原点和长度。  如果不是、它们将重叠、因此是误差。

    谢谢、此致、

    Vamsi