0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AUTOSAR架構(gòu)下,持續(xù)集成CI的最佳實踐

北匯信息POLELINK ? 2024-10-24 08:06 ? 次閱讀

作者 | 明
小編 | 不吃豬頭肉

隨著汽車電子技術(shù)的快速發(fā)展,汽車軟件的復(fù)雜性與日俱增,如何確保軟件開發(fā)的高效性與穩(wěn)定性成為了一個關(guān)鍵問題。為了解決這個問題,許多汽車企業(yè)和供應(yīng)商逐漸引入了AUTOSAR架構(gòu),并在此基礎(chǔ)上構(gòu)建了持續(xù)集成(CI)流程。今天,我們就來探討一下基于AUTOSAR架構(gòu)的CI流程實踐,并通過對流程的詳細(xì)講解,展示其在實際開發(fā)中的重要性和優(yōu)勢。

d80e8f8e-919b-11ef-b5cd-92fbcf53809c.png

什么是AUTOSAR架構(gòu)?
首先,AUTOSAR(Automotive Open System Architecture)是一個開放的、標(biāo)準(zhǔn)化的汽車電子軟件架構(gòu)。它旨在通過提供一個標(biāo)準(zhǔn)的接口和抽象層,減少復(fù)雜的汽車軟件開發(fā)流程,并提升軟件的可復(fù)用性、模塊化和可維護(hù)性。AUTOSAR架構(gòu)中的核心模塊可以分為應(yīng)用軟件層(ASW)、基礎(chǔ)軟件層(BSW)和運行時環(huán)境(RTE)、微控制器四個層面,它們各自承擔(dān)不同的功能。

d81f4612-919b-11ef-b5cd-92fbcf53809c.png


d83f26da-919b-11ef-b5cd-92fbcf53809c.png

為什么要在AUTOSAR架構(gòu)中引入CI?
隨著汽車軟件規(guī)模的日益龐大,軟件開發(fā)的復(fù)雜度也不斷增加,傳統(tǒng)的開發(fā)方式往往難以應(yīng)對復(fù)雜系統(tǒng)的集成挑戰(zhàn)。尤其是在高度模塊化的AUTOSAR架構(gòu)下,軟件的各個層次和模塊相互依賴,任何代碼變更都有可能影響整體系統(tǒng)的穩(wěn)定性。為此,開發(fā)團隊需要一種高效的機制來快速檢測問題,確保每次代碼修改后的系統(tǒng)都能正常工作。這時,持續(xù)集成(CI)流程的重要性便凸顯出來,它能夠自動化地進(jìn)行代碼集成、測試和反饋,確保軟件的質(zhì)量與穩(wěn)定性。接下來,我們將介紹在AUTOSAR框架中CI實現(xiàn)的詳細(xì)流程。

d8552aca-919b-11ef-b5cd-92fbcf53809c.png

CI流程簡介

d8837128-919b-11ef-b5cd-92fbcf53809c.png


持續(xù)集成(CI)是一種軟件開發(fā)實踐,它強調(diào)開發(fā)者頻繁將代碼集成到共享的代碼庫中,并通過自動化測試和構(gòu)建系統(tǒng),確保每次集成都能夠得到及時的反饋。那么在本次介紹中的CI在基于AUTOSAR架構(gòu)的軟件開發(fā)中,CI流程不僅僅是一個簡單的自動化工具鏈,而是保證軟件穩(wěn)定性和一致性的關(guān)鍵所在。
雖然硬件在環(huán)(HIL)測試在開發(fā)流程中也扮演著重要角色,但它屬于硬件驗證的范疇,并不包含在CI流程之內(nèi)。因此,本文中的CI流程將專注于軟件層面的集成和測試,不涉及HIL測試部分。
在本次介紹的CI流程實踐中,AUTOSAR框架的測試主要集中在三個部分:

ASW(應(yīng)用層)

這一層主要基于MATLAB模型進(jìn)行開發(fā),因此在測試過程中,重點是對模型的驗證。在模塊開發(fā)的早期階段,測試的重點是確保模型本身的正確性和穩(wěn)定性。當(dāng)模型測試通過后,該模型模塊會被集成到整個開發(fā)工程中進(jìn)行編譯,以此驗證其與最新代碼層是否兼容,并確保功能正常。這一過程可以保證每個模塊在合入到整體系統(tǒng)前已經(jīng)過充分驗證。

