メールを頂いた。
以前に書いた内容を途中で中断していたのです。
ではどうぞ。
古いバージョンのMPLABを使用していたときはOKだったのに新しいバージョンに変更したら
「Error - section '.org_2' can not fit the absolute section. Section '.org_2' start=0x00000004,・・・」
というメッセージが現れてビルドに失敗してしまう事例がありました。
これを解決する方法がありますので紹介します。
ウイザードは「アブソリュート」に変更して実行をします。
ウイザード完了後も変更はできます。
Project>Build Options>Project>MPASM/C17/C18Suite で
シグナルファイルアセンブリプロジェクトをジェネレートアブソリュートコードでOKにクリックします。
そしてプロジェクト画面で「Debug」モードではなく「Release」モードでビルドすると成功すると思います。
なぜこのような事態になるかというと私見ですがMPLABがPICKIT3のデバッグ機能に対応させるために
プログラムのビルドの手順が変更になったと思われます。
PICをデバッグするときの情報がPICのプログラムファイルの300H~3FEH番地に影響させるためにデバッグモードでは
300H~3FEH番地を空白に、つまり何も書かないようにしておく必要があるようでです。
リリースモードでは300H~3FEH番地を影響させないために問題無くビルド出来るようです。
しかし、デバッグモードでもビルドさせる方法があります。
300H~3FEH番地へ「CALL」命令で入ると大丈夫なようです。
「CALL」命令はデバッグよりも強制力が強いようで優先されるようです。
プログラムの書き方として後半は概ね「CALL」命令で入ることが多いのでこの問題に出くわすことが無かったかも知れません。
たまたま大きなプログラムを作ったときに現れるエラーということかも知れませんね。
「TVゲーム、動画」の項の作品5:1人用壁打ちテニスゲーム【PIC12F675 629】のasmファイルにこのエラーが現れました。
プログラムを「ORG 300H」と仕切ってから「CALL」命令で入るとOKになりました。
一度ご覧になってください。暇のある方は「ORG 300H」を抜いて試してみてください。エラーになってしまいます。
「ORG 300H」を抜くと「CALL」命令で2FF番地に入って300Hへは通常のステップで進みます。
つまり「CALL」命令以外で300Hへ入っているのでエラーになるわけです。
上記を試してもエラーが消えない場合もあるかも知れません。
その場合はasmファイルをお見せいただいて一緒に解決の道を探しましょう。
っつうことです。
すみませんでした。