请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC3220S-LAUNCHXL 工具/软件:Code Composer Studio
您好!
我在 RAM 上运行的非常严格。 .lds 文件似乎包含所有链接器指令、所以我只是直接修改此文件、还是因为它只是由另一个工具自动生成而被删除? 此外、我能否将.data 移动到 SRAM0? 这样做是否有影响? .data 现在为~10k、因此它看起来合适。
它实际上与更改 region_alias ("region_data"、SRAM)一样简单;更改为 region_alias ("region_data"、SRAM0);
/*
版权所有(c) 2016、德州仪器(TI)公司
*保留所有权利。
*
*
只要
符合以下条件*、允许以源代码和二进制形式重新分发和使用:
*
*源代码的重新分发必须保留上述版权
声明*、此条件列表和以下免责声明。
*
***二进制形式的再发行必须在
*随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
*
***未经
事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
*
*本软件由版权所有者和贡献者"按原样"提供
*、
不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
*贡献者都不对任何直接、间接、偶然、特殊、
*模范、 或相应的损害(包括但不限于
*采购替代产品或服务;丧失使用、数据或利润;
*或业务中断)、但出于任何责任理论
、*无论是在合同中、严格责任还是由于
使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
、*即使已获悉可能会发生此类损坏。
//
/*
=== CC3220S_LAUNCHXL_TIRTOS。lds ===
*为 MSP_EXP432P401R M4定义存储器块开始/长度
*/
STACKSIZE = 1024;
HEAPSIZE = 0x8000;/* HeapMem 使用的堆缓冲区大小*/
MEMORY
{
SRAM0 (RWX):origin = 0x20000000,length = 0x00004000
SRAM (RWX):origin = 0x20004000、length = 0x0003c000
}
region_alias ("region_RAM_VECS"、SRAM0);
region_alias ("region_text"、SRAM);
region_alias ("region_BSS"、 SRAM);
region_alias ("region_data"、SRAM);
region_alias ("region_stack"、SRAM);
region_alias ("region_heap"、SRAM);
region_alias ("region_arm_EXIDX"、SRAM);
region_alias ("region_arm_EXTAB"、 SRAM);
SECTIONS{
提供(_vtable_base_address =
已定义(_vtable_base_address)? _vtable_base_address:0x20000000);
.vtable (_vtable_base_address)(空载):{
保留(*(.vtable)
)} > REGAL_RAM_VECS
提供(_intvecs_base_address =
已定义(_intvecs_base_address)? _intvecs_base_address:0x20004000);
.intvecs (_intvecs_base_address):at (_intvecs_base_address){
保留(*(.intvecs)
)} > region_text
.text:{
create_object_symbols
*(.text)
*(.text.*)
。 =对齐(0x4);
保留(*(.ctors))
。 =对齐(0x4);
保留(*(.ditors))
。 =对齐(0x4);
__init_array_start =.;
保留(*(.init_array*))
__init_array_end =.;
*(.init)
*(.fini*)
} > region_text at > region_text
提供(__etext =.);
提供(_etext =.);
提供(etext =.);
rodata:{
*(.rodata)
*(.rodata*)
} > region_text at > region_text
.data:align (4){
__DATA_LOADDR___= LOADDR (.data);
__data_start__=.;
*(.data)
*(.data*)
。 =对齐(4);
__DATA_END__=;
} > region_data at > region_text
arm.exidx:{
_exidx_start =.;
*(.arm.exidx*.gnu.linkone.armexidx.*)
_exidx_end =.;
} > REGION ARM_EXIDX、位于> REGION ARM_EXIDX
arm.extab:{
*(.arm.extab*.gnu.linkone.armextab.*)
} > REGION ARM_EXTAB、> REGION ARM_EXTAB
.bss:{
_bss_start__=.;
*(.shbss)
*(.bss)
*(.bss.*)
*(通用)
。 =对齐(4);
__bss_end__=;
} > REGION _BSS AT > REGION BSS
堆:{
_heap_start__=.;
结束=_heap_start__;
_end =结束;
_end =结束;
保留(*(.heap))
_heap_end_=.;
__HeapLimit=__heap_end__;
} > region_heap at>region_heap
/* HeapMem 使用的堆缓冲区*/
.priheap:{
。 =对齐(8);
_primary_heap_start__=.;
。 += HEAPSIZE;
__primary_heap_end__=.;
} > region_heap at>region_heap
.stack (NoLoad):align (0x8){
_stack =.;
_stack =.;
保留(*(.stack))
。 += STACKSIZE;
} > region_stack at> region_stack
}