Программирование ARM: решение проблем, FAQ Что означает "bytes shared" в файле *.map и *.lst? Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Что означает "bytes shared" в файле *.map и *.lst? Печать
Добавил(а) microsin   

Иногда компилятор (в файлах *.lst) или линкер (в файлах *.map) IAR выдает сообщение наподобие следующего (может происходить на платформах 430, AVR, AVR32, 8051, M16C, M32C, R32C, CF, CR16C, H8, HCS12, MAXQ, S08, SAM8, V850):

5 646 bytes of CODE  memory (+ 304 bytes shared)
  656 bytes of CONST memory
  288 bytes of DATA  memory
 
Errors: none
Warnings: none

Объекты "shared" это глобальные функции или объекты данных, которые используются совместно разными модулями проекта. Если одинаковый объект встречается больше чем в одном модуле, то на выходе будет сохранена только одна его копия. Например, в некоторых случаях inline-функции не делаются встраиваемыми, что означает, что они будут помечены как "shared", потому что только один экземпляр от каждой функции будет включен в конечное собранное приложение. Этот механизм также иногда используется для кода, генерируемого компилятором, или данных, не напрямую связанных с отдельной функцией или переменной, и когда только один экземпляр требуется для конечного приложения.

[Ссылки]

1. What is '(+ 304 bytes shared)' in the .map and .lst file? site:iar.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page