電源起動の高速化

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

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

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

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

    こんにちは ramoth です

    R8CのC/C++ コンパイラのスタートアップルーチンのソースは
    未見ですが、Resしています。

    よくあるミスとして、RAMの初期値設定
    部分を実現するために、ライブラリ内の関数(サブルーチン)
    呼び出しが行われていたりする場合があるので、
    スタートアップルーチンのソースをアセンブラレベル
    でよくチェックしておく必要があります。

    また、I/Oの初期化(クロック設定)を追加
    したときに勢い余って割り込みを許可してしまうと、
    想定外のスタックアクセスが発生してしまいます。





Reply
  • entake さん、 Kirin さん

    こんにちは ramoth です

    R8CのC/C++ コンパイラのスタートアップルーチンのソースは
    未見ですが、Resしています。

    よくあるミスとして、RAMの初期値設定
    部分を実現するために、ライブラリ内の関数(サブルーチン)
    呼び出しが行われていたりする場合があるので、
    スタートアップルーチンのソースをアセンブラレベル
    でよくチェックしておく必要があります。

    また、I/Oの初期化(クロック設定)を追加
    したときに勢い余って割り込みを許可してしまうと、
    想定外のスタックアクセスが発生してしまいます。





Children
No Data