Hello,
I compiled a tiny program to evaluate how big the binary code size is with the TI ARM and Linaro GCC Compiler. All it contains is:
void main (void)
{
while(1)
{
; // do nothing
}
}
The post-build steps to make a binary file from the *.out file is
"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ARMofd" "${CG_TOOL_ROOT}/bin/ARMhex" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
for the TI ARM Compiler and for Linaro GCC it's
"${CCE_INSTALL_ROOT}/tools/compiler/arm_5.1.6/bin/armhex.exe" "-b" "-o=${BuildArtifactFileBaseName}.bin" "${BuildArtifactFileName}"
The optimization is set to the maximum level and optimize for size for both compilers.
The results:
TI ARM Compiler: 1.320 Bytes
Linaro GCC: 3.668 Bytes
What a huge difference! Is the TI compiler that much better or are there some additional GCC options to reduce the gap?
Best regards,
- Julian