得到了一块NucleoWB55RG 板子,不喜欢官方的工程文件结构,想要搭建一个自己的工程模板。
st的支持的开发环境有很多:keil,iar,stm32cube等,这里选择iar
st开发的库方式有3种,标准库,HAL和LL库,这里使用官方下载的HAL库。
还可以安装软件cubeMX,使用图形化的配置生成工程,但个人还是更喜欢自己动手搭建工程,可以更加熟悉工程文件结构。
安装开发环境
网上找到IAR的开发环境,按步骤安装和添加license,这里使用的版本如下:
预先准备库包
从官方网站搜索下载到对应nucleo wb55rg的FW library,这里使用的版本如下:
新建工程
新建工程前,可先在想要保存工程的路径上添加一些分类的文件夹,根据个人喜好就行,大小写均可。我的分类如下:
halDriver:用于存放hal库中的驱动文件
startup: 用于存放特定型号MCU的启动文件,一般是汇编文件
user:用于存放main,以及用户开发的文件
ewArm:用于存放工程文件和相关配置
cmsis:用于存放cmsis相关文件以及和其紧密相关的device特定文件
bsp: board support package, 用于存放官方提供的板级支持包文件,如果不想添加或者自己开发都可以。
打开iar,点击menu project -> create New Project,选择Tool chain: Arm, 点击OK,保存到上述ewArm文件夹路径下
添加文件
将对应的文件copy添加到工程模板中
添加启动文件
只添加对应的即可
添加 cmsis文件
如图所示。为方便操作,cmsis–core–include中文件全部添加,后续可将不需要的多余文件删除掉
添加驱动文件
将所有驱动文件添加
添加完成
添加完成后的最终各个文件夹如下。
并且将hal driver下的stm32wbxx_hal_conf_template.h 和stm32wbxx_hal_msp_template.c 两个文件copy到user下,重命名为stm32wbxx_hal_conf.h 和stm32wbxx_hal_msp.c。
创建工程分组
右键工程文件名,添加分组,如图所示
添加工程文件
向各个group添加对应的C文件,最终效果如下,Output是添加后自动生成的,无需关心。HAL库中的文件,template不要添加,其他hal文件可以根据需要添加。初始工程添加几个即可,后续可根据编译提醒再进行添加。
工程配置
右键工程名称,选择Options
选择使用的芯片型号
添加必要宏和头文件,头文件可以下拉选择,切换为相对包含路径,建议使用相对路径,方便copy 工程到其他路径
最终效果如下:
编译生成
点击Build 按钮
编译成功。
修改.gitignore
.gitignore 是为了方便git管理,排除掉编译生成的文件。可将下面内容添加到文件中
# IAR 项目生成的文件和文件夹
*.ewd
*.ewt
*.ewp
*.dep
*.dni
*.pbd
*.wsdt
*.svd
*.map
*.out
*.hex
*.bin
*.elf# 调试和日志文件
*.log
*.dmp# 临时文件和备份文件
*.bak
*.tmp
*.~*# 自动生成的配置文件
Debug/
Release/
Exe/
Obj/# 可能包含用户特定设置的文件
.eww
说明
这就是我们的基础工程模板了。
后续可以添加自己的应用程序文件了,也可以进一步将不需要的cmsis文件进行清理,编译后通过文件列表可以看到需要的头文件。
虽然这里是根据nucleo 板来搭建的工程,其实针对st ARM芯片搭建工程的方式都是相似的。根据文件路径和文件名称,很容易了解文件的作用和功能的。
下载链接
下面链接择一即可。
- nucleo_wb55rg_template.zip
- url: https://download.csdn.net/download/lanseliuxing/90708570
或者gitee repo
commit: c157251499c3fabb34908f0443a363110f902798
搞定收工。