電源起動の高速化

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

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

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

XINには、TCXO20MHzを接続し、メインクロック切り替え時の発振安定待ち時間を無くすことで、ある程度は早く動くようになりましたが、さらに高速起動を目指しています。
Parents
  • >Kirinさま
    早々のコメントありがとうございます。
    Kirinさまの言葉に勇気付けられ、スタートアップファイル(ncrt0.a30)の内容を修正して、狙い通りの成果を上げることができました。
    メインクロックへの切替えは、startセクションの最初(ISP設定よりも前)で行うようにしても正しく動作する様子なので、とりあえずこれで使っていますが、絶対にスタックポインタとプロセッサモードは最初に設定しないと危ない!などの情報をお持ちでしたら、ご指摘いただけると助かります。

    後半に書いてくださった方法は、発振子で発振回路を構成している場合には最も効率的かと思います。良いアイデアを開示していただき感謝致します。
    今回はTCXOによって外部でクロックを生成するため、TCXO自体のスペックが支配的になるかと思います。マイコンのスタートアップが走るのは、Vdd=1.9V以上になってから約1.7ms程度と聞いていますので、それ以下でTCXOが安定していれば安心して発振安定待ちを省略できる見込みです。
    間違いなどありましたら、ご指摘いただけると助かります。
Reply
  • >Kirinさま
    早々のコメントありがとうございます。
    Kirinさまの言葉に勇気付けられ、スタートアップファイル(ncrt0.a30)の内容を修正して、狙い通りの成果を上げることができました。
    メインクロックへの切替えは、startセクションの最初(ISP設定よりも前)で行うようにしても正しく動作する様子なので、とりあえずこれで使っていますが、絶対にスタックポインタとプロセッサモードは最初に設定しないと危ない!などの情報をお持ちでしたら、ご指摘いただけると助かります。

    後半に書いてくださった方法は、発振子で発振回路を構成している場合には最も効率的かと思います。良いアイデアを開示していただき感謝致します。
    今回はTCXOによって外部でクロックを生成するため、TCXO自体のスペックが支配的になるかと思います。マイコンのスタートアップが走るのは、Vdd=1.9V以上になってから約1.7ms程度と聞いていますので、それ以下でTCXOが安定していれば安心して発振安定待ちを省略できる見込みです。
    間違いなどありましたら、ご指摘いただけると助かります。
Children
No Data