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.

[参考译文] TMS570LS3134:由于 RAM 使用量几乎已满,因此在编辑链接器文件方面需要帮助

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1086636/tms570ls3134-need-help-in-editing-the-linker-file-since-ram-usage-is-almost-full

部件号:TMS570LS3134

您好,

由于设备的 RAM 使用率几乎已满,且具有256KB (261983字节的读写数据存储器(绝对值+ 50 337 788))

我想使用 SRAM 区域,这是否可以通过编辑链接器脚本实现?

我可以使用现有的 SRAM 区域吗? 如果是的话——我需要一些关于如何处理这个问题的指示。  

链接器文件如下所示:

//SOC -*-ASM-*-
//************************************************************
//_________ _________ _________________ _________ _________ _________________ _________ **
//(_______________________)(_______)_______**
//|(\/|(\/)(|()||()|)(|()|**
//|(_______) ||||| ||||||(_____)|||||(_____)|**
//(_____ )||||||| ||||_________) |||__|**
//)|||||||| |||(||||()|**
////>)|(________________)____|(____|(____)|)||||)(|**
//_________________ )(_________________ /_________________ /(______________ )|/)_(|/\|**
//**
//(c) 2010 SCIOPTA Systems AG/ Schweiz **
//**
//************************************************************
// ID:S102BS1 **
//$Revision:1.1.2.2 $**
//美元日期:20 12年10月04日 07:30:56美元**
// TMS570的内核脚本(IAR5版)**
//************************************************************
//EOC

/*-特别计划-*/
定义符号__ICFEDIT_intvec_start__= 0x00000000;
定义符号__ICFEDIT_appintvec_start__= 0x00040000;

/*-内存区域-*/
定义符号_region_rom_start__= 0x00040040;
定义符号_region_rom_end__= 0x002FFFFFF7;/*
。对于旧 CPU */
定义符号_region_RAM_START__= 0x08000000;
为旧 CPU *定义符号_region_RAM_end__= 0x0803ffff;/* 0x08027fff

定义符号_region_EXT_MRAM_START__= 0x60000000;
定义符号_region_EXT_MRAM_END_= 0x6007FFFF;

定义符号_region_EXT_SRAM_START__= 0x64000000;
定义符号_region_EXT_SRAM_END_= 0x6407FFFF;

/*是 resethook 所需要的*/
导出符号_region_RAM_end_;

/*定义一些块以将某些段保持在一起*/
/*Define block debug with alignment =4, maximum size =512K { section .debug*};*/
定义对齐=4的块内核,最大大小=512K { section .text_krn*};
/*定义带对齐=4的块 INTVEC,最大尺寸=0x1000 {部分.intvec };*/
定义带对齐=4的块 NO_cache,最大大小=0x1000 {节.NO_Cache_SRAM };
定义对齐=4的块堆,大小=0x24900 {};
定义对齐=4的块 CSTACK,大小=0xFF0 {};
定义对齐=4,大小=0x10 {};的块 IRQ_STACK
定义对齐=4,大小=0x10 {};
定义块 und_stack,对齐=4,大小=0x10 {};

定义大小为4G 的内存内存内存内存;
定义区域 ROM_region = mem:[从_region_ROM/start__到_region_ROM/end__];
定义区域 RAM_region = mem:[从_region_RAM_START__到_region_RAM_END_];
定义地区代码覆盖率=百万分:[从_region_EXT_MRAM_START_到_region_EXT_MRAM_END_];
定义区域 RAM_EXT_REARY = mem:[从_region_EXT_SRAM_START__到_region_EXT_SRAM_END___;

/*定义引导加载程序版本的区域*/
定义符号_region_ROM_APPVERSION_ADDR_START__= 0x002FFFFFF8;
定义符号_region_ROM_APPVERSION_ADDR_END_= 0x002FFFFFFB;
定义区域 APPVERSION_ROM_REARION = mem:[从_region_ROM_APPVERSION_ADDR_START_到_region_ROM_APPVERSION_ADDR_END_];

/*定义内存映射1的区域*/
定义符号_region_MEMAP_ADDR_START__= 0x00018000;
定义符号_region_MEMAP_ADDR_END_= 0x0001FFFF;
定义区域 MEM_region = mem:[从_region_MEMAP_ADDR_START_到_region_MEMAP_ADDR_END_];

/*定义语言区域*/
定义符号_region_languages _ADDR_START__= 0x00280000;
定义符号_region_languages_ADDR_End__= 0x002FFF00;
定义地区语言区域= mem:[从_region_languages _ADDR_START__到_region_languages _ADDR_END_];

通过副本初始化{ readwrite };
请勿初始化{.noinit 部分,.no_cache_SRAM 部分,.CODECOVERAGE 部分};

放置在地址 mm:__ICFEDIT_intvec_start__{ readonly section .intvec };
放置在地址 mm:__ICFEDIT_appintvec_start__{ readonly section .appintvec };


/*确保无电视电视频道是第一! *
/*在 ROM_region 的位置{阻止 INTVEC };*/
放置在 ROM_region {只读,块内核}中;
放置在 RAM_REARIENAR { readwrite };
放置在 RAM_region {块 NO_cache,块堆,块 IRQ_stack,块 FIQ_stack,块 und_stack,块 und_stack, 阻止 CSTACK };
放置在 MEMORYMAP_region { section .MEMAP }中;
置于代码覆盖范围{.CODECOVERAGE 部分};
放置在 RAM_EXT_REARY { section .EXTRAM }中;
放置在 APPVERSION_ROM_REARION {章节.MBVERSION }中;
在 Languages_region 中放置{ LANGREF 部分};

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="487205" url="~/support/icles/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forum/1086636/tms570ls3134-need-help-inediting-linker -file-sin-ramusage-is -implo-full’s,我希望该地区能够使用这个脚本/SRAM?]

    您是指与 EMIF 连接的同步内存还是异步内存? asyn SRAM 以0x60000000启动,同步内存(SDRAM)以0x8000000启动。

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

    您好,王

    我们没有使用外部同步内存,我已经了解了我们的原理图。

    现在,我想使用位于 0x60000000 (_region_EXT_SRAM_START_ ,0x64000000)的异步内存。  

    我需要定义一个新区域还是可以 使用现有区域?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="487205" url="~/support/icles/arm-based 微处理器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1086636/tmsync 570ls3134-need-help-in编辑- linker-file-sin-user-is_-imple-usion-is_-implos-full /4097_,位于 本地区的0x00006497_san_as_start_4097",希望在本地区使用 。  [/引用]

    您已将哪个外部存储设备连接到异步存储器区域?

    位于 0x60000000的异步内存访问连接到 EMIF 芯片选择2的外部内存设备。