"XC8 컴파일러를 이용하여 C 코드를 컴파일하면 출력 파일의 크기가 얼마나 달라질까?"
이러한 호기심이 생겨 아래의 코드로 각각의 컴파일 옵션에 따라 코드를 컴파일해 보았습니다. 그리고 출력 파일의 크기를 각각 비교해 보았습니다.
사용한 코드는 아래와 같으며 처음 C 코드를 배울 때 사용해 보았던 구구단 코드를 사용했습니다.
/* TODO <INSERT USER APPLICATION CODE HERE> */ for(i=2;i<=9;i++){ for(j=2;j<=9;j++){ LATA = i*j; } } |
출력된 Hex 파일을 이용하여 Flash 사이즈를 확인해 보겠습니다.
- XC8 컴파일러 버전: v1.45
최적화레벨 | Free mode | Standard mode | Professional mode |
Flash 사용량 | 80 bytes | 69 bytes | 50 bytes |
코드비율 | 100% | 86.25% | 65.5% |
- Free mode
Memory Summary: Program space used 50h ( 80) of 2000h words ( 1.0%) Data space used Ah ( 10) of 3F0h bytes ( 1.0%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) Data stack space used 0h ( 0) of 3F0h bytes ( 0.0%) Configuration bits used 0h ( 0) of 4h words ( 0.0%) ID Location space used 0h ( 0) of 4h bytes ( 0.0%) |
- Standard mode
Memory Summary: Program space used 45h ( 69) of 2000h words ( 0.8%) Data space used Ah ( 10) of 3F0h bytes ( 1.0%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) Data stack space used 0h ( 0) of 3F0h bytes ( 0.0%) Configuration bits used 0h ( 0) of 4h words ( 0.0%) ID Location space used 0h ( 0) of 4h bytes ( 0.0%) |
- Professional mode
Memory Summary: Program space used 32h ( 50) of 2000h words ( 0.6%) Data space used 7h ( 7) of 3F0h bytes ( 0.7%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) Data stack space used 0h ( 0) of 3F0h bytes ( 0.0%) Configuration bits used 0h ( 0) of 4h words ( 0.0%) ID Location space used 0h ( 0) of 4h bytes ( 0.0%) |
코드의 사이즈 감소가 Free mode를 100%를 기준으로 했을 때, Standard mode는 86.25% Professional mode는 65.5% 수준까지 줄어드는 것을 확인할 수 있었습니다. 코드 크기가 줄어들면 같은 동작에 대해 실행을 더 빨리할 수 있고 Flash 공간도 절약할 수 있습니다.
Free 모드로도 무료로 사용할 수 있어 좋지만, 유료 버전인 Professional 버전을 사보는 것도 좋아 보입니다. 처음 설치 시 60일간은 무료로 사용할 수 있다고 하네요..
'MCU Basic' 카테고리의 다른 글
Pickit3 연결 방법(ISCP 연결방법) (0) | 2019.01.14 |
---|---|
ARM Cortex Family에 대한 기본 이해 (0) | 2019.01.14 |
MCU의 미사용핀은 어떻게 처리해야 할까? (0) | 2019.01.14 |
Download old version MPLAB X, MPLAB IDE and XC Compiler (Archive) (0) | 2019.01.07 |
PPS(Peripheral Pin Select)란? (0) | 2018.07.25 |