1.9 Thumb C ライブラリ

リンカは、リンクされるオブジェクトに Thhumb 命令が含まれていると、Thumb C ライブラリ内を検索して必要なものを自動的に結合します。

オブジェクトは、以下の項目についてオブジェクトがビルドされていると、Thumb 命令を使用します。
  • --thumb オプションまたは #pragma thumb のいずれかを使用した Thumb コード。
  • アーキテクチャ ARMv4T で --apcs /interwork オプションを使用しているインターワーク。
  • Cortex-M1 や Cortex-M0 など、ARMv6-M アーキテクチャによるターゲットまたはプロセッサ。
  • Cortex-M3 など、ARMv7-M アーキテクチャによるターゲットまたはプロセッサ。
ライブラリの名称は Thumb C ライブラリですが、このライブラリに含まれるコードは必ずしもすべてが Thumb コードとは限りません。ARM 命令を使用できる場合は、memcpy()memset()memclr() などの重要な関数のパフォーマンスを向上させるため、これらの命令が使用されることもあります。ただし、Thumb C ライブラリの大半は、コード密度を最大限高めるために Thumb でコーディングされています。
ARM 命令専用ビルドの場合は、--arm_only オプションを使用してコンパイルします。

  • ARMv6-M ターゲットに使用する Thumb C ライブラリには、16 ビット Thumb コードのみが含まれています。
  • ARMv7-M ターゲットに使用する Thumb C ライブラリには、16 ビットと 32 ビット Thumb コードの両方が含まれています。
関連情報
Cortex-A シリーズプロセッサ
Cortex-R シリーズプロセッサ
Cortex-M シリーズプロセッサ
--arm コンパイラオプション
--thumb コンパイラオプション
--arm_only コンパイラオプション
#pragma thumb
非機密扱いPDF file icon PDF 版ARM DUI0475KJ
Copyright © 2010-2014 ARM.All rights reserved.