FAQ 1007768 : スタートアップ・ルーチンで、「通常」、「ブート領域用」、「フラッシュ領域用」とありますが、どれを使用すればよいですか?

Q: 質問

スタートアップ・ルーチンで、「通常」、「ブート領域用」、「フラッシュ領域用」とありますが、どれを使用すればよいですか?


A: 回答

フラッシュ領域セルフ書き換え機能を持たないデバイスの場合には、「通常」を使用してください。

ブート領域側にはブート領域用を、フラッシュ領域側にはフラッシュ領域用のスタートアップ・ルーチンを使用してください。

「ブート領域用」、「フラッシュ領域用」は、それぞれ次のように使い分けます。

  • ブート領域用
    フラッシュ領域セルフ書き換え機能を使用する場合に、書き換えが行われない領域(ブート領域)に使用してください。
    RESET後は、ブート領域のスタートアップ・ルーチン_@cstartを呼び出します。
    そのほかの割り込みベクタは、フラッシュ領域側のアドレスを定義するようになっています。
    スタートアップ・ルーチン_@cstart 内で、_boot_main関数を呼び出した後に、フラッシュ領域の先頭アドレスITBLTOPに分岐します。
  • フラッシュ領域用
    フラッシュ領域セルフ書き換え機能を使用する場合の、書き換えが行われる領域(フラッシュ領域)に使用してください。
    フラッシュ領域用のベクタのRESETに該当する部分ITBLTOPに、フラッシュ用のスタートアップ・ルーチン_@cstarteを呼び出します。
    その後に、main関数を呼び出します。

542.jpg

リセット時の動作は、次のようになります。 RESET割り込みベクタ(ブート領域)
→ _@cstart(ブート領域)
→ _boot_main関数(ブート領域)
→ ITBLTOPアドレス(フラッシュ領域)
→ _@cstarte(フラッシュ領域)
→ _main関数(フラッシュ領域)

 

適用製品

78K0用コンパイラ [CC78K0]
78K0S用コンパイラ [CC78K0S]
他にご質問がございましたら、リクエストを送信してください