方法总结学习自b站野火开发板视频:
【入门篇】11-新建工程—固件库版本(初学者必须认认真真看)_哔哩哔哩_bilibili
手动配置步骤极其复杂,可直接使用野火或正点原子开发板资源中的工程模板即可,工程模板中已跳过下面所有配置步骤,使用时只需调整自己所用芯片型号和仿真器类型即可。
工程模板链接:https://download.csdn.net/download/wxyczhyza/87663765
step1 建立工程文件夹
1. 新建工程文件夹【Fwlib-template】
2. 在文件夹内新建四个文件夹:
Doc:用于存放项目说明文档,比如:readme.txt
Libraries:用于存放库文件,比如:标准库,HAL库
Project:用于存放Keil5的项目文件。
User:用于存放用户自定义的代码文件,比如main.c。
step2 新建工程
1. 点击keil5【Project】菜单的【】新建工程,命名为【test】,将工程存放到step1中的project文件夹内。
2. 在弹出的窗口内选择stm32对应的芯片(如果找不到stm32的芯片,需要安装芯片包),我用的是stm32f103zet,所以选择的是【stm32f103ze】
如果没有芯片包的话可到官网下载:http://www.keil.com/dd2/pack/
3. 关闭弹出的环境管理窗口。
4. 打开项目管理按钮,添加下面几个group:STARTUP、CMSIS、FWLIB、USER、DOC
step3 复制标准库到工程
1. 将固件库的libraries中的所有文件复制到自建工程的libraries文件夹内。
step4 简化文件
为了简化工程中的文件结构和简化调用头文件时include的路径,将标准库中不必要的说明文档删除,同时调整各个文件的路径。
1. 进入【fwlib-template》libraries》CMSIS】路径,删除除【CM3】外的其他文件。
2. 进入【Fwlib-template\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x】文件夹,将文件夹内的所有文件复制到【Fwlib-template\Libraries\CMSIS\】路径。
3. 同样的,将【CMSIS》CM3》CoreSupport】目录的所有文件复制到【CMSIS】目录下。
4. 复制完成后,CMSIS目录下的文件如下(红圈内为前两部复制过来的文件):
5. 由于【CM3】的文件已经拷到CMSIS目录,所以可以直接删除掉【CM3】文件夹,删除后,CMSIS文件夹内容如下:
6. 进入startup,将其他IDE对应的启动文件删掉。由于我用的keil5,所以保留【arm】文件夹。
7. 进入上一步的【arm】文件夹,将里面所有内容复制到【startup】目录。
8. 返回到startup目录,因为【arm】文件夹内的内容已拷贝出来了,所以将【arm】文件夹也删掉。删掉后,【startup】目录内文件如下:
step4 配置User文件夹
1. 将标准固件库一个项目文件夹(Projects中的任意一个示例)的以下三个文件复制到自建工程的【user】文件夹内 。
2. 在自建工程的【user】文件夹内新建main.c文件,文件内容如下:
int main(void)
{
}
step5 工程目录里面的启动文件、c文件配置到keil5各个group内
这一步是将上一个部复制的各个文件包含到keil5工程各个group内,以便程序查找。
1. 双击keil5软件工程的【startup】分组,打开对话框,
并将【\Fwlib-template\Libraries\CMSIS\startup】内对应的启动文件复制到【startup】group。
我用的是后缀为【hd.s】的启动文件。
2. 将【Fwlib-template\Libraries\CMSIS】文件夹中的.c文件全部添加到CMSIS分组:
3. 将【Fwlib-template\Libraries\STM32F10x_StdPeriph_Driver\src】目录中的所有c文件添加到FMLIB分组:
4. 将【Fwlib-template\User】内的.c文件配置到USER分组:
5. 将【Fwlib-template\Doc】内的readme.txt配置到DOC分组:
step6 将工程目录包含h文件的路径添加到c/c++路径
1. 打开【options for target】工具的【c/c++】选项卡,单击其中【Include Paths】的路径选择按钮:
2. 将所有h文件的上一级文件夹添加到【Include Paths】中,具体有:
【\Fwlib-template\Libraries\CMSIS】
【\Fwlib-template\Libraries\STM32F10x_StdPeriph_Driver\inc】
【\Fwlib-template\User】
step7 包含宏定义
1. 为了避免每次调用【stm32f10x_conf.h】,将宏【USE_STDPERIPH_DRIVER】添加到预定义的宏中。
2. 将自己用的stm32的版本也添加到预定义的宏:
注意,两个宏之间要用英文逗号分隔
step8 配置工程编译选项
1. 打开【options for target】工具的【device】选项卡,选择自己所用的芯片型号。
2. 打开【target】选项卡,选择v5编译器,并勾选【Use MicroLIB】(以便使用printf等嵌入式开发所需要的函数库)。
3. 打开【output】选项卡,按如下设置:
①、选择编译文件输出路径,可默认。
②、选择编译生成哪些文件,全部勾选。
③、设置生成的可执行文件的文件名。
4. 配置仿真器参数。
① 打开【debug】选项卡,选择自己所使用的的仿真器类型:
② 单击右侧的【settings】,在打开的窗口中分别按照红圈选项进行设置。
5. 打开【utilities】选项卡,勾选【Usse Debug Driver】
至此,新建工程并移植标准固件库已完成。