понедельник, 2 апреля 2012 г.

Программирование PIC24 под Linux

Среда разработки

Для программирования микроконтроллеров есть несколько Open Source и Freeware IDE, которые готовы запуститься под Linux:
PikDev
Piklab
MPLAB X
Но не все так хорошо, как кажется на первый  взгляд.

PikDev и Piklab требуют для своей работы KDE и Qt3. Кроме того все три среды поставляются без компиляторов. Следовательно необходимо найти линуксовый компилятор языка C для микроконтроллера.

Компилятор
Линуксовые компиляторы для контроллеров есть:
Small Device C Compiler
CCS C Compiler
Первый из них - Open Source проект. Но к сожалению он не поддерживает контроллеры семейства PIC24.

Второй - проприетарный. Версия под Linux есть. Но кроме этого есть виндовая демо версия с ограничением на 45 дней. Как раз ее и можно использовать для небольшого проекта.

Запуск под Linux
Для работы с виндовой версией компилятора CCS C решил использовать MPLAB 8.83. Эта среда бесплатна, легко доступна и работает под Wine. Сам компилятор также успешно запускается под Wine.

Единственная проблема заключается в прошивке контроллера.
Для прошивки используется программатор PICkit 2. Драйверов под Linux для него нет. Следовательно Wine никак не сможет его "увидеть". Получается MPLAB позволяет собирать программы, но не осуществляет прошивку.

Прошивка

Ситуацию спасает Freeware программа pk2cmd. Она позволяет работать с PICkit напрямую средствами libusb. Причем эта программа поставляется в виде бинарников как под Windows, так и под Linux. 

Windows бинарники под Wine работать не захотели.

Скачать эту программу можно либо с официального сайта:

Либо отсюда:

Для работы с Pickit2 необходимо добавить правило для udev:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", SYSFS{idVendor}=="04d8" , SYSFS{idProduct}=="0033", MODE="0666"
Команды для работы с PICkit следующие.

Получить информацию о подключенном устройстве
pk2cmd -PPIC24HJ256GP206 -I
Прошить устройство HEX файлом
pk2cmd -PPIC24HJ256GP206 -W -K -Q -M -F planar_el.hex
Подать напряжение на выход Vdd (запуск)
pk2cmd -PPIC24HJ256GP206 -R -W
Снять напряжение с выхода Vdd (останов)
pk2cmd -PPIC24HJ256GP206
Ключ -W означает питание от внешнего источника. Если контроллер питается от самого PICkit надо использовать ключ -T.

Замечания

1. На самом деле можно обойтись без IDE MPLAB. Компилятор CCS C может собрать бинарник и сгенерировать HEX файл, который принимает на вход pk2cmd.

В моем случае сборка происходит по команде:
wine "C:\Program Files\PICC\Ccsc.exe" +FD "planar_el.c" +DF +LN +T +A +M +Z +Y=9 +EA

2. Среда разработки MPLAB X поставляется с ассемблером. Поэтому если не ставится задача компиляции C кода, она вполне подойдет для работы.

Ссылки

http://pikdev.free.fr - среда разработки PikDev
http://piklab.sourceforge.net/download.php - среда разработки Piklab
http://sdcc.sourceforge.net - SDCC компилятор для микроконтроллеров
http://gputils.sourceforge.net - ассемблер для микроконтроллеров
https://halfgeek.org/wiki/Pk2cmd - команды для работы с PICkit 2 из под pk2cmd

Комментариев нет:

Отправить комментарий