BSW(基礎(chǔ)軟件層)

這里的BSW層指的是通過框架生成軟件自動生成出的代碼,通過AUTOSAR架構(gòu)生成的代碼來實現(xiàn)軟件功能的更新和維護(hù)。每當(dāng)BSW層的代碼更新時,CI流程會自動觸發(fā)項目的整體編譯,從而驗證所有基礎(chǔ)功能在最新更新下的一致性和穩(wěn)定性。這一機制確保了基礎(chǔ)軟件層的變更不會破壞系統(tǒng)的整體功能。

CDD(復(fù)雜設(shè)備驅(qū)動層)

該層主要負(fù)責(zé)復(fù)雜設(shè)備的驅(qū)動程序開發(fā)。CDD層通常涉及手寫代碼,用來滿足客戶的特定需求。每當(dāng)CDD層的代碼更新后,CI系統(tǒng)會自動執(zhí)行代碼分析和驗證,確保新編寫的驅(qū)動程序與系統(tǒng)的其他部分協(xié)調(diào)工作,并符合功能要求。通過這三大模塊的分層測試和自動化驗證,CI流程確保了AUTOSAR架構(gòu)下的軟件在開發(fā)和更新過程中始終保持高效和穩(wěn)定。
下圖展示了一個典型的基于AUTOSAR架構(gòu)的CI流程,通過Jenkins調(diào)度服務(wù)器和Gitlab版本管理工具實現(xiàn)模塊的自動化集成和測試。

d8a6fbf2-919b-11ef-b5cd-92fbcf53809c.pngd8c973bc-919b-11ef-b5cd-92fbcf53809c.png

基于AUTOSAR架構(gòu)的CI流程實踐
從流程圖中可以看出,整個CI流程主要圍繞ASW模塊變更、BSW模塊變更和CDD模塊變更展開,并且根據(jù)不同模塊的變更類型,分別定義了相應(yīng)的測試和編譯步驟。接下來,我們逐一對各個模塊的CI流程進(jìn)行講解
1. ASW模塊變更流程
ASW(應(yīng)用軟件)模塊的變更通常是由模型開發(fā)人員和模型測試人員手動觸發(fā)的。當(dāng)ASW模塊發(fā)生變更時,CI流程將執(zhí)行一系列的靜態(tài)和動態(tài)模型測試、代碼生成以及編譯,確保變更后的代碼不會引入新的問題。

靜態(tài)模型測試:使用靜態(tài)模型測試工具(MXAM)導(dǎo)入模型并進(jìn)行測試,確保模型的完整性和正確性。

動態(tài)模型測試:通過動態(tài)模型測試工具(TPT)執(zhí)行測試用例,并生成測試報告上傳到版本管理系統(tǒng),最后通過郵件通知到對應(yīng)的模型更改人員。

代碼生成:通過MATLAB進(jìn)行模型生成代碼,將其上傳至版本管理系統(tǒng)。

編譯:完成模型生成代碼后,該模型模塊代碼會被集成到整個開發(fā)工程中進(jìn)行編譯,以此驗證其與最新代碼層是否兼容,并確保功能正常。

在ASW模塊的CI流程中,Jenkins服務(wù)器會根據(jù)預(yù)定的觸發(fā)條件,如代碼提交或配置文件的變化,自動執(zhí)行上述步驟,并將結(jié)果通知給相關(guān)開發(fā)人員。
2. BSW模塊變更流程
BSW(基礎(chǔ)軟件)模塊的觸發(fā)后的執(zhí)行流程相對簡單,通常包括整體工程的編譯以及編譯后的結(jié)果自動上傳,其主要目的是確?;A(chǔ)軟件的功能和性能在各個開發(fā)階段的一致性。

代碼上傳:從拉取最新的代碼,開發(fā)人員根據(jù)變更需求對代碼進(jìn)行調(diào)整并重新上傳。

BSW模塊編譯:從版本管理系統(tǒng)中拉取開發(fā)上傳好的代碼,然后進(jìn)行編譯,最后將編譯結(jié)果傳遞到版本管理系統(tǒng)中,并通知到對應(yīng)的開發(fā)人員。

