Иногда компилятор (в файлах *.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. |