keil MDK AC6禁用半主机模式stm32 HAL库
·
1.使用了AC6则代表不兼容微库MicroLIB,同时不再支持#pragma import
2.找个地方添加以下代码,由deepseek生成(doge
// 禁用半主机模式
__asm(".global __use_no_semihosting");
// 系统接口的空实现(避免链接错误)
void _sys_exit(int code) {
(void)code;
while(1); // 系统挂起
}
// 处理终端字符
void _ttywrch(int ch)
{
(void)ch;
while(1); // 系统挂起
}
// 实现_sys_command_string(解决L6915E错误)
char *_sys_command_string(char *cmd, int len) {
(void)len;
return cmd; // 简单返回输入命令
}
3.
打开Manage Run-Time Environment-》Compiler-》I/O-》勾选以下三个
4.重定向
int fputc(int ch,FILE *f)
{
uint8_t temp[1] = {ch};
while(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_TC) == RESET);
HAL_UART_Transmit(&huart1, temp, 1, 0);
return ch;
}
具体原理本人也不懂
更多推荐

所有评论(0)