找回密码
 立即注册

微信扫码登录

查看: 438|回复: 1

[BLE SDK] 关于link文件

[复制链接]

3

主题

1

回帖

119

积分

荣耀黄金

积分
119
QQ
发表于 2024-10-4 14:58:43 | 显示全部楼层 |阅读模式
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:
image.png

但链接文件在80000H后没有数据内容,文件只有512K:
image.png

但如果把bss段定位在80000H也可以正常运行,请问:是否是链接系统出现了问题?



2

主题

17

回帖

129

积分

版主

积分
129
发表于 2024-10-8 13:17:46 | 显示全部楼层
你好,link文件是ANDES IDE下面nds_ldsag.exe生成的固定格式的文件,个人开发需要参考IDE目录下Doc文件夹中的PDF参考文档,里面有详细介绍相关命令的含义。也可以自己编写.sag文件  通过nds_ldsag.exe转换成link文件,在没理解link文件含义前更改可能会由于格式不正确导致异常
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2024-12-21 20:25 , Processed in 0.090530 second(s), 25 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表