도메인 특유의 것이 아니기를 바랍니다. libc.a가 내가 가지고있는 8K 램의 1K를 왜 사용하고 있는지 알고 싶습니다.lpcxpresso with Cortex-M3 : libc.a (lib_a-impure.o) 란 무엇입니까? 1k의 RAM을 사용하는 이유는 무엇입니까?
array_init에서 전역 객체의 생성자를 호출하는 것 외에 다른 방법으로 libc를 사용하고 있다는 것을 알지 못합니다. 나는 내가 아는 한 기본 복사 구성에 너무 관여한다고 생각한다. 풀 할당을 사용하므로 힙 관련 문제가 발생하지 않습니다 (배치를 새로 사용하지만 libc가 램을 사용하도록해서는 안됩니다). 라이브러리를 완전히 제외하고 메인 프로그램의 모든 전역 객체를 구성하기 위해 해킹으로 배치 배치를 사용하면 libc에서 사용하는 1k 램이 쓸모 없다는 또 다른 힌트가됩니다. 누구든지 추가 읽기 또는 날 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
업데이트
, 나는 빈 소멸자가 있었다 내 수업 중 하나에 정의 된
~MyClass(){}
램의 1K를 제거했다. 아무도 그 이유를 말할 수 있습니까?
나는 그것의 복잡함에 대한 지식이 거의 없기 때문에 LIB를 만지지는 않을 것입니다. 하지만 어쨌든 고마워. – odinthenerd