RealView® Compilation Tools ライブラリ / 浮動小数点サポートガイド

バージョン 4.0


Table of Contents

1. 序章
本書について
対象読者
本書の構成
表記規則
参考資料
フィードバック
RealView Compilation Tools に関するフィードバック
本書に関するフィードバック
1. はじめに
1.1. ランタイムライブラリについて
1.1.1. ARM アーキテクチャ用 ABI への準拠
1.1.2. ライブラリのディレクトリ構造
1.1.3. ビルドオプションとライブラリバリアント
1.1.4. VFP サポートライブラリの使用
1.1.5. Thumb C ライブラリ
1.2. 浮動小数点サポートについて
2. C のライブラリと C++ のライブラリ
2.1. C および C++ ライブラリについて
2.1.1. C および C++ ライブラリの機能
2.1.2. ネームスペース
2.2. 再入可能およびスレッドセーフコードの記述
2.2.1. 再入可能性とスレッドセーフティについて
2.2.2. C ライブラリでのスタティックデータの使用
2.2.3. __user_libspace スタティックデータ領域
2.2.4. マルチスレッドアプリケーションにおけるロックの管理
2.2.5. マルチスレッドアプリケーションでの ARM C ライブラリの使用
2.2.6. ARM C ライブラリでのスレッドセーフティ
2.2.7. ARM C++ ライブラリでのスレッドセーフティ
2.3. C ライブラリを使用したアプリケーションの作成
2.3.1. アプリケーションでのライブラリの使用
2.3.2. セミホステッド環境向けのアプリケーションの作成
2.3.3. 非セミホスティング環境向けのアプリケーションの作成
2.4. C ライブラリを使用しないアプリケーションの作成
2.4.1. 整数および浮動小数点ヘルパ関数
2.4.2. ベアマシン整数 C
2.4.3. 浮動小数点を使用したベアマシン C
2.4.4. C ライブラリの利用
2.4.5. スタンドアロン C ライブラリ関数
2.5. 新しい実行環境に合わせた C ライブラリのカスタマイズ
2.5.1. C/C++ プログラムでのライブラリ関数の使用方法
2.5.2. __rt_entry
2.5.3. プログラムからの終了処理
2.5.4. __rt_exit()
2.5.5. __rt_lib_init()
2.5.6. __rt_lib_shutdown()
2.6. スタティックデータアクセスのカスタマイズ
2.7. アセンブラマクロによるロケールと CTYPE のカスタマイズ
2.7.1. リンク時におけるロケールの選択
2.7.2. 実行時におけるロケールの選択
2.7.3. ロケールブロックの定義
2.7.4. LC_CTYPE データブロック
2.7.5. LC_COLLATE データブロック
2.7.6. LC_MONETARY データブロック
2.7.7. LC_NUMERIC データブロック
2.7.8. LC_TIME データブロック
2.7.9. _get_lconv()
2.7.10. localeconv()
2.7.11. setlocale()
2.7.12. _findlocale()
2.7.13. lconv 構造体
2.8. エラー通知、エラー処理、プログラム終了処理のカスタマイズ
2.8.1. _sys_exit()
2.8.2. errno
2.8.3. __rt_errno_addr()
2.8.4. __raise()
2.8.5. __rt_raise()
2.8.6. __default_signal_handler()
2.8.7. _ttywrch()
2.8.8. __rt_fp_status_addr()
2.9. ストレージ管理のカスタマイズ
2.9.1. ARM で提供されるヒープおよびヒープを使用する関数使用の回避
2.9.2. malloc のサポート
2.10. ランタイムメモリモデルのカスタマイズ
2.10.1. メモリモデル
2.10.2. ランタイムメモリモデルの制御
2.10.3. 独自のメモリモデルの記述
2.10.4. __user_setup_stackheap()
2.10.5. __user_initial_stackheap()
2.10.6. __user_heap_extend()
2.10.7. __user_heap_extent()
2.10.8. __rt_stackheap_init()
2.10.9. __rt_heap_extend()
2.11. 入出力関数のカスタマイズ
2.11.1. 低レベル関数への依存性
2.11.2. ターゲットに依存する入出力サポート関数
2.11.3. _sys_open()
2.11.4. _sys_close()
2.11.5. _sys_read()
2.11.6. _sys_write()
2.11.7. _sys_ensure()
2.11.8. _sys_flen()
2.11.9. _sys_seek()
2.11.10. _sys_istty()
2.11.11. _sys_tmpnam()
2.11.12. _sys_command_string()
2.11.13. #pragma import(_main_redirection)
2.12. その他の C ライブラリ関数のカスタマイズ
2.12.1. clock()
2.12.2. _clock_init()
2.12.3. time()
2.12.4. remove()
2.12.5. rename()
2.12.6. system()
2.12.7. getenv()
2.12.8. _getenv_init()
2.13. リアルタイム除算の選択
2.14. ISO 実装定義
2.14.1. ISO C ライブラリの実装定義
2.14.2. 標準 C++ ライブラリの実装定義
2.15. C ライブラリの拡張
2.15.1. atoll()
2.15.2. strtoll()
2.15.3. strtoull()
2.15.4. printf()
2.15.5. snprintf()
2.15.6. vsnprintf()
2.15.7. lldiv()
2.15.8. llabs()
2.15.9. wcstombs()
2.15.10. alloca()
2.15.11. strlcpy()
2.15.12. strlcat()
2.15.13. _fisatty()
2.15.14. __heapstats()
2.15.15. __heapvalid()
2.16. ライブラリの命名規則
2.16.1. ARM ライブラリの配置
2.16.2. ヘルパ関数
2.16.3. ライブラリのバリアントの識別
3. C マイクロライブラリ
3.1. microlib について
3.1.1. デフォルトの C ライブラリとの違い
3.2. microlib を使用したアプリケーションの作成
3.3. microlib の使用
3.3.1. スタックの作成
3.3.2. ヒープの作成
3.3.3. プログラムの開始と終了
3.4. microlib 入出力関数のカスタマイズ
3.5. microlib でサポートされていない ISO C 機能
4. 浮動小数点サポート
4.1. ソフトウェア浮動小数点ライブラリ fplib
4.1.1. 浮動小数点ライブラリ fplib の機能
4.1.2. 特定形式の数値に対する演算
4.1.3. float、double、int の間の変換
4.1.4. long long と他の数値形式との変換
4.1.5. 浮動小数点の比較
4.1.6. C99 の関数
4.2. 浮動小数点環境の制御
4.2.1. __ieee_status()
4.2.2. __fp_status()
4.2.3. Microsoft 互換関数
4.2.4. C99 互換関数
4.2.5. C99 インタフェースの ARM コンパイラ拡張
4.3. 数学ライブラリ mathlib
4.3.1. mathlib での範囲の縮小
4.3.2. 浮動小数点数の型を判断するマクロ(fpclassify)
4.3.3. 数値が有限かどうかを判断するマクロ(isfinite)
4.3.4. 数値が無限かどうかを判断するマクロ(isinf)
4.3.5. 数値が NaN かどうかを判断するマクロ(isnan)
4.3.6. 数値が正規かどうかを判断するマクロ(isnormal)
4.3.7. 数値の符号ビットを返すマクロ(signbit)
4.3.8. 符号コピー関数(copysign、copysignf)
4.3.9. 比較マクロ(isgreater、isgreaterequal、isless、islessequal、islessgreater、isunordered)
4.3.10. 逆双曲線関数(acosh、asinh、atanh)
4.3.11. 立方根(cbrt)
4.3.12. エラー関数(erf、erfc)
4.3.13. exp(x)-1 を求める関数(expm1)
4.3.14. ガンマ関数(gamma、gamma_r)
4.3.15. 斜辺関数(hypot)
4.3.16. 第 1 種のベッセル関数(j0、j1、jn)
4.3.17. ガンマ関数の対数
4.3.18. x + 1 の対数(log1p)
4.3.19. IEEE 754 剰余関数(remainder)
4.3.20. IEEE 整数への丸め演算(rint)
4.3.21. 数値の小数部を返す関数(significand)
4.3.22. 第 2 種のベッセル関数(y0、y1、yn)
4.4. IEEE 754 算術演算
4.4.1. 基本データ型
4.4.2. 算術演算と丸め
4.4.3. 例外

著作権

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

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

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

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

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

機密保持ステータス

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

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

製品ステータス

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

Revision History
Revision A2007 年 3 月RealView Development Suite v3.1 向けリリース 3.1
Revision B2008 年 9 月RealView Development Suite v4.0 向けリリース 4.0
Copyright © 2007-2008 ARM Limited. All rights reserved.ARM DUI 0349BJ
Non-Confidential