**Eclipse IDE for C/C++ Developers**\\ [[http://www.eclipse.org/|{{http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg?80|Eclipse}}]] [[http://www.eclipse.org/downloads/|{{http://www.eclipse.org/downloads/images/c.jpg?42}}]]\\ C言語でのフリーなPIC開発環境としてSDCCとEclipse(3.2)環境を利用したいと思います。\\ もっと新しいEclipseでの設定は、 [[pic開発環境:Eclipse3.4|->pic開発環境/Eclipse3.4]]\\ ====== 必要なもの ====== === コンパイラ === [[http://sdcc.sourceforge.net/|SDCC - Small Device C Compiler]]\\ 導入したのは最新版、sdcc-20080729-5199-setup.exe === アセンブラ === [[http://gputils.sourceforge.net/|GNU PIC Utilities]]\\ 導入したのは最新版、gputils-0.13.6.exe === Eclipse3.2/CDT3.1/SDCCプラグイン1.0 === 2008.7現在でSDCCプラグインに対応しているのはEclipse 3.1と書いてありますが [[http://mcuprogramming.com/blog/2006/12/17/eclipse-for-sdcc/|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\\ {{:pic開発環境:project01.jpg?100|Managed Make C Project}}\\ Select a type of projectで、MCS51 family(SDCC)を選択します。その他はデフォルトで大丈夫です。\\ {{:pic開発環境:project02.jpg?100|MCS51 family(SDCC)}}\\ C/C++プロジェクトに、SDCC/include/mcs51がインクルードされたプロジェクトが出来上がれば正常です。\\ {{:pic開発環境:project03.jpg?100|C/C++ Projects}}\\ ===== プロジェクトの設定 ===== 少なくとも2か所の設定をする必要があるようです。\\ - Tool Settingsでコマンド引数とコマンドの設定 - Build Settingsで使用するビルダをInternal Builderに設定。 作成したプロジェクトを選択し、右クリック -> Properties -> C/C++ Build\\ {{:pic開発環境:prop01.jpg?100|Build}} === Tool Settings === == コマンド引数の設定 == **SDCC Compiler**と**SDCC Linker**のコマンド引数に、-mpic14 -p16f88 -VのようにSDCCの必須引数を追加します。\\ 引数の追加方法はいろいろありますが、てっとり早く動作確認する場合はコマンドに直接書いてしまったほうが早いでしょう。\\ sdcc [-c] [-V] -m(マイコン種別) -p(デバイス名) 必須オプション(SDCCのマニュアルを参照してください) |-m|14ビットコア(PIC16F):-mpic14 16ビットコア(PIC18F):-mpic16| |-p|PICの種類(デバイス名)を指定します。16F88の場合は-p16f88| |-V|進行状況の詳しい表示(任意) | 「Relase」と「Debug」の2つのコンフィグレーションがデフォルトで存在しますので、すべて変更するのを忘れないように。\\ {{:pic開発環境:prop02.jpg?100|コマンド引数の設定}} == コマンドの設定 == 「SDCC Assembler」コマンドを、「gpasm」にします。\\ {{:pic開発環境:prop03.jpg?100|アセンブラコマンドの変更}} === 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でも実行できるかと思いますが・・・\\ {{:pic開発環境:prop03.jpg?100|アセンブラコマンドの変更}} ===== ソースコード作成 ===== ==== ソースフォルダ作成 ==== New(新規作成)-> Source Folder\\ C/C++ Projectビューに表示はされませんが、実際にはフォルダができています。 ==== ソースコード作成 ==== New(新規作成)->C Source(Cソース)\\ ソースフォルダは、先に作成したソースフォルダを指定します。 拡張子.cをつけないと警告が表示されて作成できません・・・\\ {{:pic開発環境:sample.c|}} ==== ビルド(hexファイル作成) ==== プロジェクトをビルドすると、ReleaseないしDebugフォルダにXXXX.hexが出来上がります。\\ 出来上がったhexファイルをライタで書き込んでください。\\ ====== その他気をつけること ====== === インクルードパス === デフォルトでPICライブラリへのSDCCのインクルードは//<SDCCインストールフォルダ>///SDCC/includeとなっています。\\ 個別に追加してもいいですが、ソースコードの中でPICデバイス用のフォルダ名(pic)も含めて指定すればそのまま参照できますのでその方がいいかと思います(Eclipseは環境作り直す時にめんどいので)。 #include ---- ====== 参考リンク ====== === SDCC/GPUTIL === [[http://shino.pos.to/eda/pic.html|PICマイコン開発環境]] PICマイコンのプログラム開発をオープンソースのCコンパイラで \\ [[http://xenopusq.hp.infoseek.co.jp/pic/sdcc.html|SDCCの使い方]]\\ [[http://homepage3.nifty.com/~masumoto/embed/pic/index.html|PIC Field]]~ フリーCコンパイラ SDCC を使おう (Windows編)~\\ [[http://www.welcome.mech.nagasaki-u.ac.jp/gs400e/pic_sdcc/index.htm|フリーのCコンパイラ(SDCC)でPICを使おう]] (サンプルソースを拝借しました:-P)\\ [[http://tutor.al-williams.com/picc1.htm| C Programming with the Microchip PIC]]\\ === Eclipse === [[http://mcuprogramming.com/blog/2006/12/17/eclipse-for-sdcc/|Eclipse for SDCC]]\\ [[http://mihirknows.blogspot.com/2007/10/installing-sdcc-under-eclipse.html|Getting started with SDCC +Eclipse]]\\ [[http://adsp2191.hp.infoseek.co.jp/misc/015_eclipse.shtml|組込みプログラミングにEclipseを使う]]\\ [[http://monoist.atmarkit.co.jp/fembedded/index/eclipseccplusplus.html|連載記事「生産性向上への道 Eclipseで行うC/C++開発」]]\\ \\