Соглашусь что GCC создает более раздутый код чем Keil, но! При оптимизации по размеру код у GCC может быть
меньше и быстрее, это под ARM Cortex-M3. Причем код заметно быстрее работает, чем меня GCC приятно удивил
В моем проекте переносного цифрового осцилла с выводом на ЖК TFT, Keil с макс. оптимизацией O3(по скорости) выдавал ~55кадров/сек., GCC же при O0 ~67, при Os ~85-90! И код получается по размеру чуть больше чем у Keil с O3 по размеру(скорость работы при этом в минусе полном 30-35 кадров). Это все на ЖК 240х400 и STM32F103, так что не все так плохо как тут пишут
Но соглашусь что при работе с регистрами напрямую GCC может лажать, очень неприятный момент когда нужно работать с мелкими МК, так как приходится использовать библиотеки от ST(с ними 100% работает корректно), это конечно же расстраивает
Все описанное относится к arm-none-eabi-gcc 4.6 который я использовал совместно с CooCox CoIDE.
А в целом хорошо что существуют альтернативы платным компиляторам, спасибо сообществу за GCC! Не всем по карману Keil/IAR/Atollic и т.д. особенно для личных проектов.