電源起動の高速化

お世話になっております。entakeと申します。

R8C/1Bシリーズで、
電源ONからメイン処理が動き出すまでの時間を最速で行いたい場合、どのような方法が考えられますでしょうか?

FAQを探っていて、「スタートアップファイル(ncrt0.a30)ではRAMの初期化も行っています。リセット解除後のCPUクロックは低速オンチップオシレータの8分周のため、RAMの初期化に数十ms程度かかる場合があります。」という記述を見つけたので、RAMの初期化をメインクロックに切り替えた後に行うようにすれば良いのでは、等と考えていますが、そんなことは可能なのでしょうか??
他に何かアイデアなどありましたら是非お願い致します。

XINには、TCXO20MHzを接続し、メインクロック切り替え時の発振安定待ち時間を無くすことで、ある程度は早く動くようになりましたが、さらに高速起動を目指しています。
Parents
  • >Kirinさま

    コメントありがとうございます。
    確かにSP未初期化でも問題ないようです。
    ちょうどルネサスのアプリケーションノートでスタートアップに関する記述を見つけましたので、この記事を読んでくださっている方々のためにも、少々引用させていただきます。
    (コードをそのまま貼り付けようと思いましたが、何か著作上問題あるかもしれないので、出典だけ最後に示します)
    この資料によると、
     1.プロセッサ動作モードの設定
     2.スタックポインタの初期化
     3.FB\,SBレジスタ初期化
     4.INTBレジスタ初期化
     5.データのnear領域の初期化
     6.データのfar領域の初期化
     7.heap領域の初期化
     8.標準入出力関数ライブラリの初期化
     9.main関数の呼び出し
    のような構成で説明されており、上記1.のコード例の中でシステムクロックの設定を一緒に行っているのを見つけました。
    どうやら、割と一般的なのかもしれません。
    上記を参考に、システムクロックをXINに切り替えるのは、1.と2.の間で行うようにします。
    おぼろげな不安が解消されました、ありがとうございます。

    参考資料:「M16C/60 シリーズ\,M16C/20 シリーズ プログラム作成の手引き< C 言語編 >」rjj05b0118_m16cap.pdf
Reply
  • >Kirinさま

    コメントありがとうございます。
    確かにSP未初期化でも問題ないようです。
    ちょうどルネサスのアプリケーションノートでスタートアップに関する記述を見つけましたので、この記事を読んでくださっている方々のためにも、少々引用させていただきます。
    (コードをそのまま貼り付けようと思いましたが、何か著作上問題あるかもしれないので、出典だけ最後に示します)
    この資料によると、
     1.プロセッサ動作モードの設定
     2.スタックポインタの初期化
     3.FB\,SBレジスタ初期化
     4.INTBレジスタ初期化
     5.データのnear領域の初期化
     6.データのfar領域の初期化
     7.heap領域の初期化
     8.標準入出力関数ライブラリの初期化
     9.main関数の呼び出し
    のような構成で説明されており、上記1.のコード例の中でシステムクロックの設定を一緒に行っているのを見つけました。
    どうやら、割と一般的なのかもしれません。
    上記を参考に、システムクロックをXINに切り替えるのは、1.と2.の間で行うようにします。
    おぼろげな不安が解消されました、ありがとうございます。

    参考資料:「M16C/60 シリーズ\,M16C/20 シリーズ プログラム作成の手引き< C 言語編 >」rjj05b0118_m16cap.pdf
Children
No Data