IAR for STM32F4xx
目前STM32教程多采用 Keil 作为开发平台。实验室采用 IAR 作为开发平台,所以这里介绍一下 IAR 平台下的工程建立过程。
0. IAR介绍
IAR Systems 于1983年由安德斯·朗德格伦创立,是世界领先的嵌入式系统开发工具和服务供应商,客户涉及 20,000 多家大型和小型公司。IAR Systems 被用来开发基于 8,16 和 32 位处理器的各种产品。IAR Systems 的产品包括:带有 C/C++ 编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具,尤以支持众多知名半导体公司的微处理器的 C 编译器 IAR Embedded Workbench 著名,应用涵盖工业自动化,医疗设备,消费电子和汽车行业等多个领域。
主要版本有
IAR Embedded Workbench for ARM
IAR Embedded Workbench for ColdFire
IAR Embedded Workbench for HCS12
IAR Embedded Workbench for 8051
1. STM32标准外设库
意法半导体(ST)官方提供了各产品线的标准外设库和外设例程。我们可以从官网直接下载最新的标准外设库和外设例程。以 STM32F4xx 为例:
下载即可。
下载可能需要注册。
下载后文件结构如图:
Libraries 文件夹下放的是 STM32 的系统的标准外设库。
Project 文件夹下是官方提供的项目模板。
Project 文件夹里包含官方提供的例程(Examples)和项目模板(Templates)。官方提供了 IAR、Keil、System Workbench 和 TreSTUDIO 四种开发工具的模板。
2. 工程设置
因为实验室统一版本的要求,安装的IAR版本低于官方提供的模板开发版本,工程设置信息部分丢失,需要重新设置。
根据自己的开发芯片型号,选择合适的工程。
然后设置选项,主要更改内容有:
设备芯片型号。
C/C++编译器的包含文件路径和预定义(Define)。
连接器设置文件。
根据自己的情况选择相应的调试器。
3. Warning[Pe223]: function "RCC_AHB1PeriphClockCmd" declared implicitly
设置完以上内容后,编译测试,发现如上的错误信息。
主要原因是因为缺少一个宏定义 USE_STDPERIPH_DRIVER。这个定义出现在 stm32f4xx.h 文件中。
在 121 行位置,这个宏定义被注释掉了,如果使用 V3.0 以上版本固件库,需要把该注释解除。
之后再编译,会出现
Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once)的警告。
这个警告产生的原因是 Windows 中的换行符使用表示换行,在 UNIX 类系统中则使用。因此当一个文件从一个系统转换到另外一个系统,因为换行符的定义不同就会产生问题。
因为固件库里有大量的文件需要修改,好在该警告对编译没有影响。可以选择将其警告信息屏蔽。
在 Opitons - C/C++ - Diagnostic - Suppress these diagnostic:
将错误代码 Pa050 填入即可。
再次完整编译,0 error,0 warning,完美。
|