1.6.3 $Sub$$ を使用してセミホストと非セミホストの I/O 機能を混合

$Sub$$ を使用して、セミホストと非セミホストの機能を混合することができます。

例えば、UART に直接書き込む fputc() の実装と、fputc() のセミホスト実装の場合、関数に渡される FILE * ポインタの特性によって、これらを両方とも提供できます。

例 1-1 $Sub$$ を使用してセミホスティングと非セミホスティングの I/O 機能を混合

int $Super$$fputc(int c, FILE *fp); int $Sub$$fputc(int c, FILE *fp) {     if (fp == (FILE *)MAGIC_NUM) // MAGIC_NUM は特殊な値であり、     {                            // すべての通常の FILE * ポインタの                                  // 値と異なる。         write_to_UART(c);         return c;     }     else     {         return $Super$$fputc(c, fp);     } }
関連する概念
1.6.2 セミホスティング環境のアプリケーションでの C および C ++ ライブラリの使用
1.6.4 非セミホスティング環境でのライブラリの使用
関連情報
シンボル定義にパッチを適用するための $Super$$ と $Sub$$ の使用
ELF for the ARM Architecture
非機密扱いPDF file icon PDF 版ARM DUI0808CJ
Copyright © 2014, 2015 ARM.All rights reserved.