C 链接器中的这些部分是什么;s地图文件?

C 链接器中的这些部分是什么;s地图文件?,c,memory-management,linker,map-files,stm8,C,Memory Management,Linker,Map Files,Stm8,我的COSMIC-C链接器为我的STM8S微控制器项目生成一个映射文件,尽管有一些熟悉的部分,但有点缺乏表达 以下是映射文件输出和几个模块: -------- Segments -------- start 00008080 end 00008084 length 4 segment .const s

我的COSMIC-C链接器为我的STM8S微控制器项目生成一个映射文件,尽管有一些熟悉的部分,但有点缺乏表达

以下是映射文件输出和几个模块:

                                --------
                               Segments
                               --------

start 00008080 end 00008084 length     4 segment .const
start 00008087 end 00008298 length   529 segment .text
start 00004000 end 00004000 length     0 segment .eeprom
start 00000000 end 00000000 length     0 segment .bsct
start 00000000 end 0000000a length    10 segment .ubsct
start 0000000a end 0000000a length     0 segment .bit
start 0000000a end 0000000a length     0 segment .share
start 00000100 end 00000100 length     0 segment .data
start 00000100 end 00000100 length     0 segment .bss
start 00000000 end 000003be length   958 segment .info.
start 00008000 end 00008080 length   128 segment .const
start 00008084 end 00008087 length     3 segment .init


                               -------
                               Modules
                               -------

D:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\lib\crtsi0.sm8:
start 00008087 end 000080d7 length    80 section .text
start 00000100 end 00000100 length     0 section .bss
start 00000000 end 00000000 length     0 section .ubsct
start 00000000 end 00000034 length    52 section .info.

Release\clockcontrol.o:
start 000080d7 end 000080f7 length    32 section .text
start 00000034 end 000000c1 length   141 section .info.

Release\main.o:
start 000080f7 end 00008145 length    78 section .text
start 000000c1 end 00000146 length   133 section .info.
start 00008080 end 00008084 length     4 section .const
我知道.text.data。我可以假设bsctubsct是数据和bss(尽管已经有了.data和.bss);还有关于.eeprom和.const,它们可能代表它们明显的内存部分。但是:

  • 什么是.info、.bit、.share、.init
  • 我关于.bsct和.ubsct的假设正确吗?如果否,这些部分是什么?如果是,为什么我们同时拥有.bsct/.ubsct和.data/.bss
  • 为什么我们有两个,康斯特?(它们是连续的)
  • 尽管有定义,问题1中提到的任何项目都不会出现在我的代码模块中。它们只是标准吗
  • 这些部分是否遵循命名约定,或者它们只是宇宙之外的东西?我的意思是它们是否标准
  • 有很多thanx

    更新

    COSMIC链接器文档对如何创建链接器脚本有很多描述,但没有预定义的表。脚本似乎是由STVD(IDE)编辑的。尽管如此,有一个例子(与我的问题关系不大)可能会有所帮助:


    您可以阅读编译器链接器系统的文档,或者,如果文档不完整,可以询问宇宙。STM8是否有位可寻址RAM?然后我认为
    .bit
    收集这些位
    .info
    可能存储调试数据。@busybee是的,它有位寻址ram。我已经用文档图片更新了这个问题。您可以阅读编译器链接器系统的文档,或者,如果文档记录不好,可以询问宇宙。STM8是否有位可寻址RAM?然后我认为
    .bit
    收集这些位
    .info
    可能存储调试数据。@busybee是的,它有位寻址ram。我用一张文档图片更新了这个问题