cancel
Showing results for 
Search instead for 
Did you mean: 

Knowledge Base Articles

PSoC® 4 の printf 代替関数 - KBA87093- Community Translated (JA)

ChaitanyaV_61
Employee

PSoC® 4 の printf 代替関数 - KBA87093- Community Translated (JA)

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() の書式指定子

%schar の配列
%d整数の10進数書式
%cchar 1文字
%x整数の16進数書式

以下の手順でコードをテストしてください。

1. “Design01”という名称のプロジェクトを作成してください。

2. iprintf.zip をダウンロードして展開してください。iprintf.ciprintf.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) というコールを変更してください。

001-183066.jpg

インスタンス名が SW_Tx_UART_ 1 のソフトウェア UART コンポーネント (SW_Tx_UART) を使用している場合には、iputc() 関数で関数

SW_Tx_UART_1_PutChar() を使用してください。

6. 以下のコードに示すように、main() 関数で iprintf() 関数コールを使用してください。このコードは、連続的に 文字列 “abcd” と増加していく数字を、10進数、ASCII、および16進数の書式で表示します。

002-1.png

Attachments
0 Likes
Version history
Revision #:
1 of 1
Last update:
‎Jul 14, 2020 06:49 AM
Updated by:
 
Contributors