查看原文
其他

MDK-ARM工程下如何创建多个Target(目标)?

strongerHuang strongerHuang 2021-01-31

在公众号列表中,长按我的公众号,置顶公众号,就可以随时看到我。


读者朋友“*无止*”留言

看完了这个(MDK-ARM)系列的教程,还是没学会如何在一个工程下创建多个目标?


我的回答

1.首先你要明白【一个Workspace(工作空间)下多个Project(工程)】与【一个Project下多个Target(目标)】的区别?


2.创建多个目标大概有以下几步:

a.创建(新增)Target(目标);


b.选中目标,修改工程窗口下组/文件配置;


c.修改配置Options for Target;


多Project和多Target区别

先看一下Workspace(工作空间)、Project(工程)和Target(目标)之间的关系,如下图:



举个例子:一个项目,由主机和从机组成,但项目为了区分产品的高低端,将产品做成简单和复杂两个版本(简单版只保留复杂版的部分功能)。举例示意如下图:


什么是多Target(目标)?

打开官方提供的Virtual_COM_Port例程,如下:


上图中框出来的就是多个目标,我们为了区分目标的不同,就新建多个,最后目的就是整合在一个工程。


我们为什么要创建多目标呢?

不管是一个Workspace(工作空间)下多个Project(工程),还是一个Project下多个Target(目标),其重要的一个目的就是【为了方便统一管理项目】。


之前有位读者朋友问了一个类似的问题,大概是:我有上百位客户,每一位客户的需求都略有不同,我要怎样管理项目呢?


如果需要统一管理,那么这个朋友就可以创建多个目标:比如:目标1:张三; 目标2:李四;  目标3:王五······等。


大概意思就是说:我们的多个项目中有略微差异的项目,可以(合并成一个工程)创建多个目标。


具体步骤

具体步骤也是回答上面读者朋友的3步骤,只是增加图文描述,更详细化了。


1.创建(新增)Target(目标)

Project -> Manage -> Project Items (或者直接点击“红绿白三色方块”),在Project Targets下创建(新增)Target(目标)即可。


比如:新建一个张三的目标


提示

a.新增加的目标,是基于当前选中的目标,复制过去的。因此,你新增目标时,需要先选择一个更相近的目标。(下一点说明)


b.每一个目标下的组和文件都是一样的,这就需要我们通过配置后面两步骤,来区分他们。


2.选中目标,修改工程窗口下组/文件配置

选择“张三”这个目标,如下图:


可以看到“张三”这个目标和“STM3210E-EVAL”这个目标是一样的。知道为什么一样了吧?  就是上面说是:张三是在STM3210E-EVAL目标的基础上新建的。


修改工程窗口下组/文件配置,大概就是:是否需要包含该组,或文件,该组/文件的内存分配,编译相关配置(如优先级、C99等)。


修改组,或单个文件,选中组,或文件 -> 右键,如下图(组):


修改之后,在Project工程窗口中可以看到有带“*”和“禁止驶入”的图标,具体是什么图标:请看【工程窗口各项图标描述】这篇文章。


3.修改配置Options for Target

选中”张三之后,Project -> Options for Target(或直接点击Target配置图标,如下图)


点击进去之后,里面的配置就不用我说了(和基本操作一样),不懂的可以参看下面两篇文章。

MDK-ARM系列教程(三)_工程目标选项配置(Ⅰ)

MDK-ARM系列教程(四)_工程目标选项配置(Ⅱ)



推荐阅读前两篇文章

1.FreeRTOS中相对延时和绝对延时的区别

2.定时器输出的PWM频率范围及占空比精度


最后

1.置顶,找我容易;

2.点赞,分享增加脸分;

3.公众号二维码在下面,看你是否考虑关注下!

长按识别二维码 关注




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存