【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ファイルの並べ替えが正しいかどうか?