Кейл против GCC для ARM7? - PullRequest
       50

Кейл против GCC для ARM7?

14 голосов
/ 04 августа 2009

Как Keil сравнивается с GCC для разработки ARM7? Я нахожусь в процессе выбора hw консультантов для проекта среднего размера, некоторые используют keil, а некоторые используют gcc. Я хотел бы знать, какие ошибки связаны с тем или иным вариантом ...

Ответы [ 5 ]

8 голосов
/ 04 августа 2009

Существует очень мало различий между ними с точки зрения кодирования / разработки. Единственное, что я думаю, вы должны учитывать, это не только для этих компиляторов. Техническое обслуживание

  • Сможете ли вы поддерживать программное обеспечение, если у вас нет доступа к компилятор Keil или это будет незначительные расходы?
  • Кроме того, что поддерживает debughardware / JTAG и сколько будет стоить, если вам понадобится получить?
  • Сколько будет стоить если вам нужно перейти с одного компилятора другому компилятору из-за необходимости сменить разработчиков позже?

Если вы не очень чувствительны к затратам, я думаю, что реальный вопрос в том, кто сделает лучшую работу, поскольку компилятор будет незначительной проблемой.

5 голосов
/ 21 ноября 2011

Должна быть возможность структурировать ваш код, чтобы использовать оба компилятора. Атрибуты типа «упакованные» могут быть макросов, поэтому код подходит для обоих. Переместите сведения об оборудовании на более низкие уровни и настройте карты оборудования во время выполнения, а не во время компиляции. Если у вас должны быть отдельные версии кода для Kiel и GCC, поместите их в отдельные файлы и настройте, который используется с GCC make или файлом проекта Kiel.

Одна проблема, которую мне еще предстоит решить, - это ассемблерный код. Киль использует armasm, а gcc использует as. Кажется, они имеют очень разные форматы исходного кода. Еще одна причина избегать ассемблера, если можете.

Преимущество использования GCC заключается в том, что вы можете ориентироваться на платформы, отличные от ARM, что идеально подходит для имитации вашего приложения на платформе с гораздо лучшими инструментами разработки (например, valgrind под x86 linux). Фактически, это подход, который должен использовать каждое ARM-ориентированное приложение. Сначала разработайте на x86, затем перенесите на ARM.

Есть также стоимость того, чтобы оставаться в курсе с Килем. Одно место, которое я знаю, застряло на RVDK 2.1 (2002?), Потому что стоимость обновления до последней версии для трех разработчиков непомерно высока.

Я бы также добавил, что gcc & pedantic вытряхнет предупреждения и ошибки в вашем коде намного лучше, чем наша (предположительно древняя) версия Kiel.

Киль может предоставить более жесткий код ARM, поэтому сохраняйте его для выполнения целевых сборок. В противном случае используйте GCC.

4 голосов
/ 04 августа 2009

Если я правильно помню, Киль теперь принадлежит ARM. Компиляторы ARM лучше день и ночь, чем gcc, для создания хорошего кода. Кажется, я помню Кейла, включая уменьшенную, бесплатную или любую другую версию rvct. Поэтому мой вопрос заключается в том, чтобы иметь более быстрый, чистый, лучший код, который стоит использовать в коммерческих целях, когда gcc широко используется? Я бы пошел с gcc, если вы не находитесь в ситуации снижения производительности и не хотите мысленно переводить всю информацию на основе gcc, свободно доступную в сети, к вашим коммерческим инструментам и обратно. В общем, переход к gcc - это, вероятно, лучший путь, при условии, что за окном поиска в Google для Киля, вероятно, имеется масса информации, но объем знаний и информации для решений на основе gcc скрывает это.

Если консультанты используют один инструмент, чтобы выполнить начальную работу по проекту для вас, а затем в конце они передают работу, вы, вероятно, захотите использовать решение на основе gcc (это не означает, например, vxworks gcc, или даже исходный код gcc, но универсальное решение gcc), потому что, без сомнения, вам или кому-то еще, кого вы нанимаете, придется взять эту массу и работать с ней, а с помощью gcc вы с большей вероятностью найдете кого-то готового и способного.

1 голос
/ 11 августа 2009

Мы используем платформу Keil и очень довольны ее производительностью и оптимизацией. Я провел несколько стандартных тестов пару лет назад, и они были довольно хорошими. Еще одно соображение - поддержка, и до сих пор у Кейла было очень хорошее время отклика и относительно хорошие отзывы по некоторым сложным вопросам.

К вашему сведению, если ваш проект будет использовать ОСРВ Keil и у вас возникнут какие-либо вопросы, исходный код доступен для покупки.

1 голос
/ 04 августа 2009

Основным преимуществом коммерческого решения является поддержка меня, если вы сталкиваетесь с проблемами с компилятором или библиотеками.
С открытым исходным кодом хорошо, когда вы используете оборудование основного потока (в случае gcc = x86). Большинство проблем компилятора или библиотек, как правило, будут исправлены сообществом очень скоро.
Если вы разрабатываете на (возможно, экзотической) встроенной платформе, вы скоро почувствуете себя одиноко, если у вас возникнут проблемы с цепочкой инструментов.

...