(toppers-users 1027) Re: 変数等の定義場所について
Takayuki WAKABAYASHI
x-takayuki @ sm.sony.co.jp
2003年 8月 7日 (木) 20:12:58 JST
豊橋技術科学大学の若林です。
# すいません。都合によりReferenceを切ります。
わたなみさん wrote that:
> ・__bss_start等はどこで定義しているのか
シンボルの意味に関しては今井さんがフォローされているので、
ツール側の視点からコメントします。
GNU環境ではこれらのシンボルを自前で用意しないといけないですが、
ADS(と似た環境)を使っている場合はarmlinkが勝手に定義してくれます。
また、bssというセクションは リージョン名(ZI) に相当します。
ここでいうリージョン名は、scatterファイルに指定したリージョン名に相当します。
armlinkはリージョン固有の情報をシンボルとして出力します。
__bss_startに相当するシンボルはImage$$リージョン名$$ZI$$Baseになります。
同様に__bss_endはImage$$リージョン名$$ZI$$Limitになります。
# ADS Linker and Utilities Guideの56ページ辺りにあります。
# http://www.arm.com/support/574FJG/$File/ADS_LinkerGuide_A.pdf
たぶん、スタートアップで
__bss_start -> Image$$MyRegion$$ZI$$Base
.extern __bss_start -> IMPORT |Image$$MyRegion$$ZI$$Base|
__bss_end -> Image$$MyRegion$$ZI$$Limit
.extern __bss_end -> IMPORT |Image$$MyRegion$$ZI$$Limit|
に変更するだけで大丈夫だと思います。
.dataも同様に、
_data_start -> Image$$MyRegion$$RW$$Base
_idata_start -> Load$$MyRegion$$RW$$Base
で大丈夫でしょう。
あと、コンフィギュレータはホストコンピュータ用のプログラムなので、
Windowsで作成したexeをそのまま流用可能です。
# チェッカーはだめですが...
以上、参考になれば幸いです。
--------
豊橋技術科学大学 電子情報工学専攻
わかばやし たかゆき (mailto:takayuki @ ertl.jp)