前言
如果你用过IAR,用过STM32,那一定会知道创建新STM32工程时有多痛苦,创建空工程,添加group,添加代码,添加宏定义,选择STM32芯片等步骤
每次新建工程,都需要重新来一遍,那有没有更简单的步骤呢?答案是yes!
假设我们需要在IAR中添加一个STM32F4的工程模版,那么所需要的东西如下:
- IAR 7.20 For ARM
- Win7
- STM32F4xx 标准库文件
基本步骤包括
- 创建IAR标准模版工程
- 把模版放到IAR安装目录(patch)
- 修改配置文件
很简单,让我们一步一步来实现这个功能
1 创建IAR标准工程
像平时一样,根据自己的工程管理习惯,用IAR创建一个工程,然后调整代码和相关工程配置项,调试编译通过
特别注意:创建工程时,需要保证IAR工程文件在最顶层目录
创建好的目录如下所示
2 添加模版工程
接下来,我们需要将标准工程修改为模版工程
- 删除
Debug
和settings
目录,某些情况下,还有存在Release
目录,请删除 - 删除
*.dep
,*.ewt
,*.ewd
,*.eww
四种IAR工程文件,只保留*.ewp
文件
关于上面5种文件的详细分析,请参考本博客上篇文章IAR工程文件分析 - 修改
*.ewp
文件名为templproj.ewp
至此,修改完成,如下图所示
3 修改配置文件
接下来,我们将这个模块添加到IAR工程中
- 在桌面新建一个临时文件夹,名为
tmp
- 在
tmp
中新建目录STM32
, - 在
STM32
中新建目录F4xx
将我们创建的模版工程拷入
F4xx
目录,如下所示1
2
3
4
5
6
7│
└─STM32
│
└─F4xx
│ templproj.ewp
├─App
└─Libs进入
C:\Program Files\IAR Systems\Embedded Workbench 7.2\arm\config\template\project
目录,拷贝C.ENU.projtempl
文件到STM32
和F4xx
同级目录,然后修改名字为STM32.ENU.projtempl
,F4xx.ENU.projtempl
,修改完成后,结构如下所示1
2
3
4
5
6
7│ STM32.ENU.projtempl
└─STM32
│ F4xx.ENU.projtempl
└─F4xx
│ templproj.ewp
├─App
└─Libs
特别注意:projtempl
的名字一定要和目录名字完全一致,不然IAR找不到对应的文件夹*.projtempl
文件用于展示工程模版的基本信息,比如名字和简介什么的
下面我们分别将两个文件修改为下面样式1
2
3
4
5
6<?xml version="1.0" encoding="iso-8859-1"?>
<!--STM32.ENU.projtempl file-->
<templategroup>
<description>STM32 Project template for f0/1/2/4/7 mcu</description>
<displayname>STM32</displayname>
</templategroup>
1 | <?xml version="1.0" encoding="iso-8859-1"?> |
测试
上面几个步骤,看起来很复杂,但实际操作起来,也挺简单的
下面我们来测试效果,将上面tmp
文件中所有文件,拷贝至C:\Program Files\IAR Systems\Embedded Workbench 7.2\arm\config\template\project
目录
在IAR中,新建工程,这时便会出现STM32模版工程,如下图所示
选择STM32,然后选择F4,新建工程,完成后如下图所示,finish
后记
在IAR 7.2上测试时,时常出现不可复现的bug,也许和破解有关系,具体表现为
在显示层次模版目录时,无法显示子目录;UI层次上就是新建IAR工程时,能显示STM32模版,但不能显示F4xx模版信息
暂时无解
规避方案:直接复制IAR模版文件,然后适当修改即可,千万不要重写templproj
!!!