(toppers-users 3523) Re: ASP-rx610/rx620の変数初期化について
片岡 歩
kata @ witz-inc.co.jp
2011年 8月 13日 (土) 09:40:43 JST
松浦さん。
片岡 歩@ヴィッツです。
ご指摘ありがとうございます。
ご指摘の内容でよいかと思います。
あいにく手元に確認環境がなく、確証のある回答が出来ないのですが、
以前リリースパッケージの問題として対応方法を調査したときの内容と
同じとだと判断しております。
次回リリースに含めて対応と考えておりますが、ちょっと時間を要しております。
以上、まずはご回答まで。
>皆様
>
>初めて投稿します.松浦と申します.
>
>CQ出版インターフェース2011年9月号に掲載されたASPをCQ出版社のサイトからダウンロ
>ードして使っています.
>初期値のある変数が初期化されない現象があり,原因を調べました.
>このASPの元と思われる Renesas Starter Kit rx610用にも当てはまると考えられます
>ので情報共有したいと思います.
>
>【原因】
>セクションD,D_2,D_1とR,R_2,R_1の配置が逆ではないでしょうか?
>
>【対処法】
>1.まずHEWのツールチェーンの設定メニュー「最適化リンカ」タブのカテゴリ「セク
>ション」でRAMにD,D_2,D_1,ROMにR,R_2,R_1がマップされているが,これを入れ替える
>.
>(R,R_2,R_1はRAMに,D,D_2,D_1はROMに)
>
>2.次に同じくカテゴリ「出力」のオプション項目「ROMからRAMへマップするセクショ
>ン」に
>Rom Ram
>D R
>D_1 R_1
>D_2 R_2
>を追加する(これがないとR,R_2,R_1の領域が定義されない)
>
>3.arch\rx_rxc\start.srcの99〜124行目の
>init_D:
> mov.l #(sizeof R), r3
> cmp #0, r3
> beq.b init_D_2 ; サイズ0なら初期化必要なし
> mov.l #(topof D), r1
> mov.l #(topof R), r2
> smovf
>
>init_D_2:
> mov.l #(sizeof R_2), r3
> cmp #0, r3
> beq.b init_D_1 ; サイズ0なら初期化必要なし
> mov.l #(topof D_2), r1
> mov.l #(topof R_2), r2
> smovf
>
>init_D_1:
> mov.l #(sizeof R_1), r3
> cmp #0, r3
> beq.b clear_B ; サイズ0なら初期化必要なし
> mov.l #(topof D_1), r1
> mov.l #(topof R_1), r2
> smovf
>
>でD,D_2,D_1をr1に,R,R_2,R_1をr2にmovしているが,逆にする.
>(R,R_2,R_1をr1に,D,D_2,D_1をr2にmov)
>
>私のところでは,この変更で初期値のある変数が初期化されるようになりました.
>勘違いしているところがありましたら,ご指摘いただけると幸いです.
>
>よろしくお願いします.
>
>松浦光洋
>有限会社松浦商事
>
>
>
>
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
|| ||
|| (株)ヴィッツ ||
|| 組込制御開発部 組込制御室 ||
|| ||
|| 片岡 歩 E-mail:kata @ witz-inc.co.jp ||
|| ||
|| 〒460-0008 名古屋市中区栄2-13-1 白川第2ビル2F/7F ||
|| TEL:(052)223-7570 ||
|| (052)220-1218(代表) ||
|| FAX:(052)218-5855 ||
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