電源起動の高速化

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

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

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

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

    Kirinさんの回答で問題ないのですが、実際に使用した高速立ち上げの実績が有るので参考程度に説明します。

    5年位前の話ですが、高速立ち上げが必要になった事がありました。
    高速立ち上げが必要になった背景ですが、R8C2Bを使用していて有機ELディスプレイが接続されたオーディオ用PCMレコーダーを製作していた時の話です。

    使用した有機ELディスプレイが、なんと電源投入でノイズが表示されてしまう代物でした。
    内蔵VRAMの初期化処理を行なっていないのとモード設定しなくても表示が始まってしまうらしい。(^_^;)

    R8Cの初期化に30ms位と表示データを転送するのに約20ms(5MBpsのSPI接続で、画面データは一筆書き)です。結果、電源入れると適当にノイズだったり、電源OFFの画面だったりします。
    いろいろ調べた結果、R8CのRAMを3.5kバイト殆ど使用していましたので、クリアに時間が必要だった見たいですね。
    そこで、いろいろやったのですが、結果的に高速クロックに切り替えてからしか早い起動が出来ませんでした。


    実際に使っている方法ですが、スタック等を設定した後に高速オンチップオシレータに切り替え(発振動作確認必要)、内臓RAMの0クリアと初期値設定を行ないMainルーチンでハードウェア初期化処理を行なっています。
    高速オンチップオシレータに切り替えは、Cのサブルーチンをコールして使っています。

    Kirinさんの回答から、メインクロックの停止が問題ならば、Mainルーチンで切り替えされたら安定発振していると思われます。

    以上、SSでした。
Reply
  • entakeさん

    Kirinさんの回答で問題ないのですが、実際に使用した高速立ち上げの実績が有るので参考程度に説明します。

    5年位前の話ですが、高速立ち上げが必要になった事がありました。
    高速立ち上げが必要になった背景ですが、R8C2Bを使用していて有機ELディスプレイが接続されたオーディオ用PCMレコーダーを製作していた時の話です。

    使用した有機ELディスプレイが、なんと電源投入でノイズが表示されてしまう代物でした。
    内蔵VRAMの初期化処理を行なっていないのとモード設定しなくても表示が始まってしまうらしい。(^_^;)

    R8Cの初期化に30ms位と表示データを転送するのに約20ms(5MBpsのSPI接続で、画面データは一筆書き)です。結果、電源入れると適当にノイズだったり、電源OFFの画面だったりします。
    いろいろ調べた結果、R8CのRAMを3.5kバイト殆ど使用していましたので、クリアに時間が必要だった見たいですね。
    そこで、いろいろやったのですが、結果的に高速クロックに切り替えてからしか早い起動が出来ませんでした。


    実際に使っている方法ですが、スタック等を設定した後に高速オンチップオシレータに切り替え(発振動作確認必要)、内臓RAMの0クリアと初期値設定を行ないMainルーチンでハードウェア初期化処理を行なっています。
    高速オンチップオシレータに切り替えは、Cのサブルーチンをコールして使っています。

    Kirinさんの回答から、メインクロックの停止が問題ならば、Mainルーチンで切り替えされたら安定発振していると思われます。

    以上、SSでした。
Children
No Data