セクション指定について

こんにちは。

マイコンの勉強を始めました。

RXマイコンに限らないとおもいますが、

セクションの指定についてご教授いただきたいです。

背景として、コードフラッシュ領域の一部の領域のみ書き換えを行いたいと考えています。その一部の領域用にセクションを用意し、そのセクションのみ書き換えるつもりです。

質問

初期値をもつ変数、持たない変数など、デフォルトで用意されたセクションに自動で割り振られるかと思いますが、新たにセクションを作成し、とある関数を#pragma section で新たに作成したセクションに割りったとき、関数内の初期値を持つ変数、持たない変数などもすべて新たに作成したセクションに割り振られるのでしょうか。

以上です。

よろしくお願いいたします。

Parents Reply
  • IKUZOさん
    アドバイスありがとうございます。
    コードフラッシュの一部領域の書き換えは難易度が高いとこのことですが、「フラッシュモジュールFIT」のサンプルコードは、一部のコードフラッシュの書き換えが行われているようです。これはあくまでサンプルだからということでしょうか。
    また、すべてのコードフラッシュ領域を書き換える場合は一部の書き換えよりも難易度は低いという認識でよろしいでしょうか。
    よろしくお願いいたします。
Children
  • NoMaYです。

    きゃんさんへ:
    例えば、コードをブートローダ部分とアプリケーション部分の2部構成にして、マイコンのコードの“一部”をマイコンのコード自身で書き換える(もう少し書くとブートローダ部分のコードがアプリケーション部分のコード“全体”を書き換える)のは昔から良く行われている技法であり、ルネサスでも資料やサンプルプログラムが色々と用意されていて、ごく一部の人にしか出来ないという程の難易度の高いものでは無いと思います。

    ですが、そのような昔から良く行われている技法(資料やサンプルプログラム)の範疇を超えることをしようとすると、なかなかうまくいかない、ということに遭遇することもあるかと思います。

    IKUZOさんへ:
    私の記憶では(といっても先月のことですが)、ありきたりのことをするのでは面白くないということで特殊なことをされようとして、何か行き詰ってしまった模様で、その経験からの難易度が高いというリプライだったと思っているのですが、思うに、きゃんさんが同様に(たとえ全く同じことでは無いにせよ)特殊なことをしようとしているらしいけれども、ということが咄嗟に文面から抜け落ちてしまってのリプライだったのではないでしょうか?

    私も、きゃんさんの最初の投稿からは、(知識不足ゆえに?)昔から良く行われている技法では無いことをイメージされているだろう、という感が強くしていますが、、、

  • きゃんさん
    「「フラッシュモジュールFIT」のサンプルコードは、一部のコードフラッシュの書き換えが行われているようです。」そうなんですか、私も初心者なもので、誤った情報だったのかもしれません、わたしも「フラッシュモジュールFIT」のサンプルコードを勉強いたします。
  • NoMaYさん
    「ありきたりのことをするのでは面白くない」よく覚えてくださいました(見てくださいました)重ねてありがとうございます、今回プログラムの一部を別セクションのようなものを抜き出して、そこのみコンパイルさせてメモリを更新するというようなことをしているのは、見本がみあたれば良かったのですが、やろうとして見事に失敗したあ、ということで、失敗したというよりも時間が無いので諦めた、また時間があるときトライして見よう、ということで、きゃんさんも同じようなリプライではないのかと私の早合点で初心者からアドバイス申し上げた次第でございます、私の苦労(2週間)少しでも役立てていただけたらと思い、生意気なことを申し上げてしまいました、重ねてお詫びいたします、現在は少しのセクションを分離してやるやりかたではなく、全体的にプログラムをSRAMにロードするやり方で時間をかせいでおります、フラッシュであれば512K Byteをロードするのにそれなりの時間がかかりますがSRAMやSDRAM領域であればUSBを使用して1秒以内に転送実行できますので重宝しております、転送ツールもコンパイルが終わると自動で転送されます。