ARM® コンパイラ 『ARM C および C++ ライブラリと浮動小数点サポートユーザガイド』

バージョン 5.04


目次

序章
本書について
本書の構成
表記規則
Feedback
本製品に関するフィードバック
内容に関するフィードバック
1 ARM C ライブラリと C++ ライブラリ
1.1 C ライブラリへのリンケージが必須
1.2 C および C++ ランタイムライブラリ
1.3 C および C++ ライブラリ機能
1.4 ARM C および C++ ライブラリのライブラリヒープ使用状況の要件
1.5 ARM アーキテクチャ用アプリケーションバイナリインタフェース(ABI)への準拠
1.6 CLIBABI の他の実装に対するオブジェクトファイルの移植性の向上
1.7 ARM C および C++ ライブラリのディレクトリ構造
1.8 ビルドオプションに基づく ARM C および C++ ライブラリのバリアントの選択
1.9 Thumb C ライブラリ
1.10 C++ および C ライブラリと std ネームスペース
1.11 ARM C ライブラリとマルチスレッド
1.12 ARM C ライブラリと再入可能関数
1.13 ARM C ライブラリとスレッドセーフな関数
1.14 C ライブラリでのスタティックデータの使用
1.15 C ライブラリによる __user_libspace スタティックデータ領域の使用
1.16 __user_libspace スタティックデータ領域のサブセクションにアクセスする C ライブラリ関数
1.17 C ライブラリでの既存の関数 __user_libspace() の再実装
1.18 マルチスレッドアプリケーションにおけるロックの管理
1.19 再実装したミューテックス関数を確実に呼び出す方法
1.20 マルチスレッド環境での ARM C ライブラリの使用
1.21 ARM C ライブラリでのスレッドセーフティ
1.22 ARM C++ ライブラリでのスレッドセーフティ
1.23 マルチスレッド環境での浮動小数点ステータスワード
1.24 アプリケーションでの C ライブラリの使用
1.25 セミホスティング環境のアプリケーションでの C および C ++ ライブラリの使用
1.26 $Sub$$ を使用してセミホストと非セミホストの I/O 機能を混合
1.27 非セミホスティング環境でのライブラリの使用
1.28 非セミホスティング環境における C++ 例外
1.29 C ライブラリ関数の直接セミホスティング依存関数
1.30 C ライブラリ関数の間接セミホスティング依存関数
1.31 異なる環境をターゲットとした C ライブラリ API 定義
1.32 C ライブラリを使用しないアプリケーションの作成
1.33 C ライブラリを使用せずにベアマシン C としてアプリケーションを作成
1.34 整数および浮動小数点コンパイラ関数と、C ライブラリなしでのアプリケーションのビルド
1.35 ベアマシン整数 C
1.36 浮動小数点処理を使用したベアマシン C
1.37 カスタマイズされた C ライブラリ起動コードおよび C ライブラリ関数へのアクセス
1.38 C ライブラリを使用する場合の低レベル関数の使用
1.39 C ライブラリを使用する場合の高レベル関数の使用
1.40 C ライブラリを使用する場合の malloc() の使用
1.41 新しい実行環境に合わせた C ライブラリのカスタマイズ
1.42 実行環境の初期化とアプリケーションの実行
1.43 C++ の初期化、構築、および破棄
1.44 .init_array に代わる C$$pi_ctorvec の従来のサポート
1.45 例外システムの初期化
1.46 例外用の緊急時バッファメモリ
1.47 main() から呼び出されるライブラリ関数
1.48 プログラム終了および assert マクロ
1.49 C ライブラリでのロケール関数をカスタマイズするためのアセンブラマクロ
1.50 C ライブラリのロケールサブシステムのリンク時における選択
1.51 ISO8859-1 の実装
1.52 Shift-JIS および UTF-8 の実装
1.53 C ライブラリのロケールサブシステムの実行時における選択
1.54 C ライブラリのロケールデータブロックの定義
1.55 LC_CTYPE データブロック
1.56 LC_COLLATE データブロック
1.57 LC_MONETARY データブロック
1.58 LC_NUMERIC データブロック
1.59 LC_TIME データブロック
1.60 エラー通知、エラー処理、プログラム終了処理のための C ライブラリ関数の変更
1.61 ARM で提供されるヒープおよびヒープを使用するライブラリ関数の使用の回避
1.62 メモリ割り当て関数の C ライブラリサポート
1.63 ヒープ 1 標準ヒープ実装
1.64 ヒープ 2 代替ヒープ実装
1.65 ベアマシン C からのヒープ実装の使用
1.66 スタックポインタの初期化とヒープの上下限
1.67 __initial_sp、__heap_base、および __heap_limit の定義
1.68 実行時のヒープサイズの拡張
1.69 __user_initial_stackheap() の従来のサポート
1.70 C および C++ ライブラリでの入出力関数のカスタマイズ
1.71 C および C++ ライブラリ内での低レベル関数のターゲット依存関係
1.72 C ライブラリ printf ファミリ関数
1.73 C ライブラリ scanf ファミリ関数
1.74 C ライブラリで高レベルライブラリ関数の直接使用を有効化するための低レベルライブラリ関数の再定義
1.75 C ライブラリ関数 fread()、fgets()、および gets()
1.76 C ライブラリでの __backspace() の再実装
1.77 C ライブラリでの __backspacewc() の再実装
1.78 C ライブラリでのターゲットに依存するシステム入出力関数の再定義
1.79 入出力以外の C ライブラリ関数のカスタマイズ
1.80 ARM ライブラリのリアルタイム整数除算
1.81 ARM ライブラリのリアルタイム除算の選択
1.82 ARM C ライブラリが ISO C 仕様の要件を満たす方法
1.83 mathlib エラー処理
1.84 C ライブラリの signal() 関数と追加の型引数によりサポートされる ISO 準拠のシグナルの実装
1.85 ISO 準拠の C ライブラリ入出力の特性
1.86 標準 C++ ライブラリの実装定義
1.87 C ライブラリ関数と拡張機能
1.88 ARM Compilation Tools の各リリースでの C および C++ ライブラリ名の永続性
1.89 リンク時の C および C++ ライブラリの選択
1.90 メイクファイルに明示的な C または C++ ライブラリ名があるプロジェクトの管理
1.91 コンパイラによって生成されたライブラリに存在するヘルパ関数
1.92 C および C++ ライブラリの命名規則
1.93 FILE 宣言およびワイド I/O 関数プロトタイプを無効化するマクロ __ARM_WCHAR_NO_IO の使用
1.94 実行専用メモリを使用するライブラリ関数の使用
2 ARM C マイクロライブラリ
2.1 microlib について
2.2 microlib とデフォルトの C ライブラリの違い
2.3 ARM C マイクロライブラリのライブラリヒープ使用状況の要件
2.4 microlib でサポートされていない ISO C 機能
2.5 microlib を使用したアプリケーションのビルド
2.6 microlib で使用する初期スタックポインタの作成
2.7 microlib で使用するヒープの作成
2.8 microlib とリンクしたプログラムの開始と終了
2.9 microlib 入出力関数のカスタマイズ
3 浮動小数点のサポート
3.1 浮動小数点サポートについて
3.2 ソフトウェア浮動小数点ライブラリ fplib
3.3 fplib ルーチンの呼び出し
3.4 特定形式の数値に対する fplib 算術演算
3.5 floats、long longs、doubles、ints の間の fplib 変換
3.6 float と double の間の fplib 比較
3.7 fplib C99 関数
3.8 ARM 浮動小数点環境の制御
3.9 Microsoft 製品との互換性を維持するための浮動小数点関数
3.10 ARM 浮動小数点環境を制御するための C99 互換関数
3.11 C99 丸めモードおよび浮動小数点例外マクロ
3.12 例外フラグの処理
3.13 丸めモードの処理の関数
3.14 浮動小数点環境全体を保存および復元するための関数
3.15 例外を一時的に無効化する関数
3.16 C99 インタフェースの ARM 浮動小数点コンパイラ拡張
3.17 ユーザ定義の例外トラップハンドラの記述
3.18 ユーザ定義の例外ハンドラの例
3.19 シグナルによる例外トラップ処理
3.20 mathlib(_WANT_SNAN)で提供される C99 シグナル NaN の使用
3.21 mathlib での倍精度浮動小数点関数および単精度浮動小数点関数
3.22 IEEE 754 算術演算
3.23 IEEE 754 算術演算の基本データ型
3.24 IEEE 754 算術演算の単精度データ型
3.25 IEEE 754 算術演算の倍精度データ型
3.26 IEEE 754 算術演算の単精度浮動小数点数値のサンプル
3.27 IEEE 754 算術演算の倍精度浮動小数点数値のサンプル
3.28 IEEE 754 算術演算と丸め
3.29 IEEE 754 浮動小数点演算で発生する例外
3.30 ARM 浮動小数点環境で認識される例外のタイプ
3.31 ベクタ浮動小数点(VFP)サポートライブラリの使用
4 C および C++ ライブラリ関数
4.1 __aeabi_errno_addr()
4.2 alloca()
4.3 clock()
4.4 _clock_init()
4.5 __default_signal_handler()
4.6 errno
4.7 _findlocale()
4.8 _fisatty()
4.9 _get_lconv()
4.10 getenv()
4.11 _getenv_init()
4.12 __heapstats()
4.13 __heapvalid()
4.14 lconv 構造体
4.15 localeconv()
4.16 _membitcpybl()、_membitcpybb()、_membitcpyhl()、_membitcpyhb()、_membitcpywl()、_membitcpywb()、_membitmovebl()、_membitmovebb()、_membitmovehl()、_membitmovehb()、_membitmovewl()、_membitmovewb()
4.17 posix_memalign()
4.18 #pragma import(_main_redirection)
4.19 __raise()
4.20 _rand_r()
4.21 remove()
4.22 rename()
4.23 __rt_entry
4.24 __rt_errno_addr()
4.25 __rt_exit()
4.26 __rt_fp_status_addr()
4.27 __rt_heap_extend()
4.28 __rt_lib_init()
4.29 __rt_lib_shutdown()
4.30 __rt_raise()
4.31 __rt_stackheap_init()
4.32 setlocale()
4.33 _srand_r()
4.34 strcasecmp()
4.35 strncasecmp()
4.36 strlcat()
4.37 strlcpy()
4.38 _sys_close()
4.39 _sys_command_string()
4.40 _sys_ensure()
4.41 _sys_exit()
4.42 _sys_flen()
4.43 _sys_istty()
4.44 _sys_open()
4.45 _sys_read()
4.46 _sys_seek()
4.47 _sys_tmpnam()
4.48 _sys_write()
4.49 system()
4.50 time()
4.51 _ttywrch()
4.52 __user_heap_extend()
4.53 __user_heap_extent()
4.54 __user_setup_stackheap()
4.55 __vectab_stack_and_reset
4.56 wcscasecmp()
4.57 wcsncasecmp()
4.58 wcstombs()
4.59 スレッドセーフな C ライブラリ関数
4.60 スレッドセーフではない C ライブラリ関数
4.61 古い関数 __user_initial_stackheap()
5 浮動小数点サポート関数
5.1 _clearfp()
5.2 _controlfp()
5.3 __fp_status()
5.4 gamma()、gamma_r()
5.5 __ieee_status()
5.6 j0()、j1()、jn()(第 1 種のベッセル関数)
5.7 significand()(数値の小数部)
5.8 _statusfp()
5.9 y0()、y1()、yn()(第 2 種のベッセル関数)
A ライブラリドキュメントに対する改訂
A.1 『ARM C および C++ ライブラリと浮動小数点サポートユーザガイド』に対する改訂

