* ARM Thumb 命令セット gcc でのリンク [#reca688d] gcc での thumb 命令のサポートで thumb interwork のほうが有望そうなので,こちらを中心にもっと見ていきたいと思う. というわけで,調べることを整理してみる. ** no interwork オブジェクトとのリンク [#j7a6ea99] なんてことを考えると,下表のような組み合わせについて見ていかなきゃならんのかなぁ. |↓呼び出し元\呼び出し先→|ARM no interwork|thumb no interwork|ARM thumb interwork|thumb thumb intwerwork|h |ARM no interwork||||| |thumb no interwork||||| |ARM thumb interwork||||| |thumb thumb intwerwork||||| ** スタティックリンクとシェアードライブラリ [#a76075b8] まず,スタティックリンクの場合はコンパイルのリンク時にリンクするので,リンク自体は toolchain の仕事になる. 一方,シェアードライブラリを使った場合のダイナミックリンクは,スタートアップルーチン(main()の前に実行されるコード)のローダの仕事になる. 担当しているプログラムが別物なので,動きが変わってくることも考えられる. ** 関数へのポインタ [#e75cfb7b] ARM モード/thumb モードの切り替えはプログラムカウンタの LSB で行っているので,関数へのポインタなんかはその影響を受けそうなところである. ここらも見る必要があるのかもしれない.