RL78/G13で、デュアルブート

RL78/G13と、CubeSuite+を使用して開発しています。

CPUのGPIOにスイッチを設けて、
スイッチ=OFFの場合はプログラムA、
スイッチ=ONの場合にはプログラムB
を、起動するようなやり方は可能なのでしょうか?

プログラムA、プログラムB双方ともRAMを大量に消費する
プログラムで、機能や動作内容が異なるため、
main処理後にプログラムA、プログラムBを選んで
動作をする余裕がありません。

コードサイズ自体はそれぞれ大きくないのでROMには
入りそうなのですが、RAMがどうにもなりません。

発想としては、リセット解除後に、
スイッチを読み込むプログラムが動作して、
その後、スイッチに従ったプログラムA又はBが動作する
ようなことがしたいのですが、
どのようにCubeSuiteで作成すればよいのかわかりません。

ご教授お願いします。
また、上記方法以外にも案がありましたらご提案お願いします。
Parents
  • RyuKucchanさん

    私も投稿後、少し考えてみたのですが、初期値付きの外部変数だけを注意すれば大丈夫ではないかと思っています。
    まず、ご質問の局所変数は何の問題もありません。static記憶クラスを指定しない限り、大丈夫です。
    また、初期値付きの外部変数はunionの中に入れることができません。初期値なしとして宣言し、プログラムA/Bの各先頭で初期値を代入文で設定するのが一番簡単ではないかと思っています。

    実際に試して頂き、また問題があれば投稿ください。
Reply
  • RyuKucchanさん

    私も投稿後、少し考えてみたのですが、初期値付きの外部変数だけを注意すれば大丈夫ではないかと思っています。
    まず、ご質問の局所変数は何の問題もありません。static記憶クラスを指定しない限り、大丈夫です。
    また、初期値付きの外部変数はunionの中に入れることができません。初期値なしとして宣言し、プログラムA/Bの各先頭で初期値を代入文で設定するのが一番簡単ではないかと思っています。

    実際に試して頂き、また問題があれば投稿ください。
Children
No Data