1. gzyueqian
      13352868059

      嵌入式CI/CD、其價值和基本工具

      更新時間: 2024-05-20 10:10:14來源: 粵嵌教育瀏覽量:1043

      在不斷發展的嵌入式系統世界中,迫切需要采用軟件領域的最佳實踐來確保及時、一致和高質量的發布。嵌入式CI/CD是幫助革新嵌入式軟件開發方式的實踐之一。

       

      持續集成(CI)和持續部署/交付(CD構成了現代軟件開發實踐的基礎。如果是嵌入式開發人員,可能聽說過這些實踐,但沒有時間采用它們并更新的工作流。

       

      今天是使用CI/CDVS Code以及恩智浦SDK簡化開發系列文章的第一篇。將了解為什么CI/CD至關重要以及如何設置Github操作隨著VS代碼擴展的NXPs MCUXpresso。我們看看基本的CI/CD概念,并了解它們對嵌入式軟件開發人員的價值。

       

      CI/CD在嵌入式產品開發周期中的價值

      在傳統的軟件開發中,開發人員和團隊長時間隔離工作,偶爾會合并變更。結果是合并地獄,協調不同的代碼片段可能會花費大量時間,并有可能在代碼中引入錯誤。孤立的開發不起作用,這就是CI/CD發揮作用的地方。

      持續集成強調經常集成來自不同團隊成員的代碼。每個集成都是自動構建、分析和測試的,以確保盡早發現集成缺陷。

      持續部署/交付(CDCI的邏輯延伸。一旦的代碼被集成和測試,它就會自動部署到生產環境中(持續部署)或為部署做好準備(持續交付),從而減少手動干預并加快發布速度。

      CI/CD有可能極大地改進嵌入式軟件開發實踐。對于嵌入式開發人員來說,會發現以下優勢

      加快上市時間通過定期測試和隨時部署的代碼來減少總體開發時間。

      質量提高通過自動測試,可以減少錯誤并提高產品質量。

      增強協作這是因為當團隊朝著一個通用的、集成的代碼庫工作時,他們更好地保持了一致。

      可能認為這些好處聽起來很棒,但是正在編寫具有硬件依賴性的嵌入式軟件!嵌入式軟件不同,不太適合CI/CD!嗯,事實并非如此。可以使用CI/CD管道輕松地將CI/CD應用于嵌入式軟件開發。讓我們探索一下典型的嵌入式CI/CD管道可能是什么樣子的。

       

      嵌入式CI/CD管道概述

      CI/CD管道是將軟件從開發階段轉移到生產階段的過程。典型的CI/CD管道包括自動構建、測試、分析和向最終用戶部署軟件。它是開發人員、QA和運營人員用來改善不同團隊之間的協作并獲得以下好處的工具

      提高軟件質量

      減少調試花費的時間

      降低項目成本

      提高按時完成任務的能力

      簡化軟件部署流程

      CI/CD不應被視為開發運維流程中唯一必要的組成部分。它只是一個工具。例如,可能會發現類似下面圖1的整體DevOps流程。如所見,該流程規劃了開發新軟件功能、測試它們以及將它們部署到現場的交互。

      1:嵌入式DevOps交付管道流程示例

      1中隱藏的是CI/CD管道。典型的CI/CD管道包括三個簡單的活動

      建筑物

      測試

      部署

      從概念上講,管道很簡單,但細節經常讓開發人員感到困惑。例如,如果要列出構成CI/CD管道的各種組件,將包括以下內容

      倉庫為構建提取源代碼的位置。(可能一個或多個)。

      自動化構建系統通常是可以自動構建軟件的容器化系統。

      自動化測試包括單元、集成、系統和回歸測試。

      靜態代碼分析軟件分析,包括對照編碼標準、度量分析、語言正確性等進行檢查

      硬件仿真/模擬使用虛擬硬件測試和驗證軟件的正確性。

      部署機制一種在產品成功通過所有自動測試和手動檢查后向產品交付新固件的方法。

      監測和報告監控進度和報告軟件狀態以及可能需要調查的任何問題的機制。

      證券分析分析以識別安全漏洞并確保系統受到保護。(安全性可以進行靜態分析,但我認為值得單獨列出,因為它很容易被忽略)。

      實現這些功能,并對其進行配置將是大量的工作。實施自己的CI/CD解決方案需要深謀遠慮和時間投入,但是該解決方案應該是什么樣的呢?每個團隊都有自己的需求,但所有CI/CD管道都有一些標準功能。讓我們來看看幾個領域,并為嵌入式開發人員定義一個通用的CI/CD管道。

       

      定義典型的嵌入式管道

      典型的嵌入式CI/CD管道將根據團隊的需求而變化。雖然可以進行大量定制,但第一輪CI/CD管道至少應包含以下內容

      l 建設構建作業將獲取的固件并生成發布二進制文件。

      分析分析構建作業將靜態分析的代碼。典型的分析將包括圈復雜度、代碼度量和代碼標準遵守情況,如樣式指南、MISRA/CERT

      測試測試工作將執行運輸產品所需的所有測試。可能包括單元、功能、集成、系統和性能測試。

      報告報告作業將從以前的作業中收集結果,以提供有關構建成功、分析結果、測試覆蓋率和結果等信息。

      合并當所有作業成功時,合并作業會將新功能合并到部署分支中。這里經常有一個人為因素,但這也可以自動化。

      部署合并作業成功完成后,部署作業將運行并啟動現場部署流程。部署通常與車隊部署軟件進行交互,該軟件可以將固件推送到現場設備。

       

      如果將管道可視化,會發現它如圖2所示。使用這種典型流程的開發人員會將代碼提交給他們的版本控制系統(VCS)并生成一個拉請求。一個自動構建系統,即CI服務器,會自動獲取最新的代碼并構建軟件。此外,根據管道的設置方式,自動測試和分析將在構建過程成功完成后進行。如果測試成功通過,代碼將被部署到生產或試運行環境中以供進一步審查。

      2:一個理想的CI/CD管道,結合了構建和部署現代嵌入式軟件所需的基本工作。

       

      行業工具:CI/CD工具集

      探索工具領域時,會發現許多工具可幫助構建嵌入式CI/CD管道。這些工具從涵蓋CI/CD渠道一小部分的工具到完整的集成解決方案。最受歡迎的工具包括

      Git這樣的版本控制系統

      l 像Make和CMake這樣的構建工具

      l  像Jenkins、Travis CI和CircleCI的CI服務器

      像Docker和Kubernetes這類能幫助一致地復制環境并支持管道作業執行的集裝箱化工具

      除了這些工具之外,像GitHubGitLab這樣的集成平臺將所有這些功能打包到一個解決方案中。選擇的確切平臺或工具組合將取決于團隊的需求。

       

      結論

      盡管CI/CD通常與web和軟件應用程序相關聯,但它為嵌入式系統領域提供了不可否認的優勢。使用恩智浦SDK等平臺和VS Code等多功能ide可以徹底改變嵌入式開發人員的產品開發方式。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚欧美无遮挡HD高清在线视频 | 在线日本AⅤ视频 | 日本久久高清视频 | 亚洲色偷国产一区二区三区 | 日韩精品欧美激情一区二区 | 婷婷色香合缴缴情 |