最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255php
本章教程为你们介绍如何经过IAR下载程序到芯片里面以及IAR的调试和配置方法。。工具
6.1 初学者重要提示字体
6.2 第1步,建立工程文件夹优化
6.3 第2步,建立新工程ui
6.4 第3步,设置工程分组名spa
6.5 第4步,添加工程文件调试
6.6 第5步,保存建立的Workspaceblog
6.7 第6步,Options配置教程
6.8 第7步,最后一步验证是否建立成功开发
6.9 IAR的字体,多核并行编译,语法提示等设置
6.10 总结
建立一个文件夹,里面包含以下文件(直接将跑马灯例子的Project文件里面内容所有删除,而后整个工程复制进来便可)。
用于记录例程的修改记录和例子简介。
在第一章详细介绍从官网的下载方法。
这个是本章的重点,在这个文件夹里面再创建两个文件夹,EWARMv8文件夹用于存放IAR工程,MDK-ARM(uV5)文件夹里面用于存放MDK工程,方便之后建立MDK的工程。
这个是要用户提供的,开发板已经都提供好,bsp文件夹里面是开发板各个外设的驱动,segger文件夹是硬件异常分析代码。
这个是批处理文件,用于删除MDK和IAR工程编译后生成的obj和list临时文件。
打开IAR,选择Project ->Create New Project
工程名设置为project:
建立后的效果以下:
默认的状况下这里是建立了两个工程,一个用于Debug,一个用于Release。这两个实际上是用的同一个工程,最大的区别是优化等级有所不一样。
咱们这里设置一下,将这两个都删掉,新建立一个Debug方式的,只是仅换了一个名字(主要目的是让你们看下操做方法)。打开菜单Project->EDIT Configration:
先新建后再删除其它两个,由于当前IAR使用的一个是没法删除的。
点击肯定后,再次点击肯定:
能够看到左上角已经有三个了,这咱们选择Flash,将其激活,也就是使用这个:
再次打开菜单Project->EDIT Configration就能够将Debug和Release删除掉了:
如今左上角就只有一个Flash了:
默认新建的工程是下面这样的:
在Workspace栏的空白地方鼠标右击选择Add->Add Group(若是有多个project同时在里面的话,要鼠标左击选中project - Flash,而后右击添加):
经过这种方式,咱们依次建立以下7个分组:
下面咱们为各个分组添加上具体的文件。鼠标左击选中BSP,而后右击选择Add->Add Files
而后在新建的工程文件夹里面查找须要添加的文件便可。
bsp.c 位于路径\User\bsp,主要用于时钟和外设初始化。
bsp.h位于路径\User\bsp,此文件是各类头文件的集中汇总贴,方便管理。
bsp_led.c位于路径\User\bsp\src,用于LED驱动。
bsp_key.c位于路径\User\bsp\src,用于按键驱动。
bsp_timer.c位于路径\User\bsp\src,用于软件定时器组和微妙级单次延迟。
bsp_fmc_io.c位于路径\User\bsp\src,用于IO扩展,这里LED要用到。
bsp_uart_fifo.c位于路径\User\bsp\src,用于6串口FIFO驱动。
stm32f4xx_it.c位于路径User\bsp,用于部分系统中断服务程序。
system_stm32f4xx.c位于路径\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates,主要用于复位RCC相关寄存器和中断向量表位置设置。
这两个文件位于Doc文件夹,主要用于说明例程的功能和更新记录。
startup_stm32f407xx.s 位于路径\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar,主要用于堆和栈空间设置,中断向量表也在这个文件。
stm32f4xx_hal_conf.h位于路径\User\bsp,主要用于HAL库的配置。
其它文件路径:\Libraries\STM32F4xx_HAL_Driver\Src,用到什么外设添加什么驱动文件便可,有些外设驱动跟DMA也有关联,直接添加进来便可。
这两个文件位于路径:\User\segger\HardFaultHandlerMDK,主要用于硬件异常分析。
main.c文件位于文件夹User,实现了一个简单的跑马灯效果。
文件添加完毕后要保存Workspace,点击菜单File->Save Workspace As
弹出的对话框里面选择路径,设置文件名后,保存便可:
剩下就是工程的配置工做了。
IAR的配置基本都集中在Options对话框里面:
这部分主要用于通用设置。选择ST的STM32F407IG:
Library Configration选择全功能库:
Library Options1里面的printf和scanf都选择支持全功能格式:
这部分主要用于编译器设置,优化等级选择默认的低优先级:
Language 1选择C语言和C11规范(在第9章有介绍):
而后就是最重要的头文件路径添加,IAR提供的添加方式都是相对路径:
注意,添加的时候要添加相对路径,使用绝对路径的话,工程换个位置就没法使用了:
将下面路径都添加进去:
同时在预约义宏选项里面添加以下宏定义:
USE_HAL_DRIVER 表示使用HAL库。
STM32F407xx 表示使用F407系列。
USE_FULL_LL_DRIVER表示使用LL库。
这个选项基本用不上,能够不用管,主要是用来指定编译以前和编译以后执行的用户程序。对于本教程配套的例子来讲在这里添加了一个批处理功能,用来实现Objects文件夹里面的hex文件复制到路径Project\EWARMv8里面,方便查找。
Linker选项主要是连接器的配置,其中最主要的是icf文件配置Flash和RAM区。在HAL库的软件包的路径:\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\linker里面提供了不少配置方式(部分截图):
教程配套例子使用的是stm32f407xx_flash.icf,将这个文件复制到所建立工程的路径\Project\EWARMv8里面。而后在Linker选项里面将其添加进来:
添加进来后是个绝对路径:
要修改成相对路径:
添加进来后要设置下中断向量表首地址,堆和栈大小,点击上面截图左下角的Edit按键进行配置。
中断向量表首地址设置为0x0800 0000:
STM32F429BIT6的Flash首地址是0x0800 0000,大小0x200000,即2MB。
默认的RAM空间首地址0x2000 0000,大小0x20000,即192KB。
堆和栈大小分别设置为0x800和0x400:
设置完毕后记得点击保存。
Debugger选项主要用于调试下载,当前IAR支持以下调试工具:
具体的调试设置在下一章有详细说明,本章主要是保证建立的工程可以正常编译。
点击全编译:
编译结果:0错误,0警告,编译成功。
这里将IAR常常用到的设置作个说明。
教程配套例子的Tab size要设置为4,不然代码显示不整齐。菜单Tools -> Options:
菜单Tools -> Options,支持比例字体和等宽字体选择:
电脑有几个核都选上,加快编译速度,我这里是四核:
对于初学者来讲,务必要实际动手操做一遍,之后移植其它程序代码大有裨益。