Keil系列教程14_创建多工程工作空间

  • 分享一个朋友的人工智能教程,零基础!通俗易懂!希望你也加入到人工智能的队伍中来! www.captainbed.net

一、写在前面

继上一篇文章《Keil系列教程13_创建多目标工程》,本文接着讲述创建多工程的工作空间

本文「创建多工程工作空间」主要的内容不多,会讲述一部分额外的相关内容

创建多工程工作空间一般用于项目中有多个工程,为了统一管理项目。一般初学者不常用。

二、工作空间与工程的关系

本章节算是回顾前面讲述过的知识点:工作空间与工程的包含关系,一个工作空间可以包含多个工程

下图是工作空间、 工程、 目标三者的关系:



提示:
在Keil中叫Target(目标),而在IAR中叫Node(节点)。其实这两者意思一样,都是隶属于工程的下一级。

三、准备工作

创建工作空间可以说没有什么难度,其实难点在于创建工程,以及工程目标相关的配置工作

而创建工程、工程目标选项配置这些内容在前面都有讲述,请参看前面文章:
Keil系列教程02_新建基础软件工程
Keil系列教程05_工程目标选项配置(一)
Keil系列教程06_工程目标选项配置(二)
Keil系列教程13_创建多目标工程

参考上面4篇文章创建好工程、配置好工程目标,再创建工作空间,最后在工作空间中添加工程即可。

本文默认已经创建并配置好了3个工程:Project1、Project2、Project3。将这个3个工程添加到我们创建的工作空间Workspace中。

提示:
1.本文只是方便大家理解,提供的3个简单工程Project1、2、3源代码和功能都类似

2.三个工程都是基础软件工程,它们使用公共的标准外设库Libraries。

3.一般实际项目源码和功能不会相同,同时Project1、Workspace命名方式也请根据实际情况而定。

4.文末将提供这个例子代码供大家下载。

四、创建工作空间

创建多目标工作空间,就是先创建一个工作空间(Workspace),再将创建好的工程(Project)添加带工作空间即可

这一章节讲述创建工作空间,添加工程的基本操作,下一章节讲述多工程的相关内容。

4.1 整理文件夹及文件



我们这里3个工程使用公共的库Libraries,一般在实际应用中也存在类似情况,比如多个工程共同使用一些源代码、算法库等。

4.2 创建工作空间

打开Keil软件 -> Project -> New Multi-Project Workspace:



4.3 保存工作空间



4.4 添加工程




添加工程动画效果:

4.5 添加完成多工程



到这里,包含多个工程的工作空间就创建完成了。如果前面创建的3个工程没有问题,则可直接在该工作空间选择工程进行编译、下载等操作。

五、多工程相关内容

这一章节讲述多工程工作空间相关的一些内容:工作空间管理、激活工程、编译选项等。

5.1 工作空间管理

进入工作空间管理有多种方式:
1.快捷按钮



2.菜单



工作空间管理



工作空间管理,主要就是添加、删除、上下移动工程,以及设置“选中”工程为活动(当前使用)工程

5.2 激活工程

我们工作空间中一般有多个工程,但我们一个时间只能编译、下载、调试一个工程。

那么,我们就需要选中其中一个作为当前使用的工程,简单说就是需要激活一个工程。

激活的方法可以在上面工程管理点击“Set as Active Project”实现,也可以通过如下图方式实现:



5.3 编译选项

在该教程3,4中讲述工具栏按钮和菜单时,讲过关于编译的几个选项,其中一个「Batch Build分批编译」就是用于本文的多工程。



进入分批编译设置:



如果你勾选了所有工程,编译的时候会把工作空间下所有工程都进行编译。大家试一下就明白,很好理解的。

六、下载

为方便大家学习,我这里提供可直接编译运行的源代码工程供大家下载。

百度网盘下载地址:https://pan.baidu.com/s/1s_1t7EuvUP0j6ekzizpvVA
密码:itly

GitHub下载地址:https://github.com/EmbeddedDevelop/Keil-MDK-ARM_Multi-Project.git

(提示:下载链接后期可能会失效, 请关注微信公众号获取最新消息)

七、说明

1.该文档仅供个人学习使用,版权所有,禁止商用。

2.本文由我一个人编辑并整理,难免存在一些错误。

3.为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该教程同步更新于微信公众号【EmbeddedDevelop】,关注微信公众号回复【Keil系列教程】即可查看全系列教程。

八、最后

我的博客:http://www.strongerhuang.com
我的GitHub:https://github.com/EmbeddedDevelop

  我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

strongerHuang wechat
关注微信公众号,查看更多精彩内容!
本文对你有帮助吗?