Files
Balsam_167/UKSSTMS320F28335/28335_RAM_lnk.cmd
Andrey f741741cf8 Сохранить русские комментарии и настройки проекта в UTF-8
Добавить пояснения к исходникам, заголовкам TI, настройкам CCS и существующим проверкам. Зафиксировать правила кодировки, обзор модулей и аудит комментариев.
2026-10-12 12:24:48 +03:00

234 lines
13 KiB
Batchfile

/* Распределение секций программы и данных по RAM контроллера. Русские пояснения сохранены в UTF-8. */
/*
// TI File $Revision: /main/11 $
// Checkin $Date: April 15, 2009 09:57:28 $
//###########################################################################
//
// FILE: 28335_RAM_lnk.cmd
//
// TITLE: Linker Command File For 28335 examples that run out of RAM
//
// This ONLY includes all SARAM blocks on the 28335 device.
// This does not include flash or OTP.
//
// Keep in mind that L0 and L1 are protected by the code
// security module.
//
// What this means is in most cases you will want to move to
// another memory map file which has more memory defined.
//
//###########################################################################
// $TI Release: $
// $Release Date: $
//###########################################################################
*/
/* ======================================================
// For Code Composer Studio V2.2 and later
// ---------------------------------------
// In addition to this memory linker command file,
// add the header linker command file directly to the project.
// The header linker command file is required to link the
// peripheral structures to the proper locations within
// the memory map.
//
// The header linker files are found in <base>\DSP2833x_Headers\cmd
//
// For BIOS applications add: DSP2833x_Headers_BIOS.cmd
// For nonBIOS applications add: DSP2833x_Headers_nonBIOS.cmd
========================================================= */
/* ======================================================
// For Code Composer Studio prior to V2.2
// --------------------------------------
// 1) Use one of the following -l statements to include the
// header linker command file in the project. The header linker
// file is required to link the peripheral structures to the proper
// locations within the memory map */
/* Uncomment this line to include file only for non-BIOS applications */
/* -l DSP2833x_Headers_nonBIOS.cmd */
/* Uncomment this line to include file only for BIOS applications */
/* -l DSP2833x_Headers_BIOS.cmd */
/* 2) In your project add the path to <base>\DSP2833x_headers\cmd to the
library search path under project->build options, linker tab,
library search path (-i).
/*========================================================= */
/* Define the memory block start/length for the F28335
PAGE 0 will be used to organize program sections
PAGE 1 will be used to organize data sections
Notes:
Memory blocks on F28335 are uniform (ie same
physical memory) in both PAGE 0 and PAGE 1.
That is the same memory region should not be
defined for both PAGE 0 and PAGE 1.
Doing so will result in corruption of program
and/or data.
L0/L1/L2 and L3 memory blocks are mirrored - that is
they can be accessed in high memory or low memory.
For simplicity only one instance is used in this
linker file.
Contiguous SARAM memory blocks can be combined
if required to create a larger memory block.
*/
/* Начинает описание физических блоков памяти для линкера. */
MEMORY
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Выбирает страницу адресного пространства линкера: 0 — программа, 1 — данные. */
PAGE 0 :
/* BEGIN is used for the "boot to SARAM" bootloader mode */
BEGIN : origin = 0x000000, length = 0x000002 /* Boot to M0 will go here */ /* Записывает origin значением 0x000000, length = 0x000002; данные origin. */
/* Записывает origin значением 0x000050, length = 0x0003B0; данные origin. */
RAMM0 : origin = 0x000050, length = 0x0003B0
/* Записывает origin значением 0x008000, length = 0x001000; данные origin. */
RAML0 : origin = 0x008000, length = 0x001000
/* Записывает origin значением 0x009000, length = 0x001000; данные origin. */
RAML1 : origin = 0x009000, length = 0x001000
/* Записывает origin значением 0x00A000, length = 0x001000; данные origin. */
RAML2 : origin = 0x00A000, length = 0x001000
/* Записывает origin значением 0x00B000, length = 0x001000; данные origin. */
RAML3 : origin = 0x00B000, length = 0x001000
ZONE7A : origin = 0x200000, length = 0x00FC00 /* XINTF zone 7 - program space */ /* Записывает origin значением 0x200000, length = 0x00FC00; данные origin. */
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */ /* Записывает origin значением 0x33FF80, length = 0x000076; данные origin. */
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */ /* Записывает origin значением 0x33FFF8, length = 0x000008; данные origin. */
/* Записывает origin значением 0x380080, length = 0x000009; данные origin. */
ADC_CAL : origin = 0x380080, length = 0x000009
/* Записывает origin значением 0x3FFFC0, length = 0x000002; данные origin. */
RESET : origin = 0x3FFFC0, length = 0x000002
/* Записывает origin значением 0x3FE000, length = 0x000b50; данные origin. */
IQTABLES : origin = 0x3FE000, length = 0x000b50
/* Записывает origin значением 0x3FEB50, length = 0x00008c; данные origin. */
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c
/* Записывает origin значением 0x3FEBDC, length = 0x0006A0; данные origin. */
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0
/* Записывает origin значением 0x3FF27C, length = 0x000D44; данные origin. */
BOOTROM : origin = 0x3FF27C, length = 0x000D44
/* Выбирает страницу адресного пространства линкера: 0 — программа, 1 — данные. */
PAGE 1 :
/* BOOT_RSVD is used by the boot ROM for stack. */
/* This section is only reserved to keep the BOOT ROM from */
/* corrupting this area during the debug process */
BOOT_RSVD : origin = 0x000002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack */ /* Записывает origin значением 0x000002, length = 0x00004E; данные origin. */
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ /* Записывает origin значением 0x000400, length = 0x000400; данные origin. */
/* Записывает origin значением 0x00C000, length = 0x001000; данные origin. */
RAML4 : origin = 0x00C000, length = 0x001000
/* Записывает origin значением 0x00D000, length = 0x001000; данные origin. */
RAML5 : origin = 0x00D000, length = 0x001000
/* Записывает origin значением 0x00E000, length = 0x001000; данные origin. */
RAML6 : origin = 0x00E000, length = 0x001000
/* Записывает origin значением 0x00F000, length = 0x001000; данные origin. */
RAML7 : origin = 0x00F000, length = 0x001000
ZONE7B : origin = 0x20FC00, length = 0x000400 /* XINTF zone 7 - data space */ /* Записывает origin значением 0x20FC00, length = 0x000400; данные origin. */
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Начинает описание размещения секций объектных файлов для линкера. */
SECTIONS
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Setup for "boot to SARAM" mode:
The codestart section (found in DSP28_CodeStartBranch.asm)
re-directs execution to the start of user code. */
/* Записывает PAGE значением 0; данные PAGE. */
codestart : > BEGIN, PAGE = 0
/* Включает следующий блок только при определённом символе __TI_COMPILER_VERSION__. */
#ifdef __TI_COMPILER_VERSION__
/* Условие компиляции __TI_COMPILER_VERSION__ >= 15009000: выбранный блок включается в текущий вариант прошивки. */
#if __TI_COMPILER_VERSION__ >= 15009000
/* Записывает PAGE значением 0; данные PAGE. */
.TI.ramfunc : {} > RAML0, PAGE = 0
/* Выбирает альтернативный блок текущего условия компиляции. */
#else
/* Записывает PAGE значением 0; данные PAGE. */
ramfuncs : > RAML0, PAGE = 0
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Записывает PAGE значением 0; данные PAGE. */
.text : > RAML1, PAGE = 0
/* Записывает PAGE значением 0; данные PAGE. */
.cinit : > RAML0, PAGE = 0
/* Записывает PAGE значением 0; данные PAGE. */
.pinit : > RAML0, PAGE = 0
/* Записывает PAGE значением 0; данные PAGE. */
.switch : > RAML0, PAGE = 0
/* Записывает PAGE значением 1; данные PAGE. */
.stack : > RAMM1, PAGE = 1
/* Записывает PAGE значением 1; данные PAGE. */
.ebss : > RAML4, PAGE = 1
/* Записывает PAGE значением 1; данные PAGE. */
.econst : > RAML5, PAGE = 1
/* Записывает PAGE значением 1; данные PAGE. */
.esysmem : > RAMM1, PAGE = 1
/* Записывает PAGE значением 0; данные PAGE. */
IQmath : > RAML1, PAGE = 0
/* Записывает PAGE значением 0, TYPE = NOLOAD; данные PAGE. */
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
/* Uncomment the section below if calling the IQNexp() or IQexp()
functions from the IQMath.lib library in order to utilize the
relevant IQ Math table in Boot ROM (This saves space and Boot ROM
is 1 wait-state). If this section is not uncommented, IQmathTables2
will be loaded into other memory (SARAM, Flash, etc.) and will take
up space, but 0 wait-state is possible.
*/
/*
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
{
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
}
*/
/* Записывает PAGE значением 0, TYPE = NOLOAD; данные PAGE. */
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
/* Записывает PAGE значением 1; данные PAGE. */
DMARAML4 : > RAML4, PAGE = 1
/* Записывает PAGE значением 1; данные PAGE. */
DMARAML5 : > RAML5, PAGE = 1
/* Записывает PAGE значением 1; данные PAGE. */
DMARAML6 : > RAML6, PAGE = 1
/* Записывает PAGE значением 1; данные PAGE. */
DMARAML7 : > RAML7, PAGE = 1
/* Записывает PAGE значением 1; данные PAGE. */
ZONE7DATA : > ZONE7B, PAGE = 1
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used */ /* Записывает PAGE значением 0, TYPE = DSECT; данные PAGE. */
csm_rsvd : > CSM_RSVD PAGE = 0, TYPE = DSECT /* not used for SARAM examples */ /* Записывает PAGE значением 0, TYPE = DSECT; данные PAGE. */
csmpasswds : > CSM_PWL PAGE = 0, TYPE = DSECT /* not used for SARAM examples */ /* Записывает PAGE значением 0, TYPE = DSECT; данные PAGE. */
/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
/* Записывает load значением ADC_CAL, PAGE = 0, TYPE = NOLOAD; данные load. */
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/*
//===========================================================================
// End of file.
//===========================================================================
*/