Mac OS X によるPIC開発環境
WindowsでのPIC開発環境は対応ソフトも多くあり簡単に構築できますが、Mac向けのものはあまり見かけません。
そこでUNIXやLinuxで動作するソフトを使ってPICの開発環境をMax OS Xで構築してみました。
以下はそのインストール記録と動作テスト記録です。
動作を確認した環境
機種:i Book G4 14" 1GHz
OS:Mac OS X (10.3.3)
開発環境のインストール
Developer Tools(というよりgcc)が入っていないとインストールする事ができません。
akipic
私は、Windowsを使っていたときは秋月電子通商の「AKI-PICプログラマー」
を使ってPICの書き込みをしていました。
これを使えるようすると都合がよいと考えていました。
すると、Linux上で「AKI-PICプログラマー」が使えるakipicというソフトを発見しました。
このページから
akipic-0.1.8.tar.gz
をダウンロードしてください。適当なディレクトリに解凍し、
解凍してできたakipic-0.1.8に移動、あとはmakeで終了です。
% tar xzvf [somewhere]/akipic-0.1.8.tar.gz
% cd akipic-0.1.8
% make
できたakipicをパスの通ったディレクトリに移すだけです。
makeでエラーが出るときはMAKEFILEのCC=gccをCC=ccに書き換えてmakeしてみてください。
ちなみにiBookにはシリアルポートがない場合ので、USBからCOMポート変換機経由で書き込みをします。
picasm
名前の通りPIC用クロスアセンブラです。ここ
からpicasm112b.tar.gz
をとってきて適当なディレクトリに解凍し、makeするだけです。
% tar xzvf [somewhere]/picasm112b.tar.gz
% cd pic_cc/src
% make
できたpicasmはパスの通ったディレクトリに移しておきましょう。
pic_cc
PIC用のCクロスコンパイラです。これはPIC16x84専用です。これにはいろいろな派生バージョンがあるらしいのですが、このページからpic_cc-0.4.tar.gzをとってきて適当なディレクトリに解凍してmakeで終了です。これも例外なくパスの通ったディレクトリに移しておきましょう。
% tar xzvf [somewhere]/pic_cc-0.4.tar.gz
% cd picasm
% make
warningが大量にでてきますが問題ないそうです。
出来上がったpic_ccも例外なくパスの通ったディレクトリに移しておきましょう。
簡単な使い方の説明(動作テスト記録)
インストールしたソフトを使用し、
簡単な回路で動作テストをしてみました。
PICのCプログラムの書き方
pic_ccは関数の書き方がANCIのCではなくK&RのCに準拠しているため注意が必要です。
また、char型しか対応していません。
入出力は専用の関数が用意されており、pic_ccに付属していたpicio/pic_io.cをインクルードすると使用できるようになります。
pic_ioディレクトリ中のファイルは次の通りです。
- pic_io.c
- ポート入出力に関する関数
- ee_read.c
- EEPROMを読み出す関数
- ee_white.c
- EEPROMに書き込む関数
- getchar.c
- 文字列定数から1文字づつとりだす関数
私の作成した動作テスト用プログラム
pic_ccによるCプログラムのコンパイル
インクルードファイルは作成したCプログラムと同じディレクトリにコピーしてください。コンパイルするときは次のように
コマンドを入力します。
%pic_cc 作成したファイル名.c
コンパイルに成功するればNo errorsと表示されるはずです。
エラーが出たらそれに従ってください。
コンパイルに成功すると 作成したファイル名.asm と 作成したファイル名.s というファイルができています。
これらはアセンブラ用ファイルです。
picasmによるアセンブル
16f84.hを先ほど出来たと同じディレクトリにコピーしてください。そして、PIC16F84Aを使用する場合、pic_ccが作成したアセンブラ用ファイルを開き16c84.hという部分を16f84.hに書き換えます。アセンブラするにはは次のようにコマンドを入力します。
%picasm -o 作成するファイル.hex 作成したファイル名
また、pic_ccに入っていたヘッダファイルが必要な場合もありますので適時同じディレクトリに入れてください。
pic_cc/pic_libのヘッダファイル類は以下の通りです
- 16f84.h
- PIC16F84に関連するルーチン
- 16c84.h
- PIC16C84に関連するルーチン
- glibpic.h
- if文の値を比較するルーチン
- mlibpic.h
- 乗除算のルーチン
- slibpic.h
- <<,>>のルーチン
- stdio.h
- char型の定義(Cソースで使用します。char型のみを使用しているときはインクルードする必要はありません)
akipicによるPICへの書き込み
iBookにはシリアルポートがないためサン電子(SANTAC)のUSB COM Portを使ってAKI-PICプログラマーと接続します。
書き込みは次のようにコマンドを入力します。
%akipic -p /dev/cu.usbmodemUSB-COM -d 16f84a -w 書き込むファイル.hex
この方法では、イレースを行わないため上書きをするときには一度イレースしてからかきこみを行います。イレースするときは
%akipic -p /dev/cu.usbmodemUSB-COM -d 16f84a -e
と入力します。-pオプションはAKI-PICプログラマーの接続されている場所の指定ですので、環境によって異なります。