(toppers-users 4789) Re: 【質問】rosdataセクションの配置について

毛利 慶伍 mouri @ witz-inc.co.jp
2018年 11月 28日 (水) 17:45:22 JST


名古屋大学
高田広章 様

お世話になっております。
株式会社ヴィッツ 毛利です。

早急にご返信いただき誠にありがとうございます。
Niosの件、承知致しました。

お忙しい中、ご丁寧に対応いただき感謝いたします。

On 2018/11/28 17:32, Hiroaki TAKADA wrote:
> 毛利さん,皆様
>
> 細かなところまでフォローできていませんが,おそらく以下の事情と思います。
>
> TOPPERS/ATK2は,最初,Niosプロセッサをターゲットとして開発されました。
> Niosでは,ショートデータのベースを指すためのグローバルポインタが1つ
> しかありません。そのため,sdataとsrodataが離れた場所に配置されると,
> グローバルポインタ相対で届かなくなるため,srodataセクションをRAMに
> 配置して,1つのグローバルポインタからの相対でアクセスできるようにし
> ていました。srodataをRAMに置いても,その番地をメモリ保護ユニットで
> 書き込み禁止にしてあげれば,保護の観点では問題がないはずです。
>
> RH850では,グローバルポインタが2つあるので,上のような対応は必要な
> いはずですが,Niosのコードがそのまま流用されて,今のような実装になっ
> ているのではないかと思います。
>
> 高田広章
> 名古屋大学
>
> On 2018/11/28 16:57, 毛利 慶伍 wrote:
>> 株式会社ヴィッツ 毛利です。
>>
>> arch内に用意されているldファイルはSC1/SC2にて使用されます。
>> 今回のSC3/SC4では、メモリ保護にてセクションのソートが必要のため
>> ldscript.tfにてcfg2_out.ldとldscript.ldが順番に生成され使用されるはずです。 
>>
>>
>> ldscript.tfを確認していましたが一つ気になる点があります。
>>
>> arch/v850_ghs/ldscript.tf
>> 118行目より参照
>> ---------------------------------
>> $           // small data section 
>> の先頭に.rosdataセクションを配置するための
>> $           // ダミーセクション配置
>>              $IF (MO.SEFLAG[moid] & 0x400) != 0$
>> $                $TAB$.rosdata : {$NL$
>>                  $TAB$.rosdata : {$NL$
>>                  $TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
>>                  $NL$$NL$
>>              $END$
>> ---------------------------------
>>
>> STANDARD_RAMにはINTRAMが入っているため、
>> この時点でrosdataはINTRAMに問答無用で配置するようになっています。
>> また、生成されたldscript.ldを確認しましたが、
>> sdataセクションにすべてのrosdataが配置されていました。
>>
>> ldscript.ld 生成例
>> ---------------------------------
>>      .sdata_shared_0_ffffffff_XX ALIGN(32) : {
>>          ___start_sram_shared_0_ffffffff_XX = .;
>>          ___start_sdata_shared_0_ffffffff_XX = .;
>>          ___start_sdata_shared__0_ffffffff_XX = .;
>>          A.o(.rosdata) A.o("*.rosdata") A.o("*.rosdata.*") 
>> *(.rosdata) *("*.rosdata") *("*.rosdata.*")  *(.rosdata_shared)
>>          ___end_sdata_shared__0_ffffffff_XX = .;
>>          ___end_sdata_shared_0_ffffffff_XX = .;
>>      } > INTRAM
>> ---------------------------------
>>
>> 以上、よろしくお願いいたします。
>>
>> On 2018/11/28 15:15, morita @ adac.co.jp wrote:
>>>> 株式会社ヴィッツの毛利と申します。
>>>>
>>>> 現在、GHSの統合開発環境であるMULTIにて、
>>>> OSにTOPPERS/ATK2-SC4を使用しております。
>>>> その上で、MULTIの機能の一つであるSDA機能を使用し、
>>>> OS含むプロジェクト全体をスモールデータエリアとして適用しております。
>>>>
>>>> MULTIはビルド時に何らかの法則に従って定数値を
>>>> rodataセクションかrosdataセクションに配属させているようですが、
>>>> その際にATK2では以下のようにセクションを移動させておりました。
>>>>  ・rodata(ROM) → text(ROM)
>>>>  ・rosdata(ROM) → sdata(RAM)
>>>>
>>>> rodataセクションとtextセクションは共にROM配置のため問題ありませんが、
>>>> 本来ROM配置のrosdataセクションをRAM配置のsdataセクションに移動させてい
>>> るのは何故でしょうか?
>>>> ROMに配置するべき定数値をRAMに配置するというのはよろしくないと思われる
>>> のですが、
>>>> 本対応に関する意図等をご存知の方がおりましたらお教えください。
>>>>
>>> 直接の関係者ではありませんが、参考に返信しまう。
>>>
>>>
>>> RH850F1H(ルネサスエレクトロニクス)簡易パッケージ の GHS版にある
>>>
>>> arch/v850_ghs/rh850_f1h_6m.ld (リンクマップファイル)を見てみると
>>> .rosdata はちゃんとROMに配置されていますので
>>> そちらでそのように変更されたのではないでしょうか?
>>>
>>>
>>>
>>> /*
>>>   *  RH850/F1L-2Mリンカスクリプト
>>>   */
>>>
>>> MEMORY
>>> {
>>>      INTROM(raxi) : org = 0x00000000, len = 4M
>>>      INTROMPE2    : org = 0x00800000, len = 2M
>>>      INTRAM(wax)  : org = 0xfef00000, len = 128k
>>>      LRAM_PE1(wax) : org = 0xFEBD0000, len = 192k
>>>      LRAM_PE2(wax) : org = 0xFE9D0000, len = 192k
>>> }
>>>
>>>
>>>      . = ALIGN(4);
>>>      .rosdata : { *(.rosdata) } > INTROM
>>>
>>>      . = ALIGN(4);
>>>      .rodata : { *(.rodata) } > INTROM
>>>
>>>
>>>
>>>
>>>
>>> ========================================
>>> 森田 浩<morita @ adac.co.jp>
>>> Advanced Data Controls, Corp.
>>> Tel: +81 3-3576-5351
>>> ========================================
>>>
>>
>> -- 
>>   -----------------------------------------
>>   株式会社ヴィッツ
>>   組込みシステム開発部
>>   セキュアシステムPF開発室
>>    毛利 慶伍 (Mouri Keigo)
>>    Mail:mouri @ witz-inc.co.jp
>>    TEL:052-220-1525
>>   -----------------------------------------
>>

-- 
  -----------------------------------------
  株式会社ヴィッツ
  組込みシステム開発部
  セキュアシステムPF開発室
   毛利 慶伍 (Mouri Keigo)
   Mail:mouri @ witz-inc.co.jp
   TEL:052-220-1525
  -----------------------------------------

-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.toppers.jp/pipermail/users/attachments/20181128/b74fe42f/attachment.html>