Что означает "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. |