* Вроде смотришь листинги - ничего особенного, но работает код
быстрее. Тут вопрос, на сколько? Если 15-20%, может быть полезно, 5-10% -
хер с ним. * Ибо IAR это ещё документация. Для gcc она есть, в pdf, исчерпывающая. Для clang - аналогично.
* стабильная работа с отладчиками/программаторами. Я использую OpenOCD, всё прекрасно, хотя поддержка свежайших чипов не очень. Последнее справедливо только для ванильной ветки отладчика, чипвендоры для своих ide обычно держат свои ветки openocd, в которых поддержка новых чипов появляется первой, т.е раньше iar. У китайцев поголовно openocd.
* отличный отладчик в IDE
Есть только один графический отладчик, который я считаю хорошим - Segger Ozone. Остальное, в том числе в iar... ну, звезд с неба не хватает. Консольная отладка - тема отдельная.
* и качественная генерация ассемблерных листингов.
При отладке в gdb я могу получить дамп любой функции прямо в процессе отладки в любой момент. Вижу что-то странное - зову disas.
* отладка в железе, но железка не всегда есть под рукой.
Отладка в железе нужна только при написании драйверов (bsp). Вся логика тестируется на десктопе как синтетический порт, а там уже можно многое позволить, например статический анализатор. Хотя PVS Studio вроде работает и с IAR, даже мисру поддерживает. Есть конечно исключения, вроде низкоподребляющих устройств, но я с ними не работал.
* Например, если ты в GCC по указателю на неволатильную память сделаешь несколько записей, то он оптимизирует это до последней записи.
* Да, формально GCC прав Не формально, а полностью. Подобный код просто опасен, могут пострадать люди или дорогостоящее оборудование.
* ARM Compiler V6 это вообще особенная вещь. Я его боюсь Это clang. Хочу попробовать его ванильную версию для эмбеддета, но пока руки не доходят. Ближайшие полгода будет точно не до него.