【PICmonをMPLABでビルド】
hidmon-0814.zipから
\hexfiles Hexファイル照合用
boot.asm
flash.asm
hidmon.asm
usb.asm
usb_desc.asm
vectors.asm
boot.inc
boot_if.inc
fuse.inc
hidcmd.inc
io_cfg.inc
P18F2550.INC は無くてもMPLABOC:\Program Files\Microchip\MPASM Suiteにパスが通っているようです。
P18F4550.INC は将来用
p18fxxxx.inc
usb.inc
usb.inc
usb_defs.inc
usb_desc.inc
sd18f2550-0000.lkr
を準備します。


ソースファイルを登録します。


準備した「.asm」ファイルを選択します。

このとき1つずつ順番に選択登録した方がよいかも知れません。
理由は後ほど・・・。

「.asm」ファイルが登録できました。


今度はリンカーを登録します。


選択登録します。


リンカーが登録できました。


先ずはビルドします。


うーーーんエラーが出てしまった。


エラー項目をダブルクリックしてみます。


エジターが開きます。
「VECT」・・・何だろう??


ヘッダーファイルを登録してみます。


「boot.inc」を選択します。


「boot.inc」をダブルクリックします。


これが原因のようです。


オマジナイを追加してみました。


ビルドしてみます。


エラーは無くなりました。


プロジェクトを一旦終了します。


「$PICmon.hex」ファイルが出来ています。


「$FC.bat」と「FC.txt」という小道具を作成します。

「FC.txt」は自動作成されるのでここで用意する必要は無かった。

内容はこれだけです。
fc hexfiles\bootloader-0000.hex $PICmon.hex > $FC.txt
pause


「FC.txt」を実行します。


かなり相違しているようです。



「Makefile」ファイルの中を見てみると。



「.asm」ファイルの登録順序が違うようです。

old new
file_000=vectors.asm file_000=boot.asm
file_001=boot.asm file_001=usb.asm
file_002=flash.asm file_002=usb_desc.asm
file_003=hidmon.asm file_003=vectors.asm
file_004=usb.asm file_004=flash.asm
file_005=usb_desc.asm file_005=hidmon.asm

「Makefile」ファイルに合わせてみました。


ビルドしてみます。


「$PICmon.hex」ファイルが出来ています。


プロジェクトを一旦終了します。


「FC.txt」を実行します。


万歳!一致しました。


とりあえずHexファイルは一致したようです。
.asmファイルの並べ替えでコンパイル(アセンブリ)順序が変わるようです。
prjectウィンドウはabc順にソートされて表示しているようです。



後記:
MakefileやLinkerの機能や使い方は全くわかっていません。
MPLABもよくわかっていません。
#define VECT 0x000000が正しいかどうか?
.asmファイルの並べ替えが正しいかどうか?