図の一覧

3-1 IEEE 754 単精度浮動小数点形式
3-2 IEEE 754 倍精度浮動小数点形式
5-1 浮動小数点ステータスワードのレイアウト
5-2 IEEE のステータスワードのレイアウト

表の一覧

1-1 C ライブラリの呼び出し
1-2 直接セミホスティング依存関数
1-3 間接セミホスティング依存関数
1-4 最新の API 定義
1-5 スタンドアロン C ライブラリ関数
1-6 デフォルトの ISO8859-1 ロケール
1-7 デフォルトの Shift-JIS ロケールと UTF-8 ロケール
1-8 トラップおよびエラー処理
1-9 入出力依存
1-10 RVCT 4.0 以前での数学関数
1-11 signal() 関数でサポートされるシグナル
1-12 perror() メッセージ
1-13 標準 C++ ライブラリとの相違点
1-14 C ライブラリの拡張
3-1 算術演算ルーチン
3-2 数値形式変換ルーチン
3-3 浮動小数点比較ルーチン
3-4 fplib C99 関数
3-5 FE_EX_INTYPE_MASK オペランドの型フラグ
3-6 FE_EX_OUTTYPE_MASK オペランドの型フラグ
3-7 FE_EX_FN_MASK オペランドの演算の型フラグ
3-8 FE_EX_CMPRET_MASK の比較型フラグ
3-9 単精度浮動小数点値のサンプル
3-10 倍精度浮動小数点値のサンプル
4-1 スレッドセーフな関数
4-2 スレッドセーフではない関数
5-1 _controlfp の引数に使用されるマクロ
5-2 ステータスワードビットの修正
5-3 丸めモードの制御
A-1 発行 I と発行 J の相違点
A-2 発行 H と発行 I の相違点
A-3 発行 G と発行 H の相違点
A-4 発行 F と発行 G の相違点
A-5 発行 E と発行 F の相違点
A-6 発行 D と発行 E の相違点
A-7 発行 C と発行 D の相違点
A-8 発行 B と発行 C の相違点
A-9 発行 A と発行 B の相違点

