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.

[参考译文] TMDSDOCK28379D:#10099-D 程序不能放入可用内存中

Guru**** 2582405 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/652984/tmdsdock28379d-10099-d-program-will-not-fit-into-available-memory

器件型号:TMDSDOCK28379D

您好!

TMDSDOCK 28379D -套件实验板...


我有内存映射问题。 我已经将 RAMS0存储器加入到了 RAMS4、但它没有解决问题、有人能帮我吗?

"./2837xD_RAM_lnk_CPU1.cmd"、第58行:错误#10099-D:程序不能放入可用内存中。 对齐/分块方式放置在".cinit"大小为0x4e5的第0页上失败。 可用存储器范围:
RAMM0大小:0x2DE 未使用:0x2da 最大孔:0x2da
"./2837xD_RAM_lnk_CPU1.cmd"、第65行:错误#10099-D:程序不能放入可用内存中。 在".econst"大小为0x1c0的第1页中、放置对齐/分块失败。 可用存储器范围:
RAMLS5大小:0x800未使用:0xe8最大空洞:0xe8
错误#10010:链接期间遇到错误;未构建"Lab_BASE.OUT"

>>编译失败
Makefile:153:目标'Lab_BASD.Out'的配方失败
gmake:***[Lab_BASD.OUT]错误1
gmake:目标"全部"不会由于错误而重新生成。

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

2837xD_RAM_lnk_CPU1.cmd

存储器

第0页:
/* begin 用于"引导至 SARAM"引导加载程序模式*/

开始:origin = 0x000000,length = 0x000002
RAMM0:origin = 0x000122、length = 0x0002DE
RAMD0:origin = 0x00B000、length = 0x000800
/* RAMLS0:origin = 0x008000、length = 0x000800
RAMLS1:origin = 0x008800,length = 0x000800
RAMLS2:origin = 0x009000,length = 0x000800
RAMLS3:origin = 0x009800,length = 0x000800
RAMLS4:origin = 0x00A000、length = 0x000800 */
RAMLS_0_1_2_3_4:origin = 0x008000、length = 0x002800
复位:origin = 0x3FFFC0,length = 0x000002

第1页:

BOOT_RSVD:origin = 0x000002,length = 0x000120 // M0的一部分,引导 ROM 将此用于栈*/
RAMM1:origin = 0x000400、length = 0x000400 //片上 RAM 块 M1 *
RAMD1:origin = 0x00B800,length = 0x000800

RAMLS5:origin = 0x00A800,length = 0x000800

RAMGS0:origin = 0x00C000、length = 0x001000
RAMGS1:origin = 0x00D000、length = 0x001000
RAMGS2:origin = 0x00E000、length = 0x001000
RAMGS3:origin = 0x00F000、length = 0x001000
RAMGS4:origin = 0x010000,length = 0x001000
RAMGS5:origin = 0x011000,length = 0x001000
RAMGS6:origin = 0x012000,length = 0x001000
RAMGS7:origin = 0x013000,length = 0x001000
RAMGS8:origin = 0x014000,length = 0x001000
RAMGS9:origin = 0x015000,length = 0x001000
RAMGS10:origin = 0x016000,length = 0x001000
RAMGS11:origin = 0x017000,length = 0x001000
RAMGS12:origin = 0x018000,length = 0x001000 //*仅在 F28379D、F28377D、F28375D 设备上可用。 移除其他设备上的线路。 *
RAMGS13:origin = 0x019000,length = 0x001000 //*仅在 F28379D、F28377D、F28375D 设备上可用。 移除其他设备上的线路。 *
RAMGS14:origin = 0x01A000,length = 0x001000 //*仅在 F28379D、F28377D、F28375D 设备上可用。 移除其他设备上的线路。 *
RAMGS15:origin = 0x01B000,length = 0x001000 //*仅在 F28379D、F28377D、F28375D 设备上可用。 移除其他设备上的线路。 *

CPU2TOCPU1RAM:origin = 0x03F800,length = 0x000400
CPU1TOCPU2RAM:origin = 0x03FC00,length = 0x000400

CANA_MSG_RAM:origin = 0x049000、length = 0x000800
CANB_MSG_RAM:origin = 0x04B000、length = 0x000800


部分

codestart:> begin,page = 0
ramfuncs:>RAMM0 page = 0
/*.text:>>RAMM0 | RAMD0 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4,page = 0 */
/*.text:>>RAMM0 | RAMD0 | RAMLS_0_1_2_3_4,page = 0 */
.text:>> RAMLS_0_1_2_3_4,page = 0
.cinit:> RAMM0,page = 0
.pinit:> RAMM0,page = 0
switch:>RAMM0,page = 0
.reset:> reset,page = 0,type = DSECT //未使用,*/

.stack:>RAMM1,PAGE = 1.
.ebss:> RAMLS5,PAGE = 1.
econst:> RAMLS5,page = 1.
.esysmem:> RAMLS5,page = 1.
filter_RegsFile:> RAMGS0,PAGE = 1

RAMS0:>RAMGS0,PAGE = 1
ramgs1:>RAMGS1,page = 1.

#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>=15009000
.TI.ramfunc:{}> RAMM0,PAGE = 0
#endif
#endif

/*使用 IPC API 驱动程序时需要以下部分定义*/
组:> CPU1TOCPU2RAM,PAGE = 1

PUTBUFFER
PUTWRITEIDX
GETREADIDX

组:> CPU2TOCPU1RAM,PAGE = 1

GETBUFFER:TYPE = DSECT
GETWRITEIDX:TYPE = DSECT
PUTREADIDX:TYPE = DSECT

/*以下部分定义适用于 SDFM 示例*/
filter1_RegsFile:> RAMGS1,PAGE = 1,fill=0x1111
Filter2_RegsFile:> RAMGS2,PAGE = 1,fill=0x2222
Filter3_RegsFile:> RAMGS3,PAGE = 1,fill=0x3333
Filter4_RegsFile:> RAMGS4,PAGE = 1,fill=0x4444
Differit_RegsFile:>RAMGS5,PAGE = 1,fill=0x3333

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

    您好!

    您遇到的是.cinit 和.econst 错误、而不是文本错误(放置在组合 RAM 中)。 将其放入更大的 RAM 中(或组合 RAM)。

    此致、

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我明白了、但我该怎么做?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以在 RAMD0中放置.cinit、在 RAMD1中放置.econst。 这两个 RAM 都未使用。 对吧?

    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Vivek Singh、我做的与评论完全一样、并且工作正常。
    非常感谢。