Шпаргалка по настройке MPLAB v7.0 для написания кода под pic контроллеры на C.


Было желание написать кое-что для 12f675 на С. Asm – это для груманов. Из бесплатных для него предлагалась на сайте Microchip только лайт версия от HI-TECH Software доступная по ссылке http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en542849

Свежая версия на тот момент 9.83 была поставлена вместе с плагином, который встраивает компилер в набор Toolsuit-ов доступных в MPLAB. Все установилось, создал проект. С одним сишным файлом содержащий несколько строчек для подачи признаков жизни на лапки контроллера. Что-то вроде:


#include <pic12f675.h>
#include <stdint.h>


#define _XTAL_FREQ 4000000

static __code unsigned short __at(0x2007) configword =0x31d4 ;


void main()

{


STATUS&=~0x20; //set bank0

CMCON=7;

STATUS|=0x20; //set bank1

TRISIO=0; //set gp pins as output

ANSEL=0;

STATUS&=~0x20; //set bank0

GPIO=0xFF;

}


Проект компилился но при этом среда писала что не может загрузить COFF файл (содержит информацию для отладки под дебагером или в симуляторе). При просмотре импортированного hex файла в программаторе Pickit classic наблюдалась странная картина: код был фрагментирован — несколько байт в начале потом 0x3fff и остальная часть кода в самом конце памяти программ. Конфигурационные биты, утсанавливаемые в IDE которые должны писаться по адресу 0x2007 никак не влияли на соответствующее содержимое в hex файле.

Не стал разбираться дальше с HITECH тем более что это лайт версия. Нашел что есть такой SDCC компилятор в котором есть порты для pic-ов. Итак поехали:

  1. SDCC компилер качаем отсюда: http://sdcc.sourceforge.net/

  2. качаем gputils — это gpasm и gplink: http://gputils.sourceforge.net/

  3. качаем плагин sdcc-mplab-0.1c.exe тут http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?install%2Fsdcc-mplab или ищем поиском.

  4. Ставим.

  5. После потраченных нескольких часов все заработало. Пришлось слегка подрихтовать опции в toolsuite.

  6. Вот скрины опций:




Hosted by uCoz