リリース情報

ドキュメント履歴
発行 日付 機密保持ステータス 変更点
A 28 5 月 2010 非機密扱い ARM コンパイラ v4.1 リリース
B 30 9 月 2010 非機密扱い ARM コンパイラ v4.1 のアップデート 1
C 28 1 月 2011 非機密扱い ARM コンパイラ v4.1 パッチ 3 のアップデート 2
D 30 4 月 2011 非機密扱い ARM コンパイラ v5.0 リリース
E 29 7 月 2011 非機密扱い ARM コンパイラ v5.0 のアップデート 1
F 30 8 月 2011 非機密扱い ARM コンパイラ v5.01 リリース
G 29 2 月 2012 非機密扱い ARM コンパイラ v5.01 リリースマニュアルの更新 1
H 27 7 月 2012 非機密扱い ARM コンパイラ v5.02 リリース
I 31 1 月 2013 非機密扱い ARM コンパイラ v5.03 リリース
J 16 12 月 2013 非機密扱い ARM コンパイラ v5.04 リリース

著作権

® または ™ のマークが付いた言葉およびロゴは、 この著作権情報で別段に規定されている場合を除き、ARM® の EU またはその他の国に おける登録商標および商標です。本書に記載されている他の製品名は、 各社の所有する商標です。

