工作环境为IAR 8.30.1+STM32F407ZET6,
在使用某原keil例程时出现如图诸多错误:

解决方法:从标准库路径\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar下找到以下文件:

复制startup_stm32f40_41xxx.s文件替换工程中原有startup文件。
随后,仍然存在另一些问题:

解决方案:
将原代码中
__asm void MSR_MSP(u32 addr)
{
MSR MSP, r0 //set Main Stack value
BX r14
}
诸多这样的汇编代码改写为:
void MSR_MSP(u32 addr)
{
asm("MSR MSP, r0") ; //set Main Stack value
asm("BX r14");
}
问题解决~
再次编译,最后两个问题:

参考解决方案:
在usart.c中重新定义typedef struct __FILE FILE;

无报错了~
本文解决了在IAR8.30.1环境下使用STM32F407ZET6进行开发时遇到的编译错误。通过替换startup文件并修改特定汇编代码,成功解决了大部分问题。最后,在usart.c中重新定义了FILE类型,彻底消除了所有编译错误。
2万+

被折叠的 条评论
为什么被折叠?



