PSoC® 4 の printf 代替関数 - KBA87093- Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by MoTa_728816 Version: **
Translation - English: Alternate printf Function for PSoC® 4 - KBA87093
質問:
PSoC® 4 では printf 関数は、かなりのフラッシュメモリ容量を使用します。printf の代替となる関数を教えてください。
回答:
printf 関数はツールチェーン (Arm® GCC)で提供されています。代替としては、ここで紹介している iprintf() 関数を使用してください。この関数には printf 関数で使用頻度の高い、いくつかの機能を実装するために最適化されたコードがあります。
iprintf() 関数は下記の書式指定子のみに対応します。
表 1. iprintf() の書式指定子
%s | char の配列 |
%d | 整数の10進数書式 |
%c | char 1文字 |
%x | 整数の16進数書式 |
以下の手順でコードをテストしてください。
1. “Design01”という名称のプロジェクトを作成してください。
2. iprintf.zip をダウンロードして展開してください。iprintf.c と iprintf.h を “Design01.cydsn” フォルダにコピーしてください。
3. iprintf.c と iprintf.h をプロジェクトに追加してください。
4. ステップ 6 に示すように main.c ファイルに #include "iprintf.h" という行を追加してください。
5. デザインに SCBベースの UART コンポーネントを追加し、必要に応じてパラメータを設定してください。UARTコンポーネントに“SCB_1” と名前を付けてください。もし他の名前にしたい場合には、iprintf.c ファイルにある iputc() 関数内の SCB_1_UartPutChar(ch) というコールを変更してください。
インスタンス名が SW_Tx_UART_ 1 のソフトウェア UART コンポーネント (SW_Tx_UART) を使用している場合には、iputc() 関数で関数
SW_Tx_UART_1_PutChar() を使用してください。
6. 以下のコードに示すように、main() 関数で iprintf() 関数コールを使用してください。このコードは、連続的に 文字列 “abcd” と増加していく数字を、10進数、ASCII、および16進数の書式で表示します。