本書に記載されている情報の全部または一部、ならびに本書で紹介する製品は、 著作権所有者の文書による事前の許可を得ない限り、 転用・複製することを禁じます。

本書に記載されている製品は、今後も継続的に開発・改良の対象と なります。本書に含まれる製品およびその利用方法についての情報は、 ARM が利用者の利益のために提供するものです。したがって当社では、製品の市販性または利用の 適切性を含め、暗示的・明示的に関係なく一切の 責任を負いません。

本書は、本製品の利用者をサポートすることだけを目的としています。 本書に記載されている情報の使用、情報の誤りまたは省略、あるいは本製品の誤使用に よって発生したいかなる損失・損傷についても、 一切責任を負いません。

ARM という用語が使用されている場合、"ARM または必要に応じてその子会社" を指します。

本書の一部の情報は、『IEEE 754 - 1985 IEEE Standard for Binary Floating-Point Arithmetic』 に基づいています。記載されている方法による配置と使用から生じる責任 または義務を IEEE では一切放棄しています。

機密保持ステータス

本書は非機密扱いであり、本書を使用、複製、および開示する権利は、ARM および ARM が本書を提供した当事者との間で締結した契約の条項に基づいたライセンスの制限により異なります。

無制限アクセスは、ARM 社内による分類です。

製品ステータス

本書の情報は最終版であり、開発済み製品に対応しています。

Web アドレス

非機密扱いPDF file icon PDF 版ARM DUI0475JJ
Copyright © 2010-2013 ARM.All rights reserved.