STM32F407VET6之IAR之ewarm7.80.4工程建立(基于官方固件库1.6版本)

Posted codeworkerliming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F407VET6之IAR之ewarm7.80.4工程建立(基于官方固件库1.6版本)相关的知识,希望对你有一定的参考价值。

今天把stm32F407的工程之IAR建立完成了,特此记录下。

下载官方固件库,STM32F4xx_DSP_StdPeriph_Lib_V1.6.1,V1.8.0版本的同理。
新建以下几个文件

src放官方的各个c文件

inc放官方的各个h文件,以及用户的h文件,这样可以方便在options里只需要一个目录即可,方便点。
cmsis 放官方的.s汇编文件,.icf文件,icf文件是iar特有的,keil创建工程没有这个文件的。
user,放用户自己的C文件
project,放置iar工程,就是工程文件*.ewp所在目录
无obj目录,iar会自动建立该文件的。
最后的目录如下所示:
文件的来源,可以在STM32F4xx_DSP_StdPeriph_Lib_V1.6.1文件中查找,
固件库的目录展开如下:有点长啊~~博客上面放不下。


针对STM32F407需要的,我摘录了部分,主要是拷贝
1、STM32F4xx_StdPeriph_Driver下的inc,src两个文件夹,
2、LibrariesCMSIS下的Include文件夹,
3、STM32F4xx_StdPeriph_Templates模板当中的文件,
4、STM32F4xx_StdPeriph_TemplatesEWARM下的icf文件,
5、LibrariesCMSISDeviceSTSTM32F4xxSourceTemplatesiar下的汇编文件

 

其实工程需要的文件可以参考下官方自带的模板,相互结合,就可以了。

工程设置:
0、选择stm32f407VE芯片
1、库配置Library Configration(在general options下),如果需要使用某些标准的库函数接口(如我们使用的printf and scanf),就需要选择Full。
2、预处理Preprocessor - 添加h头文件的路径,这里我比较简单,所有h文件都放在一起的,因此添加
$PROJ_DIR$..inc
即可,新版的IAR可以自动把绝对路径转换成上述的路径,可以自行试试看,挺方便的。这样的好处是工程可以拷贝到另外一个文件夹,而不需要在设置头文件路径了
3、添加宏定义,
USE_STDPERIPH_DRIVER
STM32F40_41xxx
一行一个即可
4、use cmsis不打钩也可以编译成功。。
5、输出hex文件,output convert选项中,打钩generate...选择Intel extended,再输入输出名称override default。
6、linker选择,添加$PROJ_DIR$..cmsisstm32f4xx_flash.icf。另外iar自带了$TOOLKIT_DIR$configlinkerSTstm32f407xE.icf文件,也可以编译成功的。
最后,stm32F407,没有fmc.c的功能,因此可以remove该文件,不然一大堆编译错误
7、如果需要jlink,等,可以参考其他的文章,在线仿真有jtag,swd两种方式。

以上是关于STM32F407VET6之IAR之ewarm7.80.4工程建立(基于官方固件库1.6版本)的主要内容,如果未能解决你的问题,请参考以下文章

IAR EWARM7.2下,STLink V2调试stm32f103开发板,能下载程序,但是不能断点

STM32F407之搭建工程

STM32F407开发板用户手册第20章 STM32F407的GPIO应用之无源蜂鸣器

STM32F407之ADC

STM32F407开发板用户手册第30章 STM32F407的系统bootloader之串口IAP固件升级

STM32F407之复位和时钟系统