Шпаргалка по настройке 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-ов. Итак поехали:
SDCC компилер качаем отсюда: http://sdcc.sourceforge.net/
качаем gputils — это gpasm и gplink: http://gputils.sourceforge.net/
качаем плагин sdcc-mplab-0.1c.exe тут http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?install%2Fsdcc-mplab или ищем поиском.
Ставим.
После потраченных нескольких часов все заработало. Пришлось слегка подрихтовать опции в toolsuite.
Вот скрины опций: