0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈新建工程多目标

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-12 14:12 次阅读

我们为什么要一个建立多个目标?

1.一个工程中拥有相同的源文件,但目标配置不一样的工程需要建立多个目标。

比如:IAR新建一个工程,默认就有两个目标:Debug和Release。 其实,细心的朋友会发现,Debug和Release两个工程目标包含的源文件都一样,只是它们的配置不一样。

Debug目标包含很多调试信息,编译的时候相对较慢,但能在线调试;

Release目标没有包含调试信息,编译速度相对较快,但不能在线调试。

2.一个工程中拥有大部分相似源文件的工程需要建立多个目标。

一般实际应用项目中,这一项相对较多一点,就拿ST提供的“标准外设库”为例来说明。

像类似上面针对STM32F1这种例程,官方为了所有STM32初学者都能使用这个工程(有多个目标),能让所有(大部分)STM32F1的用户都能使用该工程,就用了多目标,不同配置的方式来实现。

再简单举例来说:我们有一个很大的项目,客户A需要在项目中单纯的添加一个LED指示灯,客户B需要在项目中添加一个按键输入。由于客户A和B的项目大部分功能都一样,只有略微的差异,同样也可以使用建立多个工程目标的方式。

3.为了维护工程。

多来工作的人应该知道,特别的工作有两三年及其以上的人,一个公司可能有多款类似的产品,也就是说使用的硬件和软件大部分都相同,只是存在略微的差异。但我们不可能因为一点点的差异,单独新建一个,并单独安排一批人来维护这个代码。

多工程目标 和 工作空间有什么区别?

1.一个工作空间可以包含多个工程,以及对应的多个目标。

其实就是一个包含关系,就如前面那张图:

2.多工程目标可以分解为多个工程,也就是工作空间。

如上面所说,如果工程中的源代码文件差异比较大,可以将其分成多个工程,即我们所说的工作空间。

Ⅱ 建立多个目标

本节以新建STM32F030xx的Demo为例,也就是建立STM32F030系列的工程Demo,其中包含的启动文件有两种:startup_stm32f030.s和startup_stm32f030xc.s这两种,但一个目标只编译一种。

1.建立基础工程

因为工程中的源代码文件都差不多,后面新建的目标都是基于建立好的目标修改而成。所以把需要的工程源代码添加到工程,目标选项配置好。

这一节参考文章【Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程】;

2.添加目标名称

这个就是在上面的基础上添加(插入)目标,如下图:

3.配置相关目标

a.文件配置:是否编译当前文件,文件存储地址等。

b.目标选项配置,这个之前的文章都已经讲述过,可以参看文章【工程目标选项配置(Ⅰ)】 和 【工程目标选项配置(Ⅱ)】

提示:先选中对应的目标,再Project -> Options for Target进行配置。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IAR
    IAR
    +关注

    关注

    5

    文章

    319

    浏览量

    36283
  • STM32F030
    +关注

    关注

    1

    文章

    33

    浏览量

    6465
