ARM Thumb 命令セット gcc でのリンク

gcc での thumb 命令のサポートで thumb interwork のほうが有望そうなので,こちらを中心にもっと見ていきたいと思う.

というわけで,調べることを整理してみる.

no interwork オブジェクトとのリンク

なんてことを考えると,下表のような組み合わせについて見ていかなきゃならんのかなぁ.

↓呼び出し元\呼び出し先→ARM no interworkthumb no interworkARM thumb interworkthumb thumb intwerwork
ARM no interwork
thumb no interwork
ARM thumb interwork
thumb thumb intwerwork

スタティックリンクとシェアードライブラリ

まず,スタティックリンクの場合はコンパイルのリンク時にリンクするので,リンク自体は toolchain の仕事になる. 一方,シェアードライブラリを使った場合のダイナミックリンクは,スタートアップルーチン(main()の前に実行されるコード)のローダの仕事になる.

担当しているプログラムが別物なので,動きが変わってくることも考えられる.

関数へのポインタ

ARM モード/thumb モードの切り替えはプログラムカウンタの LSB で行っているので,関数へのポインタなんかはその影響を受けそうなところである. ここらも見る必要があるのかもしれない.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-23 (月) 12:57:00 (3985d)