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

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

3天内不再提示

关于持续集成与基于模型的设计的分析和应用

MATLAB 来源:djl 2019-09-12 09:10 次阅读

持续集成(Continuous Integration)在纯软件开发中是一个比较通用的实践:

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题。

持续集成通常伴随着以下几个部分:

和版本管理工具友好集成

编译自动化

测试自动化

例如,张三开发了一个新功能,他所在的版本开发分支为Testing。他在提交代码后(当然自己需要先测试一下),系统可以自动编译,并运行回归测试用例。在确定功能稳定可用后,Testing分支可合并到主分支。

大部分MBD(基于模型的设计,Model-Based Deisgn)客户都已经比较好地使用了版本管理工具,例如SVN或者Git。很多客户也能开发一些MATLAB脚本做一些自动化编译,例如:

使用Embedded Coder自动产生算法层C代码,将C代码自动拷贝到TI的CCS工程和驱动部分代码整合,然后自动调用CCS的编译功能进行编译链接产生最终二进制文件,此后可以将二进制文件自动下载到开发板芯片中编译执行。

MBD之所以为一种开发效率高的开发模式,用户会将主要精力集中于Model-In-the-Loop(MIL)的开发。在MIL层面,用户会开发大量的单元测试用例,在和用户的讨论中发现,有一种场景比较实用:

提交模型+自动回归测试+自动报告生成

本文以Git、GitLab、Jenkins为主要工具,介绍如何配置MBD模式下的自动回归测试+自动报告生成。

详细配置

关于持续集成与基于模型的设计的分析和应用

注意:通常情况下,Jenkins Server会选择一个计算能力较强的服务器,本文为了方便选择将Simulink和Jenkins装在同一机器上。

1. GitLab的项目创建

先在GitLab下建立一个项目,本地Git和GitLab Server可以选择SSH连接也可选择HTTPS方式,本文选择HTTPS。

关于持续集成与基于模型的设计的分析和应用

然后在本地的Simulink工程目录,打开Git Bash。

>> Git init

>> Git clone https://insidelabs-git.mathworks.com/mozhou/SBR.git

2. Simulink和Git集成

本文中,Git可视为GitLab的客户端。Simulink可以直接在界面中,进行Git的操作,见下图:

关于持续集成与基于模型的设计的分析和应用

建议直接用Git命令行操作,优势如下:

Git命令行灵活方便,易于脚本化。

想要熟悉Git命令,自己最好从头开始,用Git init、Git add、Git commit、Git push把Simulink工程中的文件添加到GitLab Server。也可理解一个Simulink工程中哪些文件是永久文件(需要添加到版本库),哪些是中间文件(不需要添加到版本库)。

Simulink是比较智能的。

一旦你用手动方式做了一遍Git操作,Simulink就自动“记得”哪些文件和Git库是有关联。

3.Jenkins的配置

首先,安装Jenkins时候装上必用的几个plugin :Git plugin、GitLab plugin、GitLab Hook plugin。然后在Jenkins里面建立项目。

配置源代码GitLab仓库设置

关于持续集成与基于模型的设计的分析和应用

配置BuildTrigger

在GitLab的项目的settings -> integrations:

关于持续集成与基于模型的设计的分析和应用

加上webhook后可以测试一下。

关于持续集成与基于模型的设计的分析和应用

然后回到Jenkins的项目设置:

关于持续集成与基于模型的设计的分析和应用

配置编译脚本:

关于持续集成与基于模型的设计的分析和应用

runMyTests.m 是一个MATLAB脚本,它的功能就是将指定位置的测试用例找到,然后批量执行所有回归测试用例,最后输出指定格式的报告。

关于持续集成与基于模型的设计的分析和应用

关于持续集成与基于模型的设计的分析和应用

关于持续集成与基于模型的设计的分析和应用

3. 运行

打开模型

关于持续集成与基于模型的设计的分析和应用

浏览测试用例:测试用例一共有6个

关于持续集成与基于模型的设计的分析和应用

编辑模型后,提交到GitLab。

关于持续集成与基于模型的设计的分析和应用

在Jenkins上编译成功,查看编译和测试报告。

关于持续集成与基于模型的设计的分析和应用

关于持续集成与基于模型的设计的分析和应用

在实际的工程项目中,随着项目和人员的扩展,越来越多的开发人员会利用合适的代码版本管理和持续集成工具进行并行开发。Git、GitLab、Jenkins这个组合适用于任意大小规模的持续集成开发模式。持续集成也是敏捷开发的一个最佳实践。而MBD的模式——早期验证、虚拟集成完全符合敏捷开发的理念。越来越多的开发人员在使用MBD的同时也关注如何拥抱敏捷开发。

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

    关注

    12

    文章

    8111

    浏览量

    82491
  • 源代码
    +关注

    关注

    94

    文章

    2926

    浏览量

    66057