收藏 人收藏

    评论

    相关推荐

    用workbench新建工程后,不能自动生成工程文件怎么解决?

    测出电机的相应参数。但用workbench新建工程后,不能自动生成工程文件。报错如下。不明白需要改哪里? TypeTimeMotorIdMessage UNK08:54:481Phase 2
    发表于 04-26 06:57

    使用CubeMX6.8.0和MCWorkbench6.1.0正常编译工程新建的IHM03套件工程速度检测编码器选项为什么是灰色?

    使用CubeMX6.8.0和MCWorkbench6.1.0正常编译工程新建的IHM03套件的工程速度检测里面为什么编码器选项是灰色的呢?这边需要开启编码器并使用位置闭环控制。或者怎样新建工
    发表于 03-18 07:34

    hightec新建工程的向导页面没有TriCore板可选,是否安装失败了?

    hightec新建工程的向导页面没有TriCore板可选,是否安装失败了(已添加license)
    发表于 02-06 07:05

    入门篇3:零基础开发小安派-Eyes-S1——新建工程并烧录调试

    01 新建工程文件 1、复制helloworld工程 2、将工程移动到AiPi-Open-Kits下 3、修改helloworld文件夹下的Makefile文件 Makefile文件的修改一般只修改
    的头像 发表于 12-12 16:35 281次阅读
    入门篇3:零基础开发小安派-Eyes-S1——<b class='flag-5'>新建工程</b>并烧录调试

    基于随机有限集的多传感器多目标跟踪技术

    本文综述了基于随机有限集方法的多传感器多目标跟踪的最新研究进展。在多传感器滤波中起基础性作用的融合方法可分为数据层多目标测量融合和评估层多目标密度融合,分别共享融合传感器之间的局部测量值与后验密度。
    发表于 12-04 10:39 180次阅读
    基于随机有限集的多传感器<b class='flag-5'>多目标</b>跟踪技术

    新建工程的时候没有AT89S51这种芯片怎么办呢?

    新建工程的时候没有AT89S51这种芯片怎么办呢,软件是我之前安装的,还需要重新下载软件还是导入芯片或者安装c51编译器,求解答?
    发表于 10-12 08:00

    求助,MCWorkbench6.1.0如何新建可以使用位置控制的例程?

    使用CubeMX6.8.0和MCWorkbench6.1.0正常编译工程新建的IHM03套件的工程速度检测里面为什么编码器选项是灰色的呢?这边需要开启编码器并使用位置闭环控制。或者怎样新建工
    发表于 08-07 09:25

    keil模块化编程开发新建工程步骤

    这一步很简单,和新建普通工程一样,可以直接跳过。
    的头像 发表于 07-31 14:16 1049次阅读
    keil模块化编程开发<b class='flag-5'>新建工程</b>步骤

    介绍下如何新建一个STM32寄存器版的工程

    首先,新建一个文件夹用于存放工程项目。在文件夹中在分别新建CMSIS、inc、src、proj三个文件夹
    的头像 发表于 07-21 16:56 719次阅读
    介绍下如何<b class='flag-5'>新建</b>一个STM32寄存器版的<b class='flag-5'>工程</b>

    基于机器视觉的典型多目标追踪算法应用实践

    TBD(Tracking-by-Detection)与DFT(Detection-Free Tracking)也即基于检测的多目标跟踪与基于目标外形的先验知识无需检测器的多目标跟踪。TBD是目前学界业界研究的主流。
    的头像 发表于 06-15 17:22 1038次阅读
    基于机器视觉的典型<b class='flag-5'>多目标</b>追踪算法应用实践

    人工智能学术之多目标跟踪(MOT)研究

    最近做了一些多目标跟踪方向的调研,因此把调研的结果以图片加文字的形式展现出来,希望能帮助到入门这一领域的同学。也欢迎大家和我讨论关于这一领域的任何问题。
    发表于 06-13 09:37 441次阅读
    人工智能学术之<b class='flag-5'>多目标</b>跟踪(MOT)研究

    C#上位机之新建工程

    由于课程需要使用C#语言开发一个上位机。主要功能有可用通过串口读取下位机的数据,并将其传入数据库内。 首先,需要建立一个C#的工程。我是用的软件是VS2019。 1. 打开VS2019。 选择
    发表于 05-29 16:58 0次下载
    C#上位机之<b class='flag-5'>新建工程</b>

    C#上位机新建工程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、Visual Studio安装 二、新建工程 一、Visual Studio安装 下载地址在安装时如果只做.NET平台
    发表于 05-10 09:45 1次下载
    C#上位机<b class='flag-5'>新建工程</b>

    【CW32饭盒派开发板试用体验】+ 从无到有新建工程

    。扩展了很多接口,方便外接外设。 插上USB线上电可以看到出厂程序是ADC采样电压,并在LCD上显示电压值。 下面就从零开始搭建一个模板工程。首先下载开发板的资料,然后使用KEIL软件新建工程
    发表于 05-04 00:07

    【CW32饭盒派开发板试用体验】CW32开发环境配置以及从零新建工程模板、外部时钟、SYSTICK的使用配置以及校验

    一、CW32从零新建工程步骤: 1、开发环境采用MDK,在新建工程之前要先安装芯片支持包,支持包名称如下图 2、打开MDK,创建新工程,并将芯片选为下图 经过实际测试,芯片选为ARM
    发表于 04-29 14:21