3. CDD模塊變更流程
CDD(手寫代碼)模塊的變更與測試也在整個CI流程中占據(jù)重要位置。其主要作用是通過靜態(tài)代碼測試和動態(tài)代碼測試來驗證組件的正確性以及組件的合規(guī)情況。

靜態(tài)代碼測試:通過Helix QAC工具對導(dǎo)入的代碼進(jìn)行靜態(tài)分析,檢查代碼的命名規(guī)則和編碼規(guī)范是否符合標(biāo)準(zhǔn)要求。

動態(tài)代碼測試:使用VectorCAST工具對組件進(jìn)行動態(tài)測試,并生成測試報告上傳到版本管理系統(tǒng)供開發(fā)人員查看。

編譯:完成模型生成代碼后,該模型模塊代碼會被集成到整個開發(fā)工程中進(jìn)行編譯,以此驗證其與最新代碼層是否兼容,并確保功能正常。

在CDD模塊的CI流程中,Jenkins服務(wù)器會根據(jù)預(yù)定的觸發(fā)條件,如代碼提交或配置文件的變化,自動執(zhí)行上述步驟,并將結(jié)果通知給相關(guān)開發(fā)人員。

d8dba532-919b-11ef-b5cd-92fbcf53809c.png

基于AUTOSAR的CI流程優(yōu)勢
通過上述流程的詳細(xì)解讀,我們可以看出基于AUTOSAR架構(gòu)的CI流程具有以下幾個顯著的優(yōu)勢:

自動化測試與集成:通過Jenkins服務(wù)器自動執(zhí)行代碼的集成、測試和發(fā)布流程,減少了開發(fā)人員和測試人員的手動操作,提高了開發(fā)效率。

代碼質(zhì)量保證:靜態(tài)代碼分析和動態(tài)測試用例的自動化執(zhí)行,確保了代碼的規(guī)范性和正確性,極大地降低了潛在的代碼缺陷風(fēng)險。

及時反饋機制:CI流程中的每個步驟都伴隨著詳細(xì)的報告生成與郵件通知,使得開發(fā)人員能夠及時獲取變更結(jié)果,快速進(jìn)行問題定位和修復(fù)。

固定的文件結(jié)構(gòu):由于AUTOSAR架構(gòu)中的文件結(jié)構(gòu)是固定和標(biāo)準(zhǔn)化的,CI鏈路能夠很好地利用這一特點,實現(xiàn)高效的集成和自動化測試。這種標(biāo)準(zhǔn)化結(jié)構(gòu)使得代碼的組織和管理更加一致,有助于CI流程的自動化處理,進(jìn)一步提升了集成效率并減少了出錯的可能性。

d8ece838-919b-11ef-b5cd-92fbcf53809c.png

實踐中的挑戰(zhàn)與建議
雖然基于AUTOSAR架構(gòu)的CI流程在實際應(yīng)用中展示了極大的優(yōu)越性,但在實施過程中也可能會遇到一些挑戰(zhàn):

工具鏈集成復(fù)雜:由于AUTOSAR涉及多個不同的工具,如MXAM、HeliX QAC、TPT、VectorCAST等,工具鏈的集成和維護(hù)需要耗費較多精力。建議企業(yè)在實施過程中設(shè)立專門的CI工具鏈維護(hù)團隊或讓供應(yīng)商進(jìn)行鏈路搭建,后續(xù)可以通過內(nèi)部人員進(jìn)行維護(hù),確保工具鏈的高效運轉(zhuǎn)。

團隊協(xié)作要求高:CI流程的順利實施需要開發(fā)、測試、運維等多方團隊的緊密協(xié)作,因此在實踐中應(yīng)加強團隊之間的溝通與協(xié)同,定期進(jìn)行流程優(yōu)化與改進(jìn)。

d9014288-919b-11ef-b5cd-92fbcf53809c.png

