Мы начинаем новый проект, основанный на микрочипе PIC18F252. Какой лучший компилятор 'c' использовать?
Какой лучший компилятор c для Pic18 micro
Ответ 1
tech PICC всегда был надежным для меня, и у него было многолетнее развитие.
Ответ 2
- Компилятор Microchip C18: действительно самый лучший и простой в использовании. Идеально подходит для профессионального использования.
- HI-TECH: Используется, когда Microchip не работает (это было для PIC16).
- CCS
- SourceBoost
PS: Я сам работал над семейством PIC18F25XX и PIC18F45xx, поэтому я немного разбираюсь в этом.;)
PS2: В случае ошибки компилятора (это случилось с нами) команда Microchip довольно реактивна, и новые версии выпущены довольно быстро. Попробуйте найти локального реселлера, который имеет контакт с Microchip, а затем участвовать в мероприятии с ними и получать прямые контакты. Бесценный.
Ответ 3
Я провел обширные исследования компилятора Hitech PICC18 и компилятора Microchip C18 несколько лет назад.
Я думаю, что большинство людей, которые решили пойти с компилятором Microchip C18 только потому, что видят это, когда они идут на сайт микрочипа, и уже знакомы с MpLab от сборки (что является ужасной IDE IMHO).
Решение HiTech намного ближе к ANSI C (поэтому код гораздо более переносимый). С C18 вы добавляете все виды ключевых слов для компилятора, и вы вынуждены управлять памятью намного больше.
- Вы должны указать, какой банк ram для распределения переменных.
- Чтобы назначить константную строку для Программного пространства (вместо ram), вы должны использовать ключевое слово rom.
- Вы не можете выделять переменные размером более 256 байтов без редактирования компоновщика script.
Отличное сравнение, которое можно найти более подробно, можно найти здесь: http://www.xargs.com/pic/picc18-vs-c18.html
Кроме компилятора, вам также необходимо учитывать IDE. По этой причине я очень любил HiTech HiTide. Однако, поскольку Microchip приобрел HiTech... кажется, что они больше не поддерживают HiTide. Я не думаю, что это официально... но из моего опыта поддержки HiTech... они больше не исправляют ошибки, что является настоящим позором.
Я также пробовал их компиляторы. Мне очень нравится эта идея. Но мой проект превысил требования к автоматическому параметрическому блоку и не смог его использовать. Похоже, что он слишком долго компилировал verrrryyy, но это могло быть b/c сложности программы.
Ответ 4
Я не использовал компилятор Microchip, но уже много лет использую продукты HiTech. Мне вообще понравился их компилятор PIC16, но найти их компилятор PIC18 довольно расстраивает. Хотя я считаю, что мне не нужно переносить все переменные в банки, правила, используемые компилятором HiTech, являются раздражающими, причудливыми и тупыми. Краткая история: чип имеет 16 256-байтных банков переменных (* не все 256 байт доступны во всех банках) и один банковский указатель. Прямой доступ к переменной требует, чтобы был выбран правильный банк; изменение банков принимает одну инструкцию.
Глобальные и статические ints и structs и их массивы, размер которых варьируется от 2 до 255 байт, будут распределяться в psect на основе каждого модуля; каждый модуль psect должен соответствовать 256-байтной странице. Массивы байтов, а также отдельные байты идут в "большом" пэде, где предполагается, что каждый байт находится на другой странице.
Все автоматические переменные и параметры во всей программе должны входить в 256-байтовую страницу (они назначаются статически во время соединения). Компилятор делает оверлейные переменные, которые никогда не живут одновременно, но предполагает, что любой вызов указателя функции с конкретной сигнатурой может вызывать любую функцию, адрес которой берется и которая имеет эту подпись.
Можно объявить глобальные и статические переменные размером до 128 байт, которые будут "близки". Доступ к ним возможен без банковского переключения. Невозможно указать, что автоматические переменные или параметры располагаются "рядом".
Правила коммутации банков, используемые HiTech, означают, что многие функции, даже если они никогда не используют какие-либо переменные за пределами их собственного модуля, будут посыпаны инструкциями movlb (switch-bank).
Я не хочу "генерировать всезнающий код". Мне нужна возможность добавить несколько советов, чтобы поместить вещи разумно, определяя ключевые слова или макросы для пользовательских psects, позволяя автоматическим и локальным переменным совместно использовать psect с другими переменными (накладывая автоматические переменные/параметры, насколько это возможно, учитывая указанные банковские ограничения). Если поставщик компилятора действительно хочет быть хорошим, разрешите указателям принимать квалификаторы банков, так что указатель, который будет указывать только на вещи в определенном пэде, может быть сохранен в 8 бит. Аналогичным образом, разрешите квалификаторы банков по функциям и указателям функций указать, что определенные косвенные вызовы могут работать только с определенными функциями. Вместо того, чтобы делать указатели на функции 24 бита или должны работать, чтобы гарантировать, что косвенные функции заканчиваются в первом 64K, установите автоматический GOTO в первые 64K, так что указатели функций могут быть 16-битными. Или еще лучше, если функция 'class' имеет менее 64 различных функций, используйте 8-битный указатель.
Я слишком много спрашиваю?
Ответ 5
Мы используем CCS, и это довольно хорошо. Очень медленно, но он работает хорошо. Во всяком случае, я не имею никакого сравнения с другими компиляторами, поэтому могут быть лучшие варианты.
Ответ 6
Мне не нравилось CCS, это было слишком странно.
SourceBoost неплох и довольно дешев, около £ 40.
Компилятор Microchip C18 является лучшим IMO, но очень дорогим. Однако есть бесплатное демо/студенческое издание.
Ответ 7
В настоящее время я использую CCS и ненавижу его. Это так нестандартно и так много подмножества C, что это просто отстой. Я скоро займусь переключением. Сначала я попытаюсь выполнить компилятор Microchip C18, а затем я сильно заглочу и получаю HighTech, который кажется довольно твердым от просмотра пробной версии и образцов.
Ответ 8
использовать sdcc:
и для несвободного (но бесплатного!) PIC-компилятора mikroC является gr8!
http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/
НТН
Ответ 9
IAR System имеет компилятор /IDE PIC18: IAR Embedded Workbench для PIC18.
Ответ 10
Я использую CCS уже много лет. Я нашел несколько ошибок, но поддержка там велика, и я могу быстрее и быстрее развиваться с помощью CCS, чем с C18 или HiTec
Ответ 11
Я бы настаивал на том, что вы используете компилятор C18. Он чрезвычайно прочен и очень прост в использовании. Это должно быть для профессионального развития. Это действительно зависит от размера проекта, над которым вы работаете.
Начните с бесплатного/студенческого издания, и вы получите хорошее представление о его использовании. Если ваш проект невелик, это может быть все, что вам нужно. Я только что закончил проект размера большого размера на PIC 18F, и я был очень доволен компилятором C18.
Ответ 12
MPLAB C18 - Студент
Ответ 13
Я использую SourceBoost в течение года или около того, и я не совсем в восторге, но все в порядке. Тем не менее, я только что завершил проверку размера кода между SourceBoost 7, MCC18 и Hi-Tech C. Результаты были замечательными.
Для небольшой примерной программы (которая включала структуры, массивы, указатели на функции, указатели на структуру, символы и ints) набор SB7 создавал код, который составлял около 2/3 размера MCC18 и HTC. Я хотел рассказать о том, сколько из них было начальным и начальным, поэтому я добавил более случайные вещи в примерную программу, а дельта размера показала, что SB все еще на 2/3 больше остальных. HTC немного меньше MCC18, но не значительно. Все оптимизации включены во всех средах.
То, что мне не нравится в SB, это:
- ограниченный встроенный ассемблер
- медленно компилировать и связывать
- IDE немного лучше, чем MPLAB.
То, что мне нравится в этом:
- Ну, размер кода кажется меньше, чем конкуренция.
- Несколько расширений языка (например, ссылки). Отмечает мобильность, однако.
- Цена.
- Поддержка через форумы на самом деле очень хорошая. Авторы часто публикуют сообщения.
- Автоматическое удаление неиспользуемого кода (я думаю, эта функция замедляет компиляцию и ссылку)
Так как мне не нравится SB IDE, я использую Source Insight для редактора и его ROCKS! Утилита SB "make" также безнадежна, поэтому я использую GnuWin32 make, что является абсолютно реальной сделкой и бесплатной.
Итак, в целом я чувствую себя немного лучше о выборе инструментов.
В любом случае, надеюсь, что это поможет кому-то там.
Ответ 14
Если вам это удастся (мое предпочтение было бы), используйте ассемблер PIC18 с MPLAB. Он имеет то преимущество, что он свободен и релятивистски хорошо документирован наряду с тем, что он имеет достойную поддержку жестких дисков/отладчиков. Его небольшой набор инструкций и простота привели к простому и быстрому кодированию.
Если вы настроены на c, хотя:
CCS - хороший компилятор для использования, немного багги и довольно дорогой, но также имеет хорошие возможности для отладки.
Microsoft Embedded Studio (или что-то в этом роде) отлично, если вы уже привыкли к методологии написания кода c Visual Studio 6. Снова хорошая аппаратная поддержка и отличный отладчик.
Я считаю, что если вы ищете бесплатное решение, вы действительно можете получить компиляторы c для MPLAB, хотя лично я никогда не использовал их, поэтому не могу судить.
Ответ 15
MPLAB C-18 хорош, и у них есть бесплатная версия для студентов. Он имеет хороший пользовательский интерфейс, который достаточно прост, что он не путает пользователей. Это то, что я использую.