Надеюсь, это не относится к домену. Я хотел бы знать, почему libc.a использует 1K 8K бара, который у меня есть на чипе.lpcxpresso с Cortex-M3: что такое libc.a (lib_a-impure.o), почему он использует 1k RAM?
Мне неизвестно, каким образом я использую libc, кроме того, что он вызывает конструкторы моих глобальных объектов в array_init. Насколько я знаю, он также участвует в построении копии по умолчанию. Я использую распределение пула, поэтому нет связанных с кучей вещей (я использую новое место размещения, но это не должно приводить к тому, что libc использует барабан, насколько я знаю). Если я полностью исключаю библиотеку и использую новое место в качестве взлома для создания всех моих глобальных объектов в моей программе, то это еще один намек на то, что 1k оперативной памяти, используемой libc, бесполезен. Может ли кто-нибудь указать мне на дальнейшее чтение или объяснить, как я могу сохранить array_init и по умолчанию создавать копии типов POD, но избавиться от накладных расходов RAM?
Вот запись обижая в .map файле моего проекта:
*(vtable)
*(.data*)
.data._ZN3CDC4CoreI5MyCDCE11depInEmpty_E
0x10000000 0x1 ./src/Main.o
0x10000000 CDC::Core<MyCDC>::depInEmpty_
*fill* 0x10000001 0x3 00
.data.SystemFrequency
0x10000004 0x4 ./kvasir/system_LPC17xx.o
0x10000004 SystemFrequency
.data.impure_data
0x10000008 0x428 c:/nxp/lpcxpresso_5.2.4_2122/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libc.a(lib_a-impure.o)
.data 0x10000430 0x4 c:/nxp/lpcxpresso_5.2.4_2122/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\crtbegin.o
0x10000430 __dso_handle
0x10000434 . = ALIGN (0x4)
0x10000434 _edata = .
.jcr 0x10000434 0x0 load address 0x00003ee8
.jcr 0x10000434 0x0 c:/nxp/lpcxpresso_5.2.4_2122/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\crtbegin.o
.bss 0x10000434 0x1600 load address 0x00003ee8
0x10000434 _bss = .
*(.bss*)
.bss.inBuf 0x10000434 0x34 ./src/Main.o
0x10000434 inBuf
Update
после прохождения через мой код построчно Я нашел исправить, у меня был пустой деструктор определенный в одном из моих классов
~MyClass(){}
комментируя это, удалил 1K бара. Может ли кто-нибудь сказать мне, почему?
Я бы предпочел не касаться LIB, потому что у меня мало знаний о его тонкостях. Но все равно спасибо. – odinthenerd