Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top