(toppers-users 4215) GHSとCX用スタートアップルーチンの差について

ASTC Higashijima kiyohiro.higashijima @ astc-design.com
2014年 3月 14日 (金) 13:06:12 JST


各位
毎々お世話になっております。
東島@ASTCです。

時間が十分に当てられず、亀の歩きになっております。
GHSを使ったビルドはできたのですが(ターゲットはfl850fl4_ghsです)、
スタートアップルーチンで無限ループしています。
原因はbssセクションのクリアのようなのです。
    be      bss_clear_end
の条件に合わず、ループしているようです。
マップファイルを確認するとbss領域がワード長に
なっていないためのようです。
続くdataセクションの初期化(ROM化対応)のコードも
4バイト長を期待しているようです。

リンカに渡すオプションなどはデフォルトのまま
利用しており、変更しておりません。
何か指定する必要があるのでしょうか?
下にCXとGHSを比較するためにソースの一部とマップ
ファイルの一部を添付します。
また、CX用のリンカスクリプトを探すことができませんでした。
どこにあるのか教えていただけたら助かります。

ご教示いただければ助かります。
以上、よろしくお願いします。

GHS用マップファイル
.bss fedde5ea+000000 __bss_end
.sbss feddc0c8+000000 __bss_start
GHS用スタートアップルーチン
/*
* bssセクションのクリア
* アラインされているので4ずつ行く
*/
Lea __bss_start, ep
Lea __bss_end, r6
bss_clear_start:
cmp ep, r6
be bss_clear_end
sst.w r0, 0[ep]
add 4, ep
br bss_clear_start
bss_clear_end:




CX用マップファイル
680 0xfedf90c8 0x4 Global Object __ssbss
681 0xfedfb6da 0x4 Global Object __esbss
682 0xfedfb6dc 0x4 Global Object __sbss
683 0xfedfc6dc 0x4 Global Object __ebss


CX用スタートアップルーチン
#
*****************************************************************************
# sbss領域のゼロクリア
#
*****************************************************************************
mov #__ssbss, r13
mov #__esbss, r12
cmp r12, r13
jnl .L11
.L12:
st.w r0, [r13]
add 4, r13
cmp r12, r13
jl .L12
.L11:

#
*****************************************************************************
# bss領域のゼロクリア
#
*****************************************************************************
mov #__sbss, r13
mov #__ebss, r12
cmp r12, r13
jnl .L14
.L15:
st.w r0, [r13]
add 4, r13
cmp r12, r13
jl .L15
.L14:


以上、よろしくお願いします。

-- 
東島 清宏 (Kiyohiro Higashijima)
Australian Semiconductor Technology Company 株式会社

Simulation, Validation, and Design of Semiconductors, Software and Systems

〒130-0013 東京都墨田区錦糸1−2−1 アルカセントラル14階
TEL: +81-3-6853-6681
FAX: +81-3-6853-6601
Email: kiyohiro.higashijima @ astc-design.com
Homepage: http://www.astc-design.com