这两天在调试一个cortex M3的开发板,需要在程序中实现printf功能。不过这里有一个问题就是:系统还没有起来的时候,没有供我们调用printf的库,所以不能直接调用printf。于是上网收索资料,发现可以通过一些方法实现,下面介绍一种方法。
在uart.c文件中添加如下代码
#pragma import(__use_no_semihosting) //定义一个宏避免使用semhosting(半主机模式)
struct __FILE
{
int handle;
} __stdout;
_sys_exit(int x) //定义_sys_exit()以避免使用半主机模式
{
x = x;
}
int fputc(int ch, FILE *f) //重定义fputc函数