Надо тут проектик сотворить - клиент хочет запись на USB флэшку. Побочно получилось потестировать компиляторы, конечно не показатель, но...
Микроконтроллер STM32F401RE, Keil vs IAR vs EmBitz.
За основу взят проект под CooCox (в Кокосе 1.7 нет STM32F401RE, свежий ругают) и библиотека USB HOST отсюда:
http://mikrocontroller.bplaced.net/word ... ge_id=1333
Создал проект для EmBitz. Напрочь выкинул SPL - она там и ненужна (настроить GPIO и прерывания и пр. можно легко без оной). Создал и подшаманил проекты для Keil и IAR - в GСС можно позволить себе вольности, например с глобальными переменными, типа обойтись без extern.
Все проекты нормально пишут текстовый файл (на немецком

) на флэшку
Результаты:
Спойлер
Код: Выделить всё
Keil ARM 5.20
Program Size: Code=17566 RO-data=566 RW-data=164 ZI-data=3588
0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:07
Код: Выделить всё
IAR ELF Linker V7.80.4.12462/W32 for ARM
Copyright 2007-2017 IAR Systems AB.
15 486 bytes of readonly code memory
142 bytes of readonly data memory
4 746 bytes of readwrite data memory
Errors: none
Warnings: none
Link time: 0.08 (CPU) 0.08 (elapsed)
Код: Выделить всё
EmBitz bare-metal GCC
Release, для оптимизации присутствуют -Os -lto
bin\Release\UsbHostF401.map|1|Program size (bytes): 17500|
||Data size (bytes): 208|
||BSS size (bytes): 2624|
|| ----------------|
||Total size (bytes): 20332 (R/W Memory: 2832)|
|||
||=== Build finished: 0 errors, 0 warnings (0 minutes, 4 seconds) ===|
Впечатления:
IAR и Keil отладка на самодельном STLinkе прекрасна, EmBitz отладка как то тоскливо - кто знает как открыть и посмотреть регистры GPIO, с ходу не нашел. По размерам, имхо, практически все сравнялись. IAR и Keil более четкие в поддержке стандарта Си, имхо.