32bit_me (32bit_me) wrote,
32bit_me
32bit_me

Categories:

Распределение памяти в IAR

Originally published at 32 bit.me. You can comment here or there.

Для того, чтобы выяснить, как распределена память (и ОЗУ, и ПЗУ) в проекте под IAR, достаточно найти файл с расширением .map. Он содержит подробнейшую информацию о том, какое количество памяти занимает каждый отдельный модуль и каждая отдельная функция программы.

Пример:

xdtento.o             452       72
 xfdnorm.o             130
 xfdscale.o            192
 xfexp.o               352
 xgetmemchunk.o         40                 4
 xprintffull.o       3 266        8
 xpurevirtual.o          6
 xreportassert.o       116       48
 xsprout.o              10
 xstod.o               188       16
 xstoflt.o             432       32
 xstopfx.o             246
 xstoul.o              280       80
 xsyslock.o            136                20
 xxmemxfree.o          136
 xxmemxmalloc.o        188                 8

Здесь в первом столбце указаны имена функций, во втором размер кода, размещённого в ПЗУ, в третьем столбце указан размер данных, размещённых в ПЗУ (констант), в последнем столбце указан размер данных, размещённых в ОЗУ (переменных). Из этого фрагмента мы можем узнать, например, что модуль xprintffull (вероятно, содержащий реализации функций printf, sprintf и т.п.) занимает довольно существенный размер, больше 3 Кб.

Вообще изучение данного файла может быть весьма познавательным. Если же ваша программа содержит много массивов данных, размещаемых в ПЗУ, то по этой таблице можно ещё раз убедиться в том, что ни один из них не попал случайно в ОЗУ (если перед объявлением массива пропущен модификатор const).

Tags: c++, микроконтроллеры, программирование, статьи
Subscribe

  • Ретрожурнал

    Удивительно, но во времена ссср издавался американский журнал на русском языке "Электроника" ("Electronics"). Переводом занималось издательство…

  • Выниматели микросхем

    Продаётся на барахолке такое чудо: Спрашивается, нахрена и кому понадобились микросхемы с этой платы? Драгметаллов в них нет, вставить их куда-то…

  • Реальная история разработки Commodore C128

    Опубликовал на хабре новый перевод: Реальная история разработки Commodore C128. Заходите, ставьте плюсики, комментируйте там или здесь.

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments