【PICmonをMPLABでビルド】
画像ファイル数が77個容量が2.5MB有ります。
MPLAB IDE(v8.40)は相変わらずユーザー アカウント名に漢字が含まれると起動しない。
フォルダ名に漢字が含まれても起動しない。
プロジェクト名に漢字を含むのはOKのようです。
既存のプロジェクトにはユーザー名に漢字が含まれてもアクセスはできるみたい。

「Hide」というユーザー アカウント名です。


漢字を含まないユーザー アカウントから起動します。

空プロジェクトウィンドウです。



プロジェクトを新規作成します。



プロジェクト名「A」
フォルダ名「C:\Aprj」としました。




出来上がったプロジェクトファイルです。



デバイスを選択します。


デバイス変更が必要無ければ「OK」


デバイス変更が必要ならば目的デバイスを選択します。


プロジェクトウィンドウを開きます。


プロジェクトウィンドウが開きました。


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



漢字が含まれるユーザー アカウントに切り替える。


MPLAB IDE(v8.40)は相変わらずユーザー名に漢字が含まれると起動しない。


既存のプロジェクトにはユーザー名に漢字が含まれてもアクセスはできるみたい。
つまりA.Prjは漢字が含まれたユーザー名からのマスターになりそうです。
そこで先程作った「A」プロジェクトをダブルクリックします。


「A」プロジェクトが開きました。


名前をつけて保存します。


「$PICmon」という名前にしました。


「$PICmon」というプロジェクトファイルが出来ました。


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


【番外実験1】漢字を含むプロジェクト名は可能か?


【番外実験1】出来ました!!
但しMCWは漢字が化け字になっています。(A漢字.mcw)

練習終了です。
「A.mcp」「A.mcs」「A.mcw」以外は削除しておきます。


ここかららが本題です。
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
を準備します。


練習で作った「A.mcp」「A.mcs」「A.mcw」をコピーしてきます。


ファイル名を書き換えただけでは起動できません。【番外実験2】

「PICmon.mcp」「PICmon.mcs」「PICmon.mcw」は削除します。
練習で作った「A.mcp」「A.mcs」「A.mcw」をもう一度コピーしてきます。


「A.mcp」をダブルクリックして名前を付けて保存をします。(復習です)


「PICmon.mcp」という名前で保存します。


「PICmon.mcp」「PICmon.mcs」「PICmon.mcw」が出来ましたので、
「A.mcp」「A.mcs」「A.mcw」を削除します。


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


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

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

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


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


選択登録します。


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


デバイスを選択します。(変更の必要が無ければ「OK」)


変更の必要が有れば目的のデバイスを選択します。


必要が有ればPICkit2が登録できます。


PICkit2を登録しました。(ビルド後書き込みテストをしたいので)

物理的に接続していませんね・・・いつでもできます。

デバッガー登録も出来ます。


断られてしまった・・・(まいいか)






デバッガーの前に、先ずはビルドします。


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


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


エジターが開きます。
「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ファイルの並べ替えが正しいかどうか?