Keil против GCC для ARM7?

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

Ответы

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Я бы также добавил, что gcc и pedantic вытрясут предупреждения и ошибки в вашем коде намного лучше, чем наша (по общему признанию, древняя) версия Киля.

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

FYI, если ваш проект будет использовать RTOS Keil, и у вас есть какие-либо вопросы по этому поводу, исходный код доступен для покупки.