【嵌入式工具】Keil的高级用法

0 前言

  最近因为学习STM的IAP功能,学到了很多关于Keil的高级用法,特写篇文章来分享一下。

1 “一带多”

  什么是“一带多”?如果有过自己手动创建标准库工程模板经验的人应该知道,这其中有一步很重要的就是选择启动文件,即后缀是.s的文件,不同容量大小的芯片应该选择不同的启动文件,其对应关系如下所示:

  • cl:互联型产品,stm32f105/107系列
  • vl:超值型产品,stm32f100系列
  • xl:超高密度产品,stm32f101/103系列
  • ld:低密度产品,FLASH小于64K
  • md:中等密度产品,FLASH=64 or 128
  • hd:高密度产品,FLASH大于128

那不禁会有疑问,有没有什么办法只创建一个工程,然后兼容所有型号的芯片呢?这就是“一带多”的意义。

1.1 工程结构介绍

  在开始之前,首先要理解Keil软件下的工作空间(Workspace), 项目(Project)和目标(Target),他们之间的关系大概是工作空间下可以包含多个项目,而一个项目下可以包含多个目标,结构如下图所示。

在这里插入图片描述

需要注意的是,不同目标共用一套文件,但配置可以不同,而不同项目的文件和配置都是隔离的。这个通过后面的演示会有直观的体会。

1.2 一个项目下包含多个目标

  首先来看这种类型,比较适合多个功能相近的项目整合到一个工程下,通过切换目标来切换项目实现的功能。

  在Keil编译旁边有一个Target的选择:

在这里插入图片描述

这个Target的名字和项目下的名字是一样的,可以自定义,而且非常简单。先点这个:

在这里插入图片描述

然后就进入到熟悉的添加组和文件的界面了,但殊不知,最左边这栏也是可以编辑的:

在这里插入图片描述

需要注意的是,如果在这里任意选择一个Target,然后对右侧的Groups和Files进行编辑,也会影响其他的Target,这就是上面提到的,不同Target共享文件

  那这样该如何区分不同的Target呢?即想实现不同Target下包含不同的文件,这就需要上面提到的第二句话了,不同Target可以拥有不一样的配置

  所谓配置,主要是指两类,第一类就是魔法棒的配置,改动一个Target,其他Target的魔法棒配置不变,因此也就可以选择不同的芯片型号了。而第二类就是文件或者组群是否参与编译的配置,设置方法很简单:

在这里插入图片描述

即直接右键组群,然后选择第一个Options for xxxxx,然后在下面这个界面选择是否参与编译:

在这里插入图片描述

别看它是灰色的,是可以勾选或取消勾选的

同理,对于一个文件也可以这样:

在这里插入图片描述

在这里插入图片描述

因此,就可以通过这种方式来对不同的Target分别进行配置,使用的时候,只需要切换Target就可以切换不同的项目功能。

1.3 一个工作空间下包含多个项目

  相比于第一种做法,一个工作空间下包含多个项目要简单很多。首先打开软件,创建一个多项目工作空间,如下图所示。

在这里插入图片描述

然后就会弹出一个窗口来添加多个项目

在这里插入图片描述

剩下的就是点击三个点,然后选择项目路径了。值得一提的是,这个给出的是绝对路径,对于有项目移动的情形不是很友好

  添加完成之后,在左侧就可以看到多个项目工程了

在这里插入图片描述

这个我认为最大的好处是可以在打开多个项目工程时不用来回切换页面

  如果要切换当前激活的项目,直接右键某个项目&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记录无知岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值