Eclipse IDE for C/C++ Developers
Eclipse c.jpg

C言語でのフリーなPIC開発環境としてSDCCとEclipse(3.2)環境を利用したいと思います。
もっと新しいEclipseでの設定は、 ->pic開発環境/Eclipse3.4

必要なもの

コンパイラ

SDCC - Small Device C Compiler
導入したのは最新版、sdcc-20080729-5199-setup.exe

アセンブラ

GNU PIC Utilities
導入したのは最新版、gputils-0.13.6.exe

Eclipse3.2/CDT3.1/SDCCプラグイン1.0

2008.7現在でSDCCプラグインに対応しているのはEclipse 3.1と書いてありますが Eclipse for SDCCで3.2ベースのインストールの実績があるので、 3.2(CDT3.1)で試してみました。

Eclipse3.2のCDTバイナリパッケージは入手が困難になっているので、Eclipse3.2本体とCDTは別々にダウンロードします。
Eclipse3.2のダウンロード→http://archive.eclipse.org/eclipse/downloads/
CDT3.1.2のダウンロード→http://download.eclipse.org/tools/cdt/releases/callisto/dist/3.1.2/
SDCCプラグインのダウンロード→http://eclipse-sdcc.sourceforge.net/

インストール

コンパイル環境の設定

SDCCとGPUTILSはそれぞれインストールすると環境変数PATHにbinフォルダが追加されます。
コマンドプロンプトからsdcc.exeとgpasm.exe実行できればOKです。

Eclipseの設定

下記、開発手順の中で設定します。

開発手順

プロジェクト作成

New(新規作成)→C Project(C プロジェクト)で普通のCプロジェクトを作成します。プロジェクトタイプはMCS51 Family(SDCC)を選択します。
MCS51 Family(SDCC)が表示されていない場合はSDCCプラグインが正常に動作していません。
Advanced Settingでプロジェクトのビルド環境を設定できますが、ここでは後で設定します。

Managed Make C Projectで新しいプロジェクトを作成します。>File > New > Project… > C > Managed Make C Project
Managed Make C Project
Select a type of projectで、MCS51 family(SDCC)を選択します。その他はデフォルトで大丈夫です。
MCS51 family(SDCC)
C/C++プロジェクトに、SDCC/include/mcs51がインクルードされたプロジェクトが出来上がれば正常です。
C/C++ Projects

プロジェクトの設定

少なくとも2か所の設定をする必要があるようです。

  1. Tool Settingsでコマンド引数とコマンドの設定
  2. Build Settingsで使用するビルダをInternal Builderに設定。

作成したプロジェクトを選択し、右クリック → Properties → C/C++ Build
Build

Tool Settings

コマンド引数の設定

SDCC CompilerSDCC Linkerのコマンド引数に、-mpic14 -p16f88 -VのようにSDCCの必須引数を追加します。
引数の追加方法はいろいろありますが、てっとり早く動作確認する場合はコマンドに直接書いてしまったほうが早いでしょう。

sdcc [-c] [-V] -m(マイコン種別) -p(デバイス名) 

必須オプション(SDCCのマニュアルを参照してください)

-m14ビットコア(PIC16F):-mpic14 16ビットコア(PIC18F):-mpic16
-pPICの種類(デバイス名)を指定します。16F88の場合は-p16f88
-V進行状況の詳しい表示(任意)

「Relase」と「Debug」の2つのコンフィグレーションがデフォルトで存在しますので、すべて変更するのを忘れないように。
コマンド引数の設定

コマンドの設定

「SDCC Assembler」コマンドを、「gpasm」にします。
アセンブラコマンドの変更

Build Settings

そのまま(External)だとmake -kで止まってしまうのでEnable Internal Builderにチェックを入れます。
gcc makeやSDCCプラグインに添付(ECLIPSE_HOME/plugins/net.sourceforge.eclipsesdcc.win32_1.0.0/os/win32/x86/)のmakeなどを使うことができれば、Externalでも実行できるかと思いますが・・・
アセンブラコマンドの変更

ソースコード作成

ソースフォルダ作成

New(新規作成)→ Source Folder
C/C++ Projectビューに表示はされませんが、実際にはフォルダができています。

ソースコード作成

New(新規作成)→C Source(Cソース)
ソースフォルダは、先に作成したソースフォルダを指定します。 拡張子.cをつけないと警告が表示されて作成できません・・・
sample.c

ビルド(hexファイル作成)

プロジェクトをビルドすると、ReleaseないしDebugフォルダにXXXX.hexが出来上がります。
出来上がったhexファイルをライタで書き込んでください。

その他気をつけること

インクルードパス

デフォルトでPICライブラリへのSDCCのインクルードは<SDCCインストールフォルダ>/SDCC/includeとなっています。
個別に追加してもいいですが、ソースコードの中でPICデバイス用のフォルダ名(pic)も含めて指定すればそのまま参照できますのでその方がいいかと思います(Eclipseは環境作り直す時にめんどいので)。

#include <pic/pic16f88.h>

参考リンク

SDCC/GPUTIL

PICマイコン開発環境 PICマイコンのプログラム開発をオープンソースのCコンパイラで
SDCCの使い方
PIC Field~ フリーCコンパイラ SDCC を使おう (Windows編)~
フリーのCコンパイラ(SDCC)でPICを使おう (サンプルソースを拝借しました:-P
C Programming with the Microchip PIC

Eclipse

Eclipse for SDCC
Getting started with SDCC +Eclipse
組込みプログラミングにEclipseを使う
連載記事「生産性向上への道 Eclipseで行うC/C++開発」


Personal Tools