|
Information
说明: |
建议参照本版块置顶帖内容输入必要信息 |
芯片型号: |
TLSR9285 |
SDK及版本: |
V4.0.4.2 |
我使用tl_ble_sdk软件,代码在RAM里面运行,sdk不带RAM 链接文件,我使用 tl_platform_sdk里面ram_boot.link 可以链接成功并且在RAM运行正常;现在代码+数据已经超过256k,我想在内存下载调试提高速度,我改动链接文件如下:
部分代码:
*************************************************************************************
. = ALIGN(0x20);
.eh_frame : AT(ALIGN(LOADADDR (.eh_frame_hdr) + SIZEOF (.eh_frame_hdr), 0X20))
{ KEEP(*(.eh_frame )) }
.exec.itable :
{ KEEP(*(.exec.itable)) }
/*. = ALIGN(8);*/
. = 0x00080000;
PROVIDE( __global_pointer$ = . + (4K / 2) );
.data :
{ *(.data .data.* .gnu.linkonce.d.* ) KEEP(*(.gnu.linkonce.d.*personality* )) SORT(CONSTRUCTORS)
*(.srodata.cst16 ) *(.srodata.cst8 ) *(.srodata.cst4 ) *(.srodata.cst2 ) *(.srodata .srodata.* ) *(.sdata .sdata.* .gnu.linkonce.s.* ) *(.sdata2 .sdata2.* .gnu.linkonce.s.* )
}
. = ALIGN(8);
/*. = 0x00080000;*/
PROVIDE (_BSS_VMA_START = .);
.sbss (NOLOAD) : { *(.dynsbss ) *(.sbss .sbss.* .gnu.linkonce.sb.* ) *(.scommon .scommon.* ) }
.bss (NOLOAD) : { *(.dynbss ) *(.bss .bss.* .gnu.linkonce.b.* ) *(COMMON ) . = ALIGN(8); }
/* When using the S file _FILL_STK function (which clears all the values in the stack space to 0x55),
* if _BSS_VMA_END does not have four-byte alignment, there may be an out-of-bounds access beyond _STACK_TOP,
* resulting in a store access fault.
*/
/*PROVIDE (_BSS_VMA_END = ((. + 3) / 4)*4);*/
PROVIDE (_BSS_VMA_END = .);
*************************************************************************************
红字是想把data段和bss段定位在D-SRAM区0x00080000:
但链接文件在80000H后没有数据内容,文件只有512K:
但如果把bss段定位在80000H也可以正常运行,请问:是否是链接系统出现了问题?
|
|