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

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

15 ответов


tech PICC всегда был надежным для меня, и у него было много лет развития.


  1. компилятор микрочипа C18: действительно самый лучший и простой в использовании. Идеально подходит для профессионального использования.
  2. HI-TECH: используется, когда микрочип не работает (это было для PIC16).
  3. CCS
  4. SourceBoost

PS: Я сам работал над семьей PIC18F25XX и PIC18F45xx, поэтому я знаю крошечный немного об этом. ;)

PS2: в случае ошибки компилятора (это произошло с США), команда микрочипов довольно реактивна, и новые версии выпускаются довольно быстро. Попробуйте найти местного реселлера, который контактирует с микрочипом, затем участвуйте в мероприятии с ними и получайте прямые контакты. Бесценный.


несколько лет назад я провел обширные исследования компилятора Hitech PICC18 и компилятора Microchip C18.

Я думаю, что большинство людей, которые решают пойти с компилятором Microchip C18 только потому, что они видят его, когда они идут на сайт микрочипа и уже знакомы с MpLab от сборки (что является ужасным IDE IMHO).

решение HiTech намного ближе к ANSI C (следовательно, код намного более переносим). С помощью C18 вы можете добавить все виды компилятора ключевые слова и ваш вынуждены управлять памятью гораздо больше.

  1. вы должны указать, какой банк ram для выделения переменных.
  2. чтобы строка const была выделена в пространство программы (вместо ОЗУ), вы должны использовать ключевое слово rom.
  3. вы не можете выделить переменные, которые больше 256 байт без редактирования сценария компоновщика.

отличное сравнение, которое идет более глубоко, можно найти здесь: http://www.xargs.com/pic/picc18-vs-c18.html

кроме того, из компилятора вам также необходимо принять во внимание IDE. Я заядлый поклонник eclipse, и поэтому мне очень понравился Hitech's HiTide по этой причине. Однако с тех пор микрочип приобрел HiTech... похоже, что они больше не поддерживают HiTide. Не думаю, что это официально... но из моего опыта работы с поддержкой HiTech... они больше не исправляют ошибки, что является реальным стыд.


Я также пробовал их компиляторы pro. Мне очень нравится эта идея. Но мой проект превысил требования Блока Auto param и не смог его использовать. Также казалось, что для компиляции требуется очень много времени, но это мог быть b/c сложности программы.


Я не использовал компилятор микрочипов, но использовал продукты HiTech в течение многих лет. Мне вообще понравился их компилятор PIC16, но их компилятор PIC18 довольно разочаровывает. Хотя я ценю, что не нужно вручную помещать все переменные в банки, правила, используемые компилятором HiTech, раздражают, причудливы и глупы. Краткая справка: чип имеет 16 256-байтовых банков переменных (*не все 256 байтов доступны во всех банках) и один указатель банка. Прямой доступ к переменной требует, чтобы был выбран правильный банк; изменение банков требует одной инструкции.

глобальные и статические ints и структуры и их массивы, размер которых колеблется от 2-255 байт, будут распределены в psect на основе каждого модуля; psect каждого модуля должен соответствовать 256-байтовой странице. Массивы байтов, а также отдельные байты идут в "большой" psect, где каждый байт, как предполагается, возможно, находится на другой странице.

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

можно объявить до 128 байтов глобальных и статических переменных "рядом". К ним можно получить доступ без переключения банка. Невозможно назначить что автоматические переменные или параметры должны быть размещены "рядом".

правила переключения банков, используемые HiTech, означают, что многие функции, даже если они никогда не используют переменные вне своего собственного модуля, будут разбрызганы инструкциями movlb (switch-bank).

Я не хочу "всеведущее поколение кода". Мне нужна возможность добавить несколько подсказок, чтобы разместить вещи разумно, определяя ключевые слова или макросы для пользовательских psects, позволяя автоматическим и локальным переменным делиться psects с другие переменные (наложение автоматических переменных / параметров в максимально возможной степени с учетом указанных банковских ограничений). Если поставщик компилятора действительно хочет быть хорошим, позвольте указателям принимать банковские квалификаторы, чтобы указатель, который когда-либо указывал бы только на вещи в определенном psect, мог храниться в 8 битах. Также банк отбор на функции и указатели на функции, чтобы указать, что определенные косвенные вызовы могут работать только с определенными функциями. Вместо указателей на функции 24 биты или необходимость работать, чтобы обеспечить непрямые функции в конечном итоге в первом 64K, поместите автоматический GOTO в первый 64K, чтобы указатели функций могли быть 16-битными. Или еще лучше, если функция "class" имеет менее 64 различных функций, используйте 8-разрядный указатель.

Я прошу слишком многого?


мы используем:CCS и это очень хорошо. Очень медленно, но работает хорошо. Во всяком случае, у меня нет никакого сравнения с другими компиляторами, поэтому могут быть лучшие варианты.


Мне не нравилось CCS, это было слишком причудливо.

SourceBoost не плохо и довольно дешево, около $ 40.

компилятор Microchip C18-лучший IMO, но очень дорогой. Тем не менее, есть бесплатное демо / студенческое издание.


в настоящее время я использую CCS и ненавижу его. Это настолько нестандартно и так много подмножества C, что это просто отстой. Я подумываю о скором переходе. Сначала я собираюсь попробовать компилятор Microchip C18, а затем я проглочу и получу HighTech, который кажется довольно солидным от просмотра пробной версии и образцов.


система IAR имеет компилятор PIC18 / IDE:IAR встроенный верстак для PIC18.


Я использую CCS в течение многих лет. Я нашел несколько ошибок, но поддержка отличная, и я могу развиваться быстрее и проще с CCS, чем с C18 или HiTec


использовать sdcc:

http://sdcc.sourceforge.net/

и не бесплатно(но бесплатно!) PIC-компилятор, mikroC-это gr8!

http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/

HTH


Я бы настоял, чтобы вы использовали компилятор C18. Он чрезвычайно прочен и очень прост в использовании. Это необходимо для профессионального развития. Это действительно зависит от размера проекта, над которым вы работаете.

начните с бесплатной / студенческой версии, и вы получите хорошее ощущение от ее использования. Если ваш проект небольшой, это может быть все, что вам нужно. Я только что закончил проект dev большого размера на PIC 18F, и я был очень доволен компилятором C18.


среду MPLAB С18 - студент


Я использую SourceBoost в течение года или около того, и я не совсем в восторге, но это было хорошо. Тем не менее, я только что завершил тест размера кода между SourceBoost 7, MCC18 и Hi-Tech C. результаты были замечательными.

для небольшой программы образца (которая включила структуры, массивы, указатели функции, указатели структуры, символы и ints) набор SB7 произвел код который был около 2/3 размера MCC18 и HTC. Я хотел определить, сколько из этого было запуском и временем выполнения накладные расходы, поэтому я добавил больше случайных вещей в образец программы, и Дельта размера показала, что SB все еще 2/3 размера других. HTC была немного меньше MCC18, но не значительно. Все оптимизации включены во всех средах.

вещи, которые мне не нравятся в SB:

  • в строке ассемблер
  • медленно компилировать & link
  • IDE только немного лучше, чем MPLAB.

то, что я вроде об этом:

  • Ну, размер кода, конечно, кажется меньше, чем у конкурентов.
  • несколько расширений языка (например, ссылки). Убивает мобильность, однако.
  • цена.
  • поддержка через форумы на самом деле довольно хорошая. Авторы часто пост.
  • автоматическое устранение неиспользуемого кода (я думаю, что эта функция замедляет процесс компиляции и компоновки)

Так как мне не нравится SB IDE, я использую Source Понимание для редактора, и это ROCKS! Утилита SB "make" также безнадежна, поэтому я использую GnuWin32 make, что абсолютно реально и бесплатно.

Так что в целом я чувствую себя немного лучше о моем выборе инструментов.

в любом случае, надеюсь, это поможет кому-то там.


MPLAB C-18 хороший, и у них есть студенческая версия, которая бесплатна. Он имеет хороший пользовательский интерфейс, который достаточно прост, чтобы не путать пользователей. Это то, что я использую.


Если вам это сойдет с рук (я бы предпочел) использовать ассемблер PIC18 с MPLAB. У этого есть преимущество быть свободным и относительно хорошо документированным наряду с тем, что он имеет достойную поддержку hardwars / debugger. Свои небольшие набор и простота инструкции привели к легкому и быстрому кодирвоанию.

Если вы настроены на c, хотя:

CCS-хороший компилятор для использования, немного багги и довольно дорогой, но также имеет хорошую отладку способности.

Microsoft Embedded Studio (или что-то в этом роде) отлично подходит, если вы уже привыкли к методологии Visual Studio 6 написания кода C. Опять же хорошая аппаратная поддержка и отличный отладчик.

Я считаю, что если вы ищете бесплатное решение, вы действительно можете получить компиляторы c для MPLAB, хотя я лично никогда не использовал их, поэтому я не могу вынести решение.