(toppers-users 1043) Re: リソース量とgenoffsetスクリプトについて
Honda Hiroki
hhonda @ ipflex.com
2003年 8月 11日 (月) 10:46:25 JST
お世話になっております、アイピーフレックス株式会社の本田広樹です。
若林さん wrote:
> armccでgenoffsetする方法は簡単ではなさそうですね。
> アレはインラインアセンブラのチェックをしているので、
> 一回ちゃんとオブジェクト化させないと取れなそうです。
makeoffset.c (config/arm7tdmi/makeoffset.c 等) の OFFSET_DEF マクロの
技巧的な asm() 文を armcc では使えない、ということを指しているのだと思
いますが、ここって、単純に
INT ofs_TCB_texptn = offsetof(TCB, texptn);
INT ofs_TCB_sp = offsetof(TCB, tskctxb.sp);
INT ofs_TCB_pc = offsetof(TCB, tskctxb.pc);
UW ref_4 = 0;
UH ref_2 = 0;
UB ref_1 = 0;
TCB bitbb_TCB_enatex = { ... };
/* ↑初期値付きグローバル変数をずらずら並べるだけ */
と書いて、コンパイル結果のアセンブリソースを調べれば、オブジェクトファ
イルバイナリを解析せずとも目的を達成できると思います。
# 現 utils/genoffset は使えないので、アセンブリソースを目視して望みの
# 情報を取り出す、と。
JSP 本家 (gcc 用) でも上記「初期値付きグローバル変数」方式を採用しても
らえれば、utils/genoffset スクリプトが少々複雑化するかわりに各ターゲッ
ト依存部の makeoffset.c の見た目が簡単になるから、移植担当者にとってう
れしい…のかな…。移植担当者は makeoffset.c の意味を理解するために一度
は utils/genoffset を読まなければいけないから、結局 utils/genoffset と
makeoffset.c を合わせた見た目の分かりやすさが問題ですね。
====
アイピーフレックス株式会社
R&D センター
本田広樹 (hhonda @ ipflex.com)