NetBSD は 1.6.2 で確認しました。
実は、NetBSDの pkgsrc にも sdcc があります。さっすがー。
ですが、折角なので最新ソースを cvsでゲットして同様にPIC16F84に対応させてビルドしてみました。
configureスクリプトを実行させるいつものパターンなんですが、gmake install でコケました。
ちょっとここで注意なんですが、make じゃなくて gmake じゃないと通らないんでお気をつけて..
で、追うのがいやだったんですが(笑)、PC-UNIXでも cpや、findのオプションの違いがあって
どうやらそれが原因であることが分かりました。NetBSD の cp、find では存在しない
オプションを使ってて怒られていました。cp は -u 、find は -maxdepthがそれです。
ここを適当に修正して、無事インストールもできました。
個人的には、両オプションとも対応しているものと思っていたがそうじゃなかった。ちょっと
痛かった。
gputilsをインストールしたら headerディレクトリ下にPICデバイスの
インクルードファイル(p16f84.incなど..)がたくさんコピーされますが、このファイルを
利用して、Cのヘッダファイル(pic16f84.hなど..)を作成します。
作成するのは、sdcc/support/scripts/inc2h.pl です。
このPerlスクリプトはデフォルトで gputilsが/usr/share/gputilsにインストール
されているとして処理します。自分でスクリプト中のパスを変更すればいいだけなんですが、
面倒なら、最初から configure でインストール先を指定しておいた方が楽です。
同様に sdcc も /usr/share/sdcc にしておいた方がいいでしょう。
% cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/sdcc login |
% ./configure --prefix=/usr/share |
cp -r -u build/* /usr/share/sdcc/lib
で怒られちゃった。 -u オプションなんか無いってことだ.
cp は環境によってオプションが違うので、
Linuxを想定しているようなら、BSD系にはないオプションだってある。
man cp してみよう。NetBSD 1.6.2 にはもちろん -u はない。
エラーは具体的に以下の2個所だ。(*) 2004/12/25時点のソースです。
/usr/bin/install -c -d /usr/share/sdcc/doc/aslink |
やりたいことはdoc/ 以下のファイルをコピーしただけのようだ。
拡張子は, txt , lyx しかないんで、
cp doc/*.txt /usr/share/sdcc/doc/aslink
としてお茶を濁そう;-P
cp doc/*.lyx /usr/share/sdcc/doc/aslink
で、これを操作するファイルを探すとしよう
find . -name "Makefile" | xargs grep "maxdepth" |
mkdir -p /usr/share/sdcc/lib/src |
これも cp の -uオプションを使用していそうな場所を同様に探して見る。 さらに手抜きだが、
find . -name "Makefile" | xargs grep -n "\-u" |
これで gmake install が通ってインストールが完了する。
手っ取り早くサンプルソースで確認してみましょう。
すごく手抜いてるソースですが、確認ということで...
sdccに gpasm, gplink まで通しもらって foo.hex を得ます。
リンカスクリプトは 16f84a.lkrをそのまま使用します。別途用意はしていません。
% sdcc -V -mpic14 -p16f84a foo.c |
また、自分のマシンは IBM ThinkPad X21 なので 232Cコネクタがありません。USB
からシリアル変換するしかないのですが、私はIO DATA の USB-RSAQ2
を使用しました。
幸いにも NetBSD 1.6.2 ではUSB-RSAQ2に対応済みでした。スゲーぞぉ。
Dec 21 01:00:41 hostname /netbsd: uplcom0: at uhub1 port 1 (addr 3) disconnected |
% su |
% tar zxvf akipic-0.1.8.tar.gz |
% /usr/local/bin/akipic -p /dev/ttyU0 -d 16f84a -w foo.hex |
2004/12/29
Copyright(C) 2004 masu, All rights
reserved.
massun.masumoto@nifty.ne.jp