收藏 人收藏

    评论

    相关推荐

    使用cube-AI分析模型时报错的原因有哪些?

    使用cube-AI分析模型时报错,该模型是pytorch的cnn转化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.ai v8.0.0-19389) INTER
    发表于 03-14 07:09

    大信号模型和小信号模型的区别

    大信号模型和小信号模型是电子工程和通信领域中常用的两种模型,它们在描述和分析电子电路或系统时具有不同的特点和应用范围。以下是关于大信号
    的头像 发表于 12-19 11:35 3140次阅读

    基于Jenkins+GitLab+Maven实现代码自动打包编译发布

    Jenkins是一个独立开源的持续集成持续交付工具,用于自动化构建、测试和部署软件项目。
    的头像 发表于 11-20 09:57 1393次阅读
    基于Jenkins+GitLab+Maven实现代码自动打包编译发布

    VisionFive 2成功集成Android开源项目(AOSP)!

    内核集成。 AOSP基线:赛昉致力于持续集成最新的AOSP基线,为了确保用户能够从AOSP的最新更新中获益,并不断的带来改进和增强。 支持通过Android Studio进行ABD连接。 详情请访问
    发表于 10-16 13:11

    高质量持续集成:VectorCAST与Jenkins实战指南

    持续集成(ContinuousIntegration,简称CI)是一种软件开发/测试方法。它要求开发及测试人员频繁地将代码提交到用于共享的开发分支中,经过充分的测试和审查,然后通过自动化的构建和测试
    的头像 发表于 09-28 08:27 834次阅读
    高质量<b class='flag-5'>持续集成</b>:VectorCAST与Jenkins实战指南

    代码动态测试工具VectorCAST的Jenkins持续集成#Jenkins #持续集成

    代码
    北汇信息POLELINK
    发布于 :2023年09月12日 22:37:44

    Cortex-R52 SystemC循环模型11.2版用户指南

    标准的模拟器进行编译。 您可以在ARM周期模型性能分析工具包(CPAK)中使用SystemC周期模型,也可以将它们直接集成到任何符合IEEE 1666的SystemC环境中。
    发表于 08-18 07:25

    PCIe AMBA集成指南

    本文档旨在提供关于将PCIe接口集成到基于AMBA的片上系统(SoC)的指导。 假设PCIe接口通过基于AXI或ACE协议的互连连接到SoC的其余部分。 读者应熟悉PCIe、AMBA AXI
    发表于 08-17 07:25

    持续集成工具jenkins和相关工作机会介绍

    Jenkins 允许你设置自动化的构建任务,可以通过集成源代码管理工具(如 Git、SVN 等)从源代码仓库中获取最新的代码,并构建项目。这可以确保项目的每次提交都会进行构建和测试,以便及早发现问题。
    的头像 发表于 08-15 16:26 274次阅读

    将Arm Mobile Studio集成到CI工作流中

    如果您的开发团队使用CI(持续集成)系统合并每日代码更改,则可以使用Arm Mobile Studio在多台设备上运行夜间自动设备性能测试。每天早上自动生成HTML摘要报告供团队分析,并导出机器可读
    发表于 08-08 07:42

    ARM Streamline Performance Advisor用户指南

    定期的性能报告使您能够在整个开发周期中获得即时反馈。 要自动生成每日HTML或JSON报告,帮助您的团队监控开发周期中的变化如何影响性能,请将performance Advisor集成到您的持续集成
    发表于 08-08 07:32

    如何在持续集成开发流程中使用Jenkins和Docker?

    模型的功能。使用持续集成方法有助于最大限度地减少软件开发过程中的问题,例如大型合并冲突、重复工作和不可复制的错误。 Jenkins、Docker容器和Arm-Fast模型持续集成实践
    发表于 08-02 10:50

    6月28日直播预估|CI/CT持续集成测试解决方案

    CI/CT(Continuous Integration/Continuous Test,持续集成/持续测试)是一种软件开发实践。核心是通过一系列测试工具链的组合与自动化测试工程结合,提交新版软件
    的头像 发表于 06-27 13:12 466次阅读
    6月28日直播预估|CI/CT<b class='flag-5'>持续集成</b>测试解决方案

    一文教你分清持续集成持续交付,持续部署

    此外,持续部署和持续交付已成为最佳实践,可让您随时随地部署应用程序,甚至在每次引入新更改时甚至将主代码库自动推入生产环境。这使您的团队可以快速行动,同时保持可以自动检查的高质量标准。
    的头像 发表于 06-25 17:17 1769次阅读
    一文教你分清<b class='flag-5'>持续集成</b>,<b class='flag-5'>持续</b>交付,<b class='flag-5'>持续</b>部署

    目标检测多模型集成方法总结

    模型集成是一种提升模型能力的常用方法,但通常也会带来推理时间的增加,在物体检测上效果如何,可以看看。
    的头像 发表于 06-07 17:39 793次阅读
    目标检测多<b class='flag-5'>模型</b><b class='flag-5'>集成</b>方法总结