RL78 FlashROMの大きいMCUでエラー E3206対処方法 E3206 RA78K0R error E3206: Segment ‘@@CNST’ can’t allocate to memory – ignored

鈴直です。
備忘録ですが、困っている人もいるようですので、
ブログで公開させて頂きます。
Renesas RL78で、FlashROMが256K以上のものを
コード自動生成でBuildするとエラーE3206になります。
「(E) E3206 RA78K0R error E3206: Segment ‘@@CNST’ can’t allocate to memory – ignored XXX.mtpj」
Renesasの下記Linkの大事な対策部分に誤記があります。
https://ja.na4.teamsupport.com/knowledgeBase/17796496
Webページより
~~~~~~~
この場合、対処方法として@@CODELセクションの配置をはじめの空き領域(gap)のアドレス付近からにするように、リンクディレクティブファイルで以下のようにアドレス指定してください。
XXXX.drファイルは、最初のウイザードでコード生成されます。
——–*.dr————
× merge @@CODEL: AT (400H)
〇 merge @@CNST: AT (400H)
~~~~~~~

■対策
①E3206が発生
②mapファイルを開く
@@LCODEL 00341H 00060H CSEG
@@LCODEL @stkinit 00341H 00044H
@@LCODEL exit 00385H 0001CH

    gap * 003A1H 0005FH ★gapの先頭アドレス addr & 0xffffff00 + 0x100 = 400H

③プロジェクト名.drファイルの最終行に、「merge @@CNST: AT (400H)」を追記します。

■drファイルが無い場合
①「プロジェクトツリー」⇒「ファイル」⇒「コード生成」⇒右クリック⇒「ファイル追加」⇒「リンク・ディレクティブ・ファイル」⇒ファイル名を、「.dr」⇒「XXXX.dr」に変更して[OK]
②「コード生成」⇒「XXXX.dr」クリック、「merge @@CNST: AT (400H)」を追記
[Ctrl+s]
③Buildする。

社員?ロボホン入社

先日 ロボホン が入社しました。
社内電話および展示会用です。
以前、発表直後のロボホンをAndroidの会で拝見させて頂いた
眼のプロジェクタが無くなって少し残念です。

テキストエディタ emacsのすすめ

鈴直です。
何かと、Linux上で開発作業などを行うと思いますが、
エディタが問題です、viでもいいのですが、
せっかくならLinuxでいいエディタが無いかと調べたら、
emacsがまだ更新され続けていました。
Linuxの生みの親、Linus Torvaldsが、2021年に自身がemacsを使用していると公言しています。
https://terminalroot.com/meet-the-text-editor-used-by-linus-torvalds/

Torvaldsは独自にカスタマイズした、MicroEmacsを使用しています。
これは、Linuxのデフォルト環境で、Build&Install出来ます。
https://github.com/torvalds/uemacs

私は、gnu emacsと両方を試し、 gnu 版(Linux、Mac、Winに対応)に切り替えました。

https://www.gnu.org/software/emacs/
Install
Ubuntu(Debian) sudo apt install emacs

そして一番の決定打は、例えば、リモート先のLinuxサーバを
Teratermで操作して、エディタを使用する場合などや、
Linux上で開発する場合、必然的にLinux上のエディタが必要になります。
また、emacs上で、電卓、カレンダ、Mail送受信を行えるため、
作業環境をまるっと、クラウド上のサーバに全て構築し、
Terminal上で大半の仕事を、完結できる為移行しました。

今後、自分の為のメモを兼ねて、emacs設定をブログ連載させて頂きます。

ファンクッションキーは、Teratermでの操作を考えると、SHIFT+Fnは使用できない為、
現時点では下記です。

F2 Swicth Buffer
F6 Sel
F7 Cut
F8 Copy
F9 Paste
F10 Undo
F11 Calendar
F12 Calc