タグ

ブックマーク / jr0bak.homelinux.net/~imai (2)

  • ARM gcc バッドノウハウ集: EABI と legacy ABI

    次のページ 前のページ 目次へ 8. EABI と legacy ABI 8.1 ABI とは ここでいう ABI (Application Binary Interface) とは,C コンパイラにおいて 構造体への要素の詰め込みかた 関数呼出し時に どのレジスタを関数の引数として利用し,どのレジスタに戻り値が入るか どのレジスタを呼出元でスタックに退避し,どのレジスタは呼び出し先 で破壊しても問題ないか そもそもどのレジスタをスタックポインタとして利用するか などを定義したものです. 8.2 ABI の種類 現在,ARM Linux 上で使われている ABI には以下の2つの種類があります. 従来から ARM gcc で使用されている ABI. gcc でのコンパイルオプションは -mabi=apcs-gnu です. ARM EABI ARM holdings が定義 http://w

  • Linux Embedded Beginners' Guide: busybox

    次のページ 前のページ 目次へ 5. busybox さて,おつぎは busyboxというプログラムについて. 5.1 busybox とは init, sh, cat, ls, cp など,UNIX の基コマンドを集めたプログラムです. GNU の fileutils などに比べオプションが一部省略されているコマンドもあります. が,最大の特長は「小さなフットプリント」です. 1 つの実行ファイルでサポートしている全てのコマンドに対応しています. 5.2 argv[0] による複数コマンドの同居 原理 busybox では,1 つの実行ファイルで複数のコマンドに対応しています. つまり,同一の実行ファイルイメージであっても,ファイル名を別の名前に替えただけで違ったコマンドとして動作するのです. どのようなしくみで動作してるのでしょう. (UNIX 上での) C の main 関数は i

  • 1