From cb7ac4ed487088c14c13d07f4a50961b64ed8f4e Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Tue, 07 Jul 2026 00:13:55 +0800 Subject: [PATCH] update Keil5 printf implement description --- ex1.auto-light/Board/miscdev.c | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ex1.auto-light/Board/miscdev.c b/ex1.auto-light/Board/miscdev.c index e2d294d..b295827 100644 --- a/ex1.auto-light/Board/miscdev.c +++ b/ex1.auto-light/Board/miscdev.c @@ -174,13 +174,15 @@ *+----------------------+ */ -/* gcc 编译器中的 printf 函数将会调用 __io_putchar() 函数,实现最终的字符打印 - * keil编译器中的 printf 函数将会调用 fputc() 函数,实现最终的字符打印 - * 这里我们定义一个宏 PUTCHAR_PROTOTYPE 来兼容这两个编译器所需要的函数原型; +/* gcc 编译器的 printf 将会调用 __io_putchar() 函数,实现最终的字符打印 + * keil编译器的 printf 将会调用 fputc() 函数,实现最终的字符打印 + * 这里我们定义一个宏 PUTCHAR_PROTOTYPE 来兼容两个编译器所需要的函数原型 + * + * 注意: + * 1. Keil5 工程需要勾选:Options for Target -> Target -> Use MicroLIB + * 2. Keil5 的编译器 armclang(AC6) 会定义 __GNUC__ 宏,而旧版 armcc(AC5) 则不会 */ -#if defined(__ARMCC_VERSION) /* MDK ARM Compiler */ -FILE __stdout; -FILE __stdin; +#if defined(__ARMCC_VERSION) /* */ #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #elif defined(__GNUC__) /* GCC */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) -- Gitblit v1.10.0