HCS08 ファミリーのマイクロコントローラー用の USB ベースのブートローダーを開発しています。アセンブリにブートローダー コードがあります (シリアル通信で正常に動作します)。このアセンブリ コードから USB 通信用の C 関数 (Terminal<>Micro controller) を呼び出しています。しかし、これらの C 関数はプロテクト エリア ROM に配置されていないようです。これは project.map で確認できます。ブートローダー コードと連続していません。つまり、ブートローダー コードは F003 で始まりますが、これらの USB 関数はいくつかの位置にあります。 〜1000〜2000。私の質問は、これらの C 関数を ROM の bootloader.asm コードで続行するにはどうすればよいかということです。
プログラム フローは次のとおりです。 電源投入時に bootloader.asm にジャンプする C のメイン関数があります。ただし、bootloader.asm は正常に動作しますが、保護されていないプログラム ROM 領域の USB ルーチンが原因で、これらも消去され、その後ブートローダーが端末と通信できなくなります。
この点に関する提案は本当に役に立ちます。
ありがとう