こんにちは。
マイコンの勉強を始めました。
RXマイコンに限らないとおもいますが、
セクションの指定についてご教授いただきたいです。
背景として、コードフラッシュ領域の一部の領域のみ書き換えを行いたいと考えています。その一部の領域用にセクションを用意し、そのセクションのみ書き換えるつもりです。
質問
初期値をもつ変数、持たない変数など、デフォルトで用意されたセクションに自動で割り振られるかと思いますが、新たにセクションを作成し、とある関数を#pragma section で新たに作成したセクションに割りったとき、関数内の初期値を持つ変数、持たない変数などもすべて新たに作成したセクションに割り振られるのでしょうか。
以上です。
よろしくお願いいたします。
きゃんさん、こんにちは。NoMaYと申します。Renesas Rulzへの投稿でFlash内蔵マイコンということならRXかRL78あたりだろうかと思いましたので。(RH850の可能性も無くは無いですけど、、、)例えば、RX(CC-RX)なら、このあたりのヘルプでしょうか。・セクション切り替え記述 - CS+ V5.00 オンラインヘルプ > コンパイラ編 > コンパイラ言語仕様 > 拡張言語仕様 > 拡張仕様の使用方法・C/C++プログラムのセクション - CS+ V5.00 オンラインヘルプ > コンパイラ編 > セクション仕様 > セクション名一覧・セクションオプション - CS+ V5.00 オンラインヘルプ > コンパイラ編 > コマンド・リファレンス > オプション > 最適化リンケージエディタ(rlink)・オプション或いは、RL78(CC-RL)なら、このあたりのヘルプでしょうか。・コンパイラ出力セクション名の変更 - CS+ V5.00 オンラインヘルプ > コンパイラ編 > コンパイラ言語仕様 > 拡張言語仕様 > 拡張仕様の使用方法・セクション名 - CS+ V5.00 オンラインヘルプ > コンパイラ編 > セクション仕様 > セクション・セクション指定 - CS+ V5.00 オンラインヘルプ > コンパイラ編 > コマンド・リファレンス > オプション > リンク・オプションRulzの過去の投稿とかRenesasのFAQとか、こんな感じで検索出来ます。・Renesasキーワード検索: セクションやりたいことの参考になりそうな(と思われる)情報としては、こういうのがありますよ。・Renesasキーワード検索: ブート領域 フラッシュ領域・Renesasサンプルプログラム検索: フラッシュメモリ
NoMaYです。きゃんさんへ:例えば、コードをブートローダ部分とアプリケーション部分の2部構成にして、マイコンのコードの“一部”をマイコンのコード自身で書き換える(もう少し書くとブートローダ部分のコードがアプリケーション部分のコード“全体”を書き換える)のは昔から良く行われている技法であり、ルネサスでも資料やサンプルプログラムが色々と用意されていて、ごく一部の人にしか出来ないという程の難易度の高いものでは無いと思います。ですが、そのような昔から良く行われている技法(資料やサンプルプログラム)の範疇を超えることをしようとすると、なかなかうまくいかない、ということに遭遇することもあるかと思います。IKUZOさんへ:私の記憶では(といっても先月のことですが)、ありきたりのことをするのでは面白くないということで特殊なことをされようとして、何か行き詰ってしまった模様で、その経験からの難易度が高いというリプライだったと思っているのですが、思うに、きゃんさんが同様に(たとえ全く同じことでは無いにせよ)特殊なことをしようとしているらしいけれども、ということが咄嗟に文面から抜け落ちてしまってのリプライだったのではないでしょうか?私も、きゃんさんの最初の投稿からは、(知識不足ゆえに?)昔から良く行われている技法では無いことをイメージされているだろう、という感が強くしていますが、、、