keil5工程 AC5 编译器升级 AC6编译器
- 1.概述
- 2.移植
1.概述
传统keil mdk的编译速度远远落后于IAR,但自从keil新版发布之后,AC6编译器要超过了IAR的编译速度,接下来我将简单叙述一下,如何基于正点原子的工程移植。
2.移植
首先我们打开一个工程,我这里打开的是正点原子TFT LCD实验工程。
打开后工程的界面如上图所示,接下来点击图中的按钮
出来的界面是这样的
然后点击图中的地方修改成,V6的编译器
再点击ok,进行编译
编译之后可以看见,输出的错误有很多,这时需要修改一些东西。
打开sys.c文件,可以看到有很多错误
把上面报错的函数全部换成下面这种格式
void WFI_SET(void)
{__ASM volatile("WFI;");
}
//关闭所有中断(但是不包括fault和NMI中断)
void INTX_DISABLE(void)
{__ASM volatile("CPSID I");__ASM volatile("BX LR");
}
//开启所有中断
void INTX_ENABLE(void)
{__ASM volatile("CPSIE I");__ASM volatile("BX LR");
}
//设置栈顶地址
//addr:栈顶地址
void MSR_MSP(u32 addr)
{__ASM volatile("MSR MSP, r0"); //set Main Stack value__ASM volatile("BX r14");
}
接着再打开usart.c文件,也能够看到报错
将上面报错的换成下面这种
#if 1
__ASM (".global __use_no_semihosting");
//标准库需要的支持函数
//struct __FILE
//{
// int handle;
//};
接下来我们点击编译
可以看到,错误没有了,这四条警告是由于形参类型问题导致的,接下来消除警告。
打开main函数能够看到,形参类型报了警告
把字符串常量前面全部加上(u8*)就可以把警告消除了。
至此,AC5编译器成功升级至AC6