結(jié)語
基于AUTOSAR架構(gòu)的CI流程是汽車軟件開發(fā)中不可或缺的一環(huán)。它通過自動化的集成與測試,保證了軟件的高質(zhì)量和穩(wěn)定性。在未來,隨著汽車智能化和自動駕駛技術(shù)的發(fā)展,CI流程的重要性將愈發(fā)凸顯。因此,持續(xù)優(yōu)化和完善CI流程,是每個從事汽車軟件開發(fā)的企業(yè)都需要高度重視的問題。
通過這次流程的實踐介紹,相信大家對基于AUTOSAR的CI流程有了更加清晰的認(rèn)識。希望本文能夠為正在或即將實施CI流程的企業(yè)和團隊提供有益的參考與啟發(fā)。北匯信息已為國內(nèi)汽車客戶提供相應(yīng)的服務(wù)內(nèi)容,歡迎垂詢!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 汽車電子
    +關(guān)注

    關(guān)注

    3019

    文章

    7790

    瀏覽量

    165696
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4619

    瀏覽量

    86995
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    345

    瀏覽量

    21417
收藏 人收藏

    評論

    相關(guān)推薦

    云計算平臺的最佳實踐

    云計算平臺的最佳實踐涉及多個方面,以確保高效、安全、可擴展和成本優(yōu)化的云環(huán)境。以下是一些關(guān)鍵的最佳實踐: 一、云成本優(yōu)化 詳細(xì)分析云使用情況 :通過細(xì)致的監(jiān)控和分析,識別低ROI(投資
    的頭像 發(fā)表于 10-24 09:17 ?134次閱讀

    在TI SoC上集成AUTOSAR:基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《在TI SoC上集成AUTOSAR:基礎(chǔ)知識.pdf》資料免費下載
    發(fā)表于 10-11 11:50 ?0次下載
    在TI SoC上<b class='flag-5'>集成</b><b class='flag-5'>AUTOSAR</b>:基礎(chǔ)知識

    Perforce靜態(tài)分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改進(jìn)和安全增強

    實現(xiàn)持續(xù)合規(guī)性現(xiàn)代軟件開發(fā)實踐要求開發(fā)團隊具備適應(yīng)性,在確保代碼質(zhì)量和可靠性的同時,優(yōu)先考慮靈活性和協(xié)作性。在軟件開發(fā)流程中實施持續(xù)集成CI)和
    的頭像 發(fā)表于 10-08 16:22 ?151次閱讀
    Perforce靜態(tài)分析工具2024.2新增功能:Helix QAC全新<b class='flag-5'>CI</b>/CD<b class='flag-5'>集成</b>支持、Klocwork分析引擎改進(jìn)和安全增強

    Vector AUTOSAR中的TISCI服務(wù)器集成

    電子發(fā)燒友網(wǎng)站提供《Vector AUTOSAR中的TISCI服務(wù)器集成.pdf》資料免費下載
    發(fā)表于 08-30 11:16 ?0次下載
    Vector <b class='flag-5'>AUTOSAR</b>中的TISCI服務(wù)器<b class='flag-5'>集成</b>

    RTOS開發(fā)最佳實踐

    基于RTOS編寫應(yīng)用程序時,有一些要注意事項。在本節(jié)中,您將學(xué)習(xí)RTOS開發(fā)最佳實踐,例如POSIX合規(guī)性、安全性和功能安全認(rèn)證。
    的頭像 發(fā)表于 08-20 11:24 ?317次閱讀

    自動化構(gòu)建環(huán)境在FPGA設(shè)計中的應(yīng)用

    為了加快實現(xiàn) FPGA 構(gòu)建環(huán)境的自動化(如用于持續(xù)集成 (CI)),并確保在開發(fā)與生命周期后期階段完整重現(xiàn)設(shè)計結(jié)果,Missing Link Electronics 團隊已整合出一套腳本。
    發(fā)表于 02-20 11:05 ?321次閱讀
    自動化構(gòu)建環(huán)境在FPGA設(shè)計中的應(yīng)用

    INTEWORK—PET 汽車軟件持續(xù)集成平臺

    INTEWORK-PET-CI是經(jīng)緯恒潤自主研發(fā)的汽車軟件持續(xù)集成&持續(xù)交付平臺,在傳統(tǒng)的持續(xù)集成基礎(chǔ)上深化了研運一體化(DevOps)的概念,將嵌入式軟件中的拉取代碼、檢查、構(gòu)建、測
    的頭像 發(fā)表于 01-19 11:04 ?482次閱讀
    INTEWORK—PET 汽車軟件<b class='flag-5'>持續(xù)集成</b>平臺

    AUTOSAR Builder—符合AUTOSAR(CPAP)的嵌入式系統(tǒng)設(shè)計工具

    的工具并與其他工具供應(yīng)商進(jìn)行集成AUTOSAR Builder在此基礎(chǔ)上新增了多個工具套件,更加能夠貼合不同用戶角色(OEM、Tier1)的使用場景和研發(fā)流程,覆蓋基于AUTOSAR的軟件研發(fā)的各個環(huán)節(jié)。
    的頭像 發(fā)表于 01-08 18:06 ?484次閱讀
    <b class='flag-5'>AUTOSAR</b> Builder—符合<b class='flag-5'>AUTOSAR</b>(CPAP)的嵌入式系統(tǒng)設(shè)計工具

    AUTOSAR架構(gòu)中復(fù)雜驅(qū)動設(shè)計

    復(fù)雜驅(qū)動(Complex Driver,CDD)是一種不受 AUTOSAR 標(biāo)準(zhǔn)化約束的軟件實體,它可以通過 AUTOSAR 接口和/或基礎(chǔ)軟件模塊 API 進(jìn)行訪問 AUTOSAR 組件或者被
    的頭像 發(fā)表于 12-21 10:13 ?3759次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架構(gòu)</b>中復(fù)雜驅(qū)動設(shè)計

    分析Autosar架構(gòu)的NVM源碼

    Autosar(Automotive Open System Architecture)是一種用于汽車電子系統(tǒng)開發(fā)的開放式架構(gòu)標(biāo)準(zhǔn),旨在提供一種用于構(gòu)建可靠、安全的分布式系統(tǒng)的框架。其中,NVM
    的頭像 發(fā)表于 12-08 13:56 ?1320次閱讀

    AUTOSAR架構(gòu)的多核通信介紹

    隨著汽車ECU迅速的往域控制器方向發(fā)展,ECU要處理的任務(wù)越來越多,單核CPU的負(fù)載越來越大,多核ECU勢在必行。AUTOSAR架構(gòu)OS支持多核處理,本系列文章將詳細(xì)介紹AUTOSAR
    的頭像 發(fā)表于 11-13 09:24 ?1847次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架構(gòu)</b><b class='flag-5'>下</b>的多核通信介紹

    AUTOSAR軟件開發(fā)流程簡介

    AUTOSAR軟件開發(fā)流程簡介 AUTOSAR軟件開發(fā)流程是指在AUTOSAR架構(gòu)進(jìn)行軟件開發(fā)的一系列步驟和方法。它包括以下幾個主要階段:
    的頭像 發(fā)表于 10-27 15:55 ?2925次閱讀
    <b class='flag-5'>AUTOSAR</b>軟件開發(fā)流程簡介

    AUTOSAR CP的復(fù)雜驅(qū)動是什么

    、ASIC等,以滿足特殊的功能和時序要求。此外,CDD還可以用于實現(xiàn)增強的服務(wù)/協(xié)議或封裝非AUTOSAR系統(tǒng)的傳統(tǒng)功能。CDD的實現(xiàn)可能與應(yīng)用、微控制器和ECU有關(guān)。最后,CDD可以作為引入現(xiàn)有或新概念到AUTOSAR軟件架構(gòu)
    的頭像 發(fā)表于 10-27 15:39 ?1984次閱讀
    <b class='flag-5'>AUTOSAR</b> CP的復(fù)雜驅(qū)動是什么

    AUTOSAR經(jīng)典平臺介紹

    經(jīng)典平臺(AUTOSAR CP) AUTOSAR經(jīng)典平臺(AUTOSAR CP)是AUTOSAR軟件架構(gòu)的一種實現(xiàn),旨在提供一種標(biāo)準(zhǔn)化的方法
    的頭像 發(fā)表于 10-27 15:30 ?1286次閱讀
    <b class='flag-5'>AUTOSAR</b>經(jīng)典平臺介紹

    AUTOSAR架構(gòu)自適應(yīng)平臺

    AUTOSAR架構(gòu) AUTOSAR(AUTomotive Open System ARchitecture)是一種開放的汽車電子系統(tǒng)架構(gòu),旨在提供一種標(biāo)準(zhǔn)化的方法來開發(fā)和管理汽車電子系
    的頭像 發(fā)表于 10-27 15:23 ?1173次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架構(gòu)</b>自適應(yīng)平臺