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

    文章

    357

    浏览量

    36829
  • STM32F030
    +关注

    关注

    1

    文章

    33

    浏览量

    6737
收藏 人收藏

    评论

    相关推荐

    浅谈多目标优化约束条件下充电设施有序充电控制策略

    随着电动汽车的普及,充电设施的需求日益增长,如何在多目标优化约束下实现充电设施的有序充电成为亟待解决的问题。新能源汽车的快速发展为清洁能源和可持续交通带来了新机遇,但也引出了许多问题。其中,充电设施的有序充电控制策略在多目标优化约束条件下显得尤为重要。
    的头像 发表于 01-07 13:17 151次阅读
    <b class='flag-5'>浅谈</b><b class='flag-5'>多目标</b>优化约束条件下充电设施有序充电控制策略

    安装的是CCS7.0,在新建工程的时候,为什么找不到PGA900这个芯片?

    我安装的是CCS7.0,在新建工程的时候,找不到PGA900这个芯片。另外,CCS7.0下载页面还有一个文件MD5,这是什么文件,有什么作用,怎么用?
    发表于 12-27 06:43

    【敏矽微ME32G070开发板免费体验】新建工程(MDK)

    非常丰富,但是依赖的文件与工程文件在同一个文件夹下,移到比较麻烦,所以自己新建了一个工程。 MDK新建工程也是非常简单的,首先是打开MDK软件,点击Project-->New
    发表于 12-21 22:24

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】MDK新建工程

    安装。 2.RASC 软件安装完成之后,还需要将 RASC 软件集成到 Keil 软件上面 3.新建工程 使用 RASC 自动生成一个 Keil 工程。 芯片型号,对应官网开发板资料里有 没有加RTOS,有需要自己在这加
    发表于 12-14 18:23

    使用STT全面提升自动驾驶中的多目标跟踪

    3D多目标跟踪(3D MOT)在各种机器人应用中发挥着关键作用,例如自动驾驶车辆。为了在驾驶时避免碰撞,机器人汽车必须可靠地跟踪道路上的物体,并准确估计它们的运动状态,例如速度和加速度。
    的头像 发表于 10-28 10:07 347次阅读
    使用STT全面提升自动驾驶中的<b class='flag-5'>多目标</b>跟踪

    浅谈分时电价下含电动汽车的微电网群双层多目标优化调度

    充电满意度多目标下的电动汽车充电模式,建立了微电网内运营商峰谷差—用户充电费用少和充电满意度的双盈多目标优化调度模型,采用上海市实际居民办公商业混合体,基于MATLAB/NSGA‑Ⅱ算法求解负荷整形度;采取粒子群优化算法求解电动汽车车主达
    的头像 发表于 09-23 14:46 464次阅读
    <b class='flag-5'>浅谈</b>分时电价下含电动汽车的微电网群双层<b class='flag-5'>多目标</b>优化调度

    多目标智能识别系统

    智慧华盛恒辉多目标智能识别系统是一种利用现代计算机视觉技术和人工智能算法,从图像或视频中同时识别和分类多个目标物体的系统。这种系统广泛应用于自动驾驶、智能监控、人机交互、军事侦察、灾害监测等多个领域
    的头像 发表于 07-16 10:42 1.7w次阅读

    【ch32v307_RTT】1、使用RT-Thread studio新建工程

    Studio。 【实现步骤】 1、安装SDK 2、安装好pyocd这些下载调试工具: 3、安装WCH编译工具 4、安装好后,新建工程 5、输入工程名称,点击完成,点击编译,完成编译工作: 【下载】 接上开发板,点击下载,连接开发板。 下载结束后,可以看到正常的输出了
    发表于 06-29 18:25

    基于GIS的SAR多目标智能识别系统

    智慧华盛恒辉基于GIS的SAR多目标智能识别系统是一个集成了合成孔径雷达(SAR)和地理信息系统(GIS)技术的先进系统,旨在实现高分辨率雷达图像中的多目标智能识别。以下是该系统的详细介绍: 智慧华
    的头像 发表于 06-26 14:26 577次阅读

    英特尔在以色列新建工厂停工

    据以色列权威媒体报道,英特尔在以色列的工厂修建工作目前已(暂时)停止。这一消息引起了业界的广泛关注。
    的头像 发表于 06-11 15:43 416次阅读

    多目标跟踪算法总结归纳

    多目标跟踪是计算机视觉领域中的一个重要任务,它旨在从视频或图像序列中准确地检测和跟踪多个移动目标。不过在落地部署时,有一些关键点需要解决。
    的头像 发表于 04-28 09:42 2254次阅读
    <b class='flag-5'>多目标</b>跟踪算法总结归纳

    MotorControl Workbench 5.0.3上位机不能打开默认工程新建工程也失败了的原因?

    最近要培训ST电机库5.0了,准备提前安装好软件,新建工程预习一下代码,结果上位机不能打开默认工程新建工程也失败了 有遇到过这个问题的坛友吗?该如何处理 详细信息如下
    发表于 04-28 08:46

    用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

    同样是用STM32点亮一颗LED灯,寄存器和库有什么区别?

    首先在创建工程的时候就比较麻烦,新建工程,起个名字,选择一个合适的芯片,新建main.c,然后随手来一个main函数。
    的头像 发表于 03-14 16:52 894次阅读