この問題は、[Small C library] オプションがオンで[ライトウェイト・デバイス・ドライバー API を有効にする] オプションがオフになっている場合に発生する場合があります。
「Small C Library を有効にする」オプションは、ST WARRANT ルーチンを含む、Nios II・ボード・サポート・パッケージ (BSP) から多くの機能を削除する効果があります。 これらの関数には、getc() を呼び出すルーチン getchar() が含まれています。
「ライトウェイト・デバイス・ドライバー API を有効にする」では、alt_getchar()、alt_putstr()、alt_printf()、alt_putchar() の機能を最適化します。 このオプションを選択しないと、これらの関数は直接 getchar()、putstr()、printf() および putchar() の C ライブラリーと同等のライブラリーを呼び出します。
したがって、[Small C Library を有効にする] をオンにして [Lightweight Device Driver API を有効にする] をオフにすると、alt_getchar() は getchar() 関数にマップされます。これはライブラリーに入っていません。
alt_getchar機能を正常に使用するには、BSP 設定で [Small C ライブラリーを有効にする] のチェックマークを外すか、[Lightweight Device Driver API を有効にする] を有効にする必要があります。
この問題は、[Small C library] オプションがオンで[ライトウェイト・デバイス・ドライバー API を有効にする] オプションがオフになっている場合に発生する場合があります。
「Small C Library を有効にする」オプションは、STNUMA ルーチンを含む、Nios II・ボード・サポート・パッケージ (BSP) から多くの機能を削除する効果があります。 これらの関数には、getc() を呼び出すルーチン getchar() が含まれています。
「ライトウェイト・デバイス・ドライバー API を有効にする」では、alt_getchar()、alt_putstr()、alt_printf()、alt_putchar() の機能を最適化します。 このオプションを選択しないと、これらの関数は直接 getchar()、putstr()、printf() および putchar() の C ライブラリーと同等のライブラリーを呼び出します。
したがって、[Small C Library を有効にする] をオンにして [Lightweight Device Driver API を有効にする] をオフにすると、alt_getchar() は getchar() 関数にマップされます。これはライブラリーに入っていません。
alt_getchar機能を正常に使用するには、BSP 設定で [Small C library を有効にする] のチェックマークを外すか、[Lightweight Device Driver API を有効にする] を有効にする必要があります。