-
- Keil использует clang, по крайней мере под ARM, в нём все фичи
работать будут. Что касается IAR - за десять лет работы так и не
понял, зачем он нужен. На пару процентов быстрее - это конечно
здорово, но чащё всего с этим можно смирится. - evgeniy1294(04.01.2022 12:37)
- Вот когда БУДЕТ поддерживать, тогда и будем обсуждать. А пока С++20
для кортексов это только GCC. IAR это не только крутой компилятор.
Вроде смотришь листинги - ничего особенного, но работает код
быстрее. Я думаю, он учитывает особенности исполнения кода разными
ядрами (конвейеры, кэши, предвыборки и т.д.), иначе трудно
объяснить почему код выполняется быстрее. GCC делает код добротный,
агрессивно оптимизированный, но по какому-то клише, которое в целом
чуть медленнее. На VladislavS.(2480 знак., 05.01.2022 02:46)
- Предлагаю обсудить тезисно: evgeniy1294(2071 знак., 06.01.2022 01:12)
- Всё верно пишете, даже и обсуждать нечего, всё уже пережевано в сообществах. Понятно, что не всё применимо в эмбедде, но это так всегда в плюсах было. У меня, в проектах, например, куча равна нулю. Ну дальше понимаете. - VladislavS.(06.01.2022 09:31)
- * Вроде смотришь листинги - ничего особенного, но работает код
быстрее. Тут вопрос, на сколько? Если 15-20%, может быть полезно, 5-10% -
хер с ним. evgeniy1294(1685 знак., 06.01.2022 02:19)
- При отладке у меня всё это есть постоянно. Хочу выполняю строку исходного кода, хочу ассемблерную команду. И не надо никого никуда звать - вот оно, отлаживайся. VladislavS.(657 знак., 06.01.2022 09:19)
- Предлагаю обсудить тезисно: evgeniy1294(2071 знак., 06.01.2022 01:12)
- Забыл один важный момент, возможно самый важный. В keil и iar нет
(по крайней мере небыло ещё год назад) вменяемого рефакторинга,
т.е. именно как ide они... ну, не очень. А это важнейший компонент,
значительно облегчающий жизнь, просто embedded-проекты небольшие,
не так заметно. evgeniy1294(158 знак., 04.01.2022 22:46)
- Странно это слышать от человека, пользующегося "отладкой во тьме".
Мне лично рафакторинг по барабану - есть хорошо, нет ну х... с ним.
Так же как и автодополнения - бороться с неверными дополнениями
психологически сложнее, чем руками ввести. Понятно, что тут всё на
чистом IMHO, но как то так. Вот анализ кода это гуд. Когда IDE
говорит тебе "мальчик, ты совсем куку?", то ты либо соглашаешься
(ибо кто не без ошибок), либо осознанно идёшь на компромис в угоду
эмбедду, но видишь VladislavS.(101 знак., 05.01.2022 02:38)
- * Мне лично рафакторинг по барабану. evgeniy1294(1616 знак., 06.01.2022 02:14)
- Ужас какой-то. Нажал кнопку отлади и у тебя одновременно видно код, дизассемблированный код, регистры процессора, регистры нескольких периферийных блоков (с которыми работаешь), нужные участки памяти, содержимое переменных/массивов/структур и т.д. Подсветка того что изменилось за шаг отладки. Всё на нескольких мониторах. И не надо ни куда скакать одной кропкой и десятком команд. VladislavS.(800 знак., 06.01.2022 08:59)
- * Мне лично рафакторинг по барабану. evgeniy1294(1616 знак., 06.01.2022 02:14)
- Странно это слышать от человека, пользующегося "отладкой во тьме".
Мне лично рафакторинг по барабану - есть хорошо, нет ну х... с ним.
Так же как и автодополнения - бороться с неверными дополнениями
психологически сложнее, чем руками ввести. Понятно, что тут всё на
чистом IMHO, но как то так. Вот анализ кода это гуд. Когда IDE
говорит тебе "мальчик, ты совсем куку?", то ты либо соглашаешься
(ибо кто не без ошибок), либо осознанно идёшь на компромис в угоду
эмбедду, но видишь VladislavS.(101 знак., 05.01.2022 02:38)
- Вот когда БУДЕТ поддерживать, тогда и будем обсуждать. А пока С++20
для кортексов это только GCC. IAR это не только крутой компилятор.
Вроде смотришь листинги - ничего особенного, но работает код
быстрее. Я думаю, он учитывает особенности исполнения кода разными
ядрами (конвейеры, кэши, предвыборки и т.д.), иначе трудно
объяснить почему код выполняется быстрее. GCC делает код добротный,
агрессивно оптимизированный, но по какому-то клише, которое в целом
чуть медленнее. На VladislavS.(2480 знак., 05.01.2022 02:46)
- Выкатываем ящик коньяка Мастеру Klen'у - и будет у нас кошерный GCC
с LTO, бл. и шлюхами. Думаю, он даже парочку видеоуроков по отладке
выпустит. - Evgeny_CD(01.01.2022 22:53 - 23:37)
- GCC и без Мастера официальный от ARM в версии 10.3 есть. Все
вкусности от С++20, применимые в эмбедде, в нём уже есть и
опробованы. Но инструментарий на нём таки сильно уступает. Как и
качество кода. - VladislavS.(01.01.2022 23:38)
- В репах archlinux arm-none-eabi-gcc уже версии 11.2.0 - evgeniy1294(04.01.2022 12:47)
- Насчет качества кода это довольно спорно. GCC с правильно
примененными квалификаторами и прагмами скорее всего не проиграет
коммерческим компиляторами. Но опции надо подбирать долго и
тщательно. - Evgeny_CD(02.01.2022 00:04)
- Проверено неоднократно с осциллографом в зубах. В размере
плюс/минус то же самое. Да и размер меня обычно не сильно волнует.
А вот в скорости работы кода уступает. Уже совсем немного, но
медленней. - VladislavS.(02.01.2022 00:35)
- Я не уверен, что все знания по выжиманию всего перфоманса из C++20
доступны всем. Собственно, в этом ценность Мастеров типа Klen
состоит. - Evgeny_CD(03.01.2022 22:18)
- С++ сам по себе не даёт дополнительной производительности. Он лишь
позволяет писать проще сложные вещи. На простом С можно написать
код, который будет транслироваться в то же самое. Но писать
настолько оптимально это большой напряг. Поэтому все эти
оптимизации прячутся внутрь классов и уход на более высокий уровень
абстракции не ухудшает качество кода. Всё можно написать без
шаблонов и constexpr один раз, ну два. А на С++ компилятор делает
все это неустанно при каждой VladislavS.(571 знак., 04.01.2022 10:44 - 17:35)
- Можно подумать, обезьянок к С++ не допускают. - BlackMorda(04.01.2022 10:49)
- Порог входа сильно выше, совсем нули его не преодолеют. - VladislavS.(04.01.2022 11:20)
- Можно подумать, обезьянок к С++ не допускают. - BlackMorda(04.01.2022 10:49)
- С++ сам по себе не даёт дополнительной производительности. Он лишь
позволяет писать проще сложные вещи. На простом С можно написать
код, который будет транслироваться в то же самое. Но писать
настолько оптимально это большой напряг. Поэтому все эти
оптимизации прячутся внутрь классов и уход на более высокий уровень
абстракции не ухудшает качество кода. Всё можно написать без
шаблонов и constexpr один раз, ну два. А на С++ компилятор делает
все это неустанно при каждой VladislavS.(571 знак., 04.01.2022 10:44 - 17:35)
- Я не уверен, что все знания по выжиманию всего перфоманса из C++20
доступны всем. Собственно, в этом ценность Мастеров типа Klen
состоит. - Evgeny_CD(03.01.2022 22:18)
- Проверено неоднократно с осциллографом в зубах. В размере
плюс/минус то же самое. Да и размер меня обычно не сильно волнует.
А вот в скорости работы кода уступает. Уже совсем немного, но
медленней. - VladislavS.(02.01.2022 00:35)
- Насчет отдадки все не так просто. Освоившие дзен GDB показывают
чудеса отладки в консоли. Это не хуже и не лучше. Это просто другой
стиль отладки. - Evgeny_CD(01.01.2022 23:41)
- Извините, но мне работать надо, а не чудеса являть. - VladislavS.(02.01.2022 00:37)
- У меня в консольном gdb получается работать быстрее, чем в отладчиках ide. IAR и Keil подходят разве что для отладки чего-то низкоуровневого, да и то не очень - интерфейс не всегда удачный и по кнопкам тыкать надоедает. - evgeniy1294(04.01.2022 12:50)
- Продакшен и освоение нового инструментария надо чётко разделять.
Инвестировать в освоение надо, иначе окажешься как спец по
программированию 51 на асме в наше время. - Evgeny_CD(03.01.2022 22:20)
- Ну так инструментарий это и есть про продакшен. IDE c мощным отладчиком должна быть. Именно поэтому С++17 в продакшене, а С++20 изучается, нарабатываютя библиотеки, подтягиваются компиляторы. Про себя могу сказать, что я уже готов применять С++20, вижу где он мне поможет писать код быстрее, проще и главное надёжнее. А вот инструментарий мой к этому не готов. Есть классная связка Visual Studio + VisualGDB + Resharper, но отладка не дотягивает до тех же IAR и Keil. - VladislavS.(04.01.2022 11:18)
- Извините, но мне работать надо, а не чудеса являть. - VladislavS.(02.01.2022 00:37)
- GCC и без Мастера официальный от ARM в версии 10.3 есть. Все
вкусности от С++20, применимые в эмбедде, в нём уже есть и
опробованы. Но инструментарий на нём таки сильно уступает. Как и
качество кода. - VladislavS.(01.01.2022 23:38)
- Keil использует clang, по крайней мере под ARM, в нём все фичи
работать будут. Что касается IAR - за десять лет работы так и не
понял, зачем он нужен. На пару процентов быстрее - это конечно
здорово, но чащё всего с этим можно смирится. - evgeniy1294(04.01.2022 12:37)