重定向printf,不使用微库,采用ARM Compiler 6 报错如何解决?
Posted 一剃解千愁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向printf,不使用微库,采用ARM Compiler 6 报错如何解决?相关的知识,希望对你有一定的参考价值。
复制正点原子的以下代码,不使用微库,采用ARM Compiler 6 报错:
报错::’#pragma import’ is an ARM Compiler 5 extension, and is not supported by ARM Compiler 6
//加入以下代码,支持printf函数,而不需要选择use MicroLIB //需包含#include "stdio.h"
#if 1
#pragma import(__use_no_semihosting)
//标准库需要的支持函数
struct __FILE
{
int handle;
};
FILE __stdout;
//定义_sys_exit()以避免使用半主机模式
void _sys_exit(int x)
{
x = x;
}
//重定义fputc函数
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//循环发送,直到发送完毕
USART1->DR = (u8) ch;
return ch;
}
#endif //以上是自己添加定义的
删了2个下划线struct __FILE
打开魔法棒
加入:
-Wno-error=armcc-pragma-import -Wno-error=armcc-pragma-arm
参考:资料
以上是关于重定向printf,不使用微库,采用ARM Compiler 6 报错如何解决?的主要内容,如果未能解决你的问题,请参考以下文章