目 录CONTENT

文章目录

链接文件学习(三):未分配段的代码和数据存放

moke
2024-07-25 / 0 评论 / 0 点赞 / 24 阅读 / 0 字

概述

        大部分时候,为了便捷,我们写代码并没有仔细的进行数据的包含,此时需要考虑默认代码或者数据的存放。

        一般编译器默认的代码是.text  初始化的全局变量为.data 未初始化的全局变量为.bss

方法

        链接文件里面设置

Memory
{

          PFLASH_SHARE_CODE   (rx!p)   :  org= 0x801FFFE0 ,len = 0x200

          PFLASH_SHARE_DATA   (rx!p)   :  org= 0x801FFFE0 ,len = 0x200

          RAM_SHARE_DATA   (rx!p)   :  org= 0x70100000 ,len = 0x20/*暂时理解为LMU*/

          x1  (rx!p)   :  org= 0xyyyyyyyy ,len = 0xzzzz

         .......

         xn (rx!p)   :  org= 0xuuuuuuuu ,len = 0xvvvv

}

未分配的数据部分 

其中PROVIDE只是提供一个标识符

        类似于 __SHARED_DATA_START这样子的,是为了在.map 里面看到地址,因为地址是活动的,所以也不可以进行定义。

        注意一下:

        带PROVIDE 的.map里面显示会占用字节

        PROVIDE 的.map里面显示不会占用字节

1、已经初始化的全局变量

SHARED_DATA_DEFAULT : ALIGN(4)

{

PROVIDE(__SHARED_DATA_START = .)

        *(.data);

PROVIDE(__SHARED_DATA_END = .)

} >RAM_SHARE_DATA  AT > PFLASH_SHARE_DATA

2、未初始化的全局变量

SHARED_BSS_DEFAULT : ALIGN(4)

{

PROVIDE(__SHARED_BSS_START = .)

        *(.bss);

PROVIDE(__SHARED_BSS_END = .)

} >RAM_SHARE_DATA 

未分配的代码部分

SHARED_CODE_DEFAULT : ALIGN(4)

{

PROVIDE(__SHARED_TEXT_START = .)

        *(.text);

PROVIDE(__SHARED_TEXT_END = .)

}>PFLASH_SHARE_CODE

博主关闭了所有页面的评论