Что это за разделы в файле карты компоновщика? - PullRequest
0 голосов
/ 28 сентября 2019

Мой компоновщик 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 .и я могу предположить, что bsct и ubsct являются data и bss (несмотря на наличие уже .data и .bss);также о .eeprom и .const , которые могут представлять их очевидные разделы памяти.но:

  1. Что такое .info, .bit, .share, .init?
  2. Правильно ли мое предположение о .bsct и .ubsct?если нет, что это за разделы и если да, почему у нас есть оба .bsct / .ubsct и .data / .bss?
  3. почему у нас два .const?(они являются последовательными)
  4. , несмотря на то, что они определены, ни один из пунктов, упомянутых в вопросе 1, не появляется ни в каких модулях, которые являются моими кодами.это просто стандарты?
  5. соответствуют ли эти разделы соглашению об именах или они просто не соответствуют COSMIC?Я имею в виду, являются ли они стандартными или нет.

со многими спасибо.

Обновление :

документация компоновщика COSMIC имеет много описаний накак сделать скрипт компоновщика, но не имеет предопределенной таблицы.кажется, что скрипт отредактирован STVD (IDE).несмотря на это, есть пример (не очень связанный с моим вопросом), который может помочь:

enter image description here

...