RTX操作系统下,使用printf会进入HardFault_Handler中断

2019-07-20 10:38发布

使用RTX操作系统,由于需要使用FlashFS文件管理,因此没法使用MicroLib。但是不使用微库的情况下,一遇到printf,程序就会进入HardFault_Handler中断。已在串口中加入以下代码:
#pragma import(__use_no_semihosting)  
void _ttywrch(int ch)
{
for (;;);
}

struct __FILE
{
        int handle;
        /* Whatever you require here. If the only file you are using is */
        /* standard output using printf() for debugging, no file handling */
        /* is required. */
};
/* FILE is typedef¡ˉ d in stdio.h. */
FILE __stdout;      

void _sys_exit(int x)
{
        x = x;
}

int fputc(int ch, FILE *f)
{      
        while((USART2->SR&0X40)==0);
        USART2->DR = (u8) ch;      
        return ch;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。