Подтвердить что ты не робот

Какой лучший компилятор c для Pic18 micro

Мы начинаем новый проект, основанный на микрочипе PIC18F252. Какой лучший компилятор 'c' использовать?

4b9b3361

Ответ 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, который кажется довольно твердым от просмотра пробной версии и образцов.

Ответ 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 хорош, и у них есть бесплатная версия для студентов. Он имеет хороший пользовательский интерфейс, который достаточно прост, что он не путает пользователей. Это то, что я использую.