【STM32H7教程】第6章 STM32H7工程模板建立(IAR8)

发布者:创新脑细胞最新更新时间:2019-08-27 来源: eefocus关键字:STM32H7  工程模板  IAR8 手机看文章 扫描二维码
随时随地手机看文章

6.1   初学者重要提示

IAR的工程创建过程还是比较重要的,务必实际上手操作一遍。


6.2   第1步,创建工程文件夹

创建一个文件夹,里面包含如下文件(直接将跑马灯例子的Project文件里面内容全部删除,然后整个工程复制进来即可)。


 Doc文件夹


用于记录例程的修改记录和例子简介。


Libraries文件夹


在第一章详细介绍从官网的下载方法。


Project文件夹


这个是本章的重点,在这个文件夹里面再建立两个文件夹,EWARMv8文件夹用于存放IAR工程,MDK-ARM(uV5)文件夹里面用于存放MDK工程,方便以后创建MDK的工程。


 User文件夹


这个是要用户提供的,开发板已经都提供好,bsp文件夹里面是开发板各个外设的驱动,segger文件夹是硬件异常分析代码。


删除目标文件.bat


这个是批处理文件,用于删除MDK和IAR工程编译后生成的obj和list临时文件。


6.3   第2步,创建新工程

打开IAR,选择Project ->Create New Project


工程名设置为project:


创建后的效果如下:


默认的情况下这里是创建了两个工程,一个用于Debug,一个用于Release。这两个其实是用的同一个工程,最大的区别是优化等级有所不同。


我们这里设置一下,将这两个都删掉,新创建一个Debug方式的,只是仅换了一个名字(主要目的是让大家看下操作方法)。打开菜单Project->EDIT Configration:


先新建后再删除其它两个,因为当前IAR使用的一个是无法删除的。


点击确定后,再次点击确定:

可以看到左上角已经有三个了,这我们选择Flash,将其激活,也就是使用这个:


再次打开菜单Project->EDIT Configration就可以将Debug和Release删除掉了:

现在左上角就只有一个Flash了:

6.4   第3步,设置工程分组名

默认新建的工程是下面这样的:


在Workspace栏的空白地方鼠标右击选择Add->Add Group(如果有多个project同时在里面的话,要鼠标左击选中project - Flash,然后右击添加):



通过这种方式,我们依次创建如下7个分组:



6.5   第4步,添加工程文件

下面我们为各个分组添加上具体的文件。鼠标左击选中BSP,然后右击选择Add->Add Files


然后在新建的工程文件夹里面查找需要添加的文件即可。


添加BSP分组需要的文件


bsp.c 位于路径Userbsp,主要用于MPU、Cache、时钟和外设初始化。


bsp.h位于路径Userbsp,此文件是各种头文件的集中汇总贴,方便管理。


bsp_led.c位于路径Userbspsrc,用于LED驱动。


bsp_key.c位于路径Userbspsrc,用于按键驱动。


bsp_timer.c位于路径Userbspsrc,用于软件定时器组和微妙级单次延迟。


bsp_fmc_io.c位于路径Userbspsrc,用于IO扩展,这里LED要用到。


bsp_uart_fifo.c位于路径Userbspsrc,用于8串口FIFO驱动。


stm32h7xx_it.c位于路径Userbsp,用于部分系统中断服务程序。


添加CMSIS分组需要的内容


system_stm32h7xx.c位于路径LibrariesCMSISDeviceSTSTM32H7xxSourceTemplates,主要用于复位RCC相关寄存器和中断向量表位置设置。


添加Doc分组需要的内容



这两个文件位于Doc文件夹,主要用于说明例程的功能和更新记录。


添加EWARMv8分组需要的内容



startup_stm32h743xx.s 位于路径LibrariesCMSISDeviceSTSTM32H7xxSourceTemplatesiar,主要用于堆和栈空间设置,中断向量表也在这个文件。


添加HAL_Driver分组需要的内容


stm32h7xx_hal_conf.h位于路径Userbsp,主要用于HAL库的配置。


       其它文件路径:LibrariesSTM32H7xx_HAL_DriverSrc,用到什么外设添加什么驱动文件即可,有些外设驱动跟DMA也有关联,直接添加进来即可。


添加SEGGER/HardFault分组需要的内容


这两个文件位于路径:UserseggerHardFaultHandlerMDK,主要用于硬件异常分析。


添加User分组需要的内容



main.c文件位于文件夹User,实现了一个简单的跑马灯效果。


6.6   第5步,保存创建的Workspace

文件添加完毕后要保存Workspace,点击菜单File->Save Workspace As



弹出的对话框里面选择路径,设置文件名后,保存即可:



剩下就是工程的配置工作了。


6.7   第6步,Options配置

IAR的配置基本都集中在Options对话框里面:


6.7.1      General Options选项

这部分主要用于通用设置。选择ST的STM32H743XI:



Library Configration选择全功能库:



Library Options1里面的printf和scanf都选择支持全功能格式:



6.7.2      C/C++ Compiler选项

这部分主要用于编译器设置,优化等级选择默认的低优先级:



Language 1选择C语言和C11规范(在第9章有介绍):



然后就是最重要的头文件路径添加,IAR提供的添加方式都是相对路径:



注意,添加的时候要添加相对路径,使用绝对路径的话,工程换个位置就无法使用了:



将下面路径都添加进去:



同时在预定义宏选项里面添加如下宏定义:


USE_HAL_DRIVER 表示使用HAL库。


STM32H743xx 表示使用H743系列。



6.7.3      Build Actions选项


这个选项基本用不上,可以不用管,主要是用来指定编译之前和编译之后执行的用户程序。对于本教程配套的例子来说在这里添加了一个批处理功能,用来实现Objects文件夹里面的hex文件复制到路径ProjectEWARMv8里面,方便查找。



6.7.4      Linker选项

Linker选项主要是链接器的配置,其中最主要的是icf文件配置Flash和RAM区。在HAL库的软件包的路径:DriversCMSISDeviceSTSTM32H7xxSourceTemplatesiarlinker里面提供了很多配置方式:



教程配套例子使用的是stm32h743xx_flash.icf,将这个文件复制到所创建工程的路径ProjectEWARMv8里面。然后在Linker选项里面将其添加进来:



添加进来后是个绝对路径:



要修改为相对路径:



添加进来后要设置下中断向量表首地址,堆和栈大小,点击上面截图左下角的Edit按键进行配置。


中断向量表首地址设置为0x0800 0000:



STM32H743XIH的Flash首地址是0x0800 0000,大小0x200000,即2MB。


默认的RAM空间选择DTCM,首地址0x2000 0000,大小0x20000,即128KB。



堆和栈大小分别设置为0x1000和0x800:



设置完毕后记得点击保存。


6.7.5      Debugger选项

Debugger选项主要用于调试下载,当前IAR支持如下调试工具:



具体的调试设置在下一章有详细说明,本章主要是保证创建的工程能够正常编译。


6.8   第7步,最后一步验证是否创建成功

点击全编译:



编译结果:0错误,0警告,编译成功。



6.9   IAR的字体,多核并行编译,语法提示等设置

这里将IAR经常用到的设置做个说明。


6.9.1      Tab Size设置

教程配套例子的Tab size要设置为4,否则代码显示不整齐。菜单Tools -> Options:



6.9.2      字体设置

菜单Tools -> Options,支持比例字体和等宽字体选择:



6.9.3      多核并行编译

电脑有几个核都选上,加快编译速度,我这里是四核:



6.10 总结

对于初学者来说,务必要实际动手操作一遍,以后移植其它程序代码大有裨益。

关键字:STM32H7  工程模板  IAR8 引用地址:【STM32H7教程】第6章 STM32H7工程模板建立(IAR8)

上一篇:【STM32H7教程】第7章 STM32H7下载和调试方法(IAR8)
下一篇:【STM32H7教程】第5章 STM32H7下载和调试方法(MDK5)

推荐阅读最新更新时间:2024-11-06 06:38

一文深入了解STM32H7芯片
初学STM32H7一定要优先整体把控芯片的框架,不要急于了解单个外设的功能。 1 初学者重要提示 学习一款新的芯片,优先掌握系统框架是比较重要的,建议逐渐养成这种学习习惯,然后各个击破即可。 本章节提供了多张STM32H7的框图,这些框图都非常具有代表性。很多时候记忆知识点比较费脑子,记录这些框图是一种非常好的方式。 对于本章节提供的部分知识点,无法理解透彻,暂时没有关系。随着后面的深入学习,基本都可以掌握。 重要的MPU和Cache知识分别放在了第23章和第24章。 2 STM32H7硬件框图 学习一款新的芯片,需要优先了解一下它的整体功能设计。需要的资料主要是来自官网和数据手册,比如我们V7开发板使用的STM32H74
[单片机]
一文深入了解<font color='red'>STM32H7</font>芯片
STM32H7实现8通道ADC采集(软件触发+DMA传输)
使用CubeMX工具,对DMA进行配置。 dma相关的配置比较简单,主要是adc配置相关的修改: 数据要设置成DMA循环模式ADC_CONVERSIONDATA_DMA_CIRCULAR; 溢出操作要设置为覆盖ADC_OVR_DATA_OVERWRITTEN; 主函数逻辑代码如下: #include sys.h #include delay.h #include usart.h #include adc.h #include dma.h u16 buffer ; int main(void) { u16 adcx; //Cache_Enable(); //打开L1-Cache HAL
[单片机]
<font color='red'>STM32H7</font>实现8通道ADC采集(软件触发+DMA传输)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved