Свежие обсуждения
Микроконтроллеры

Ликбез по С для микроконтроллеров PIC

1 7 64

Zandy: Я погряз в этих программах, связках между CCS и MPLAB. Куча каких-то настроек. Куча файлов. Зачем все это? Как программы взаимодействуют между собой?

ПАШИК: А кто ни будь с HI-TECH.PICC работает. Не могу связать с MPLAB. При компиляции виснет.

Не могу понять, зачем что-то связывать? Есть компилятор. Ему скармливаем *.c и *.asm - получаем .obj
Их скармливаем линкеру - получаем hex. И никакой путаницы

Чтобы не кормить вручную - пишем makefile (в аттаче)
И всё, можно работать.
компилировать - make
полная перекомпиляция - make build
архивация - make archive
зачистка - make clean
программирование - make program (в приаттаченом файле этого нет)

Структура проекта:
bak - папка для архивирования
doc - здесь документация
exe - здесь hex
lst - листинги
obj - объектные файлы
src - исходники
project.mpj - файл проекта для med (это редактор)
Makefile - это мейк-файл.

И всё! Я таким макаром пишу программы для PIC, AVR, MSP, Fujitsu, 51, scenix...
Даже документацию - тоже так

Уф.

 

Пардон, аттач забыл

 

Чё-то не приаттачивается... Попробую с расширением txt...

71731.txt

 

AHTOXA: Не могу понять, зачем что-то связывать? Есть компилятор. Ему скармливаем *.c и *.asm - получаем .obj
Их скармливаем линкеру - получаем hex. И никакой путаницы

Где есть компилятор? Где линкер? Как скармливать? Путаница полнейшая!!!!!!!!!
Не могли бы поподробнее. Ликбез все-таки.

 

Max_Pinchuk: настоящий ликбез для PIC и AVR по Си это не курс о котором вы говорите, а инструкция к компиляторам http://www.mikroe.com/en/tools/easypic4/
Скачайте в .pdf - это настольная книга для новичка !

А нельзя ли ссылочку на саму настольную книгу, а не на сайт, где эту книгу хрен найдешь еще.

 

Max_Pinchuk: Есть кнопка "отбилдить все" ! жмите.
Где эта кнопка? В MPLABе или на бачке унитаза?

Зачем ликбез превращать в "пикировку" специалистов? Как хорошо было в ликбезе по ПИКАМ!!!
Мы здесь вообще что обсуждаем? Я почему-то думал, что CCS PCWH и ее связку с MPLABом. Если это неправильный выбор для начинающего, скажите сразу - не буду тратить время!

gan: MPLab->Project wizard->PIC16F877->ActiveToolsuite:CCS C Compiler..->ProjectName:любой, ProjectDirectory:путь к примеру (например C:\CCS_examples\BitTest), добавить в проект BitTest.c, а дальше как обычно.
Zandy: Где работать? В PIC C или в MPLAB? В MPLab, конечно. Всё аналогично асму: компиляция F10, проход по шагам, точки останова, стимулы. Не парьтесь с переводами пока, всё проще, чем вы думаете.

А что же делать в PIC C? В нем то проект надо создавать? Или вообще не открывать эту прогу, а пользоваться только MPLAB с подсоединенным компилятором от PIC C?

Max_Pinchuk: либо .hex или .cof "скармливаете" PROTEUS -у и отлаживаете в нем.
Какая же отладка с .hexом. Это не отладка получается, а проверка работоспособности.

 

Zandy: Как хорошо было в ликбезе по ПИКАМ!!!

Так вернитесь туда и не обращайте внимание на посты Пинчука. Ведь это так просто. Скоро мы решим эту проблему. Пока Andy где-то в Греции тусуется. Завтра попробую по этому вопросу связаться с ним по ACQ.

 

Max_Pinchuk: стукануть - этож такой кайф

Да я только этим и живу! Кайф превыше всего!

 

Max_Pinchuk: Лекарство к компилятору на страничке известного курса внизу.

Пинчук, мы пока не договорились, но, думаю, что договоримся. Смотрите тут: http://pro-radio.ru/controllers/3407-14/

 

Zandy: Где есть компилятор? Где линкер? Как скармливать? Путаница полнейшая!!!!!!!!!
Не могли бы поподробнее. Ликбез все-таки.

Уф, поставил -таки CCS Больше всего намучился с работой клавиатурного ниньзи

Смотрим. В папке PICC - Ccsc.exe. Это, как я понял, и компилятор, и линкер.

Посмотрим, что он умеет:


Ccsc.exe /?

Открывается хелп с перечнем ключей командной строки.
(цитировать не буду, там много)

Смотрим, что есть полезного...


+FM Select PCM (14 bit)

- выбор семейства пиков (вроде такое?)


+LSxxx MPASM format list file

- должно быть привычнее...


+DF COFF Debug file

Здесь я не уверен, что там нужно для протеуса...


I="..." Set include directory search path,

- где лежат заголовочные файлы


+STDOUT Outputs errors to STDOUT (for use with third party editors)

- это для редактора, если надо. Чтобы показывал на какой строке ошибка

Вот, пока хватит.

Теперь надо что-нибудь откомпилировать...

Берём пример из папки PICC\Examples\, любой. Например, EX_COMP.C
Копируем его в любую папку (TEMP)
Даём команду:


D:\PICC\Ccsc.exe +FM +LSlst +DF I="D:\PICC\Devices\" +STDOUT EX_COMP.C

Всё, откомпилировали

Следующий шаг - проект из нескольких файлов...