999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Jenkins的汽車電子軟件持續集成技術研究

2025-02-08 00:00:00高德志陳樹星王春錦王恩東王宗興
汽車文摘 2025年2期

【Cite this paper】GAO D Z, CHEN S X, WANG C J, et al. Research on Continuous Integration Technology of Automotive Electronic Software Based on Jenkins [J]. Automotive Digest (Chinese), 2024(XX):X-XX.

【摘要】針對汽車電子軟件開發工作中集成與測試工作繁雜重復、人為操作效率低的問題,設計了一種基于Jenkins的汽車發動機ECU軟件持續集成系統。該方法在車載嵌入式軟件開發技術中融合了Jenkins持續集成技術,將SVN軟件版本管理、HighTec集成編譯、目標控制器遠程刷寫、軟件測試及報告通知環節整合成一個自動化流程,搭建了一個了基于Jenkins技術的汽車電子軟件持續集成系統。該系統可大幅縮短軟件迭代升級的開發周期,避免人為集成操作失誤。

關鍵詞:Jenkins;持續集成;汽車電子軟件開發;SVN系統;郵件通知

中圖分類號:U462.1文獻標志碼:A" " " " "DOI: 10.19822/j.cnki.1671-6329.20240150

Research on Continuous Integration Technology of Automotive Electronic Software Based on Jenkins

Gao Dezhi, Chen Shuxing, Wang Chunjin, Wang Endong, WangZongxing

(Commercial Vehicle Development Institute, FAW Jiefang Truck Co., Ltd., Changchun 130011)

【Abstract】Aiming at the problems of complicated and repetitive integration and testing which are inefficient in automotive electronics software development, a continuous integration system for automotive engine ECU software based on Jenkins is designed. This method combines Jenkins continuous integration technology and automotive embedded software development technology and connects development process nodes into an automated process which is called Jenkins-based electronics software continuous integration technology. The development process nodes include SVN software version management, HighTec integrated compilation, remote flashing of target ECU, software integration test and mail notification. This Jenkins system can shorten the development cycle of software iterative upgrades and avoid human integration operation errors.

Key words: Jenkins,Continuous integration, Automotive electronic software development, SVN system, Mail notification

0 引言

隨著“軟件定義汽車”的趨勢在行業內受到廣泛認可,汽車電子軟件開發在整車研發流程中的重要性日益凸顯。汽車電子軟件開發是指在車規級芯片的電控單元(Electronic Control Unit,ECU)上進行的軟件程序開發,該過程包括需求分析、架構設計、代碼開發、集成測試以及釋放驗證。實際開發項目中產品軟件不斷迭代升級,工程師頻繁集成最新的軟件提交物,這要求工程師在專注于需求分析與模塊代碼開發之余,還需投入大量精力處理軟件配置管理、代碼集成編譯、測試及通知等環節。例如,工程師每周提交軟件工作包3次,項目組每周重復3次集成及回歸測試,造成研發資源浪費。為解決汽車電子軟件開發這一痛點,亟需一種自動化集成方法,提高汽車電子軟件迭代升級的效率。

自動化持續集成是一種可以提高軟件開發效率和質量的重要實踐方法。通過構建自動化的開發集成流程,開發人員可以更快地完成軟件交付,并降低錯誤率。當前在消費電子及IT領域,自動化持續集成方案已廣泛使用。對比傳統軟件行業領域,持續集成技術在汽車電子軟件領域尚待推廣應用。本文針對汽車電子軟件自動化持續集成技術,以目前主流的PowerPC多核架構芯片嵌入式軟件研發平臺工具鏈為例,搭建一種基于Jenkins技術的軟件持續集成系統。該系統利用功能豐富、開源免費的Jenkins軟件,將汽車電子軟件開發工作中的軟件版本管理、集成編譯、目標控制器刷寫、軟件集成測試及報告通知等標準流程化的操作進行持續自動化執行。

1 基于Jenkins的持續集成系統概述

持續集成系統一般由持續集成引擎、軟件配置管理系統、集成編譯調試系統、測試系統以及監控通知系統組成,如圖1所示。持續集成系統旨在滿足敏捷軟件開發[1]的需求。相比于人工集成,持續集成系統分2步實現:(1)各子系統實現自動化運行。(2)持續集成引擎驅動各子系統實現整個持續集成系統運轉。

1.1 持續集成引擎

持續集成引擎通過構建標準流程化任務實現監控自動化任務執行。Jenkins是基于Java語言開發的一個可擴展的持續集成引擎,由Hudson[2]技術發展而來的一個開源免費的持續集成基礎工具。Jenkins具有便捷的拓展接口,可以滿足不同系統方案需求,如任務構建、測試通知以及軟件部署。Jenkins的開放生態為用戶提供了豐富的插件資源,主要包括版本控制、構建工具、代碼質量度量、構建通知、外部系統集成以及用戶界面定制化,這些插件開源免費且具有較高時效性。

1.2 軟件配置管理

配置管理是指在軟件產品開發過程中,對整個生命周期實施的一系列控制和管理措施,主要包括配置計劃管理、版本庫管理以及變更控制管理。當前主流的配置管理系統有Meran公司的PVCS(Project Version Control System)、Rational公司的ClearCase以及Collabnet提供的開源工具SVN(SubVersion)。

SVN是一個開源免費的版本控制工具,采用服務器/客戶機(Client/Server)模式運行。Server端通過一個中央資料檔案庫(Repository)管理數據的變更時間及版本信息。軟件開發項目中的各種版本的程序源碼均存儲在服務器上,程序開發人員作為客戶端可以從服務器獲取最新版本數據進行開發工作,也可以隨時提交更新后的任務包。

配置管理與持續集成引擎的結合是持續集成系統的關鍵,設計目標是當開發人員上傳提交物時,SVN可以檢測到Repository中的內容變更,并自動觸發Jenkins相關腳本任務執行。

1.3 集成編譯調試

編譯器是一種可以將高級軟件語言的程序生成目標機器可執行程序的軟件工具。HighTec編譯器適用于PowerPC多核架構芯片,能夠提供面向嵌入式系統軟件工程的集成開發環境,支持軟件編輯、編譯鏈接及調試功能。HighTec編譯器內核支持腳本語言開發,通過驅動HighTec工程的自動化腳本程序,實現持續集成系統的自動編譯功能。

調試器是用于控制軟件運行、查看軟件運行狀態及信息、調整軟件執行流程的軟件開發輔助工具。嵌入式系統調試器兼有對目標板下載刷寫功能。iSYSTEM調試仿真器可適用于PowerPC多核架構芯片調試。winIDEA集成調試環境可與iSYSTEM硬件進行交互操作。winIDEA調試環境提供了豐富的接口功能,通過調用iSYSTEM.Connect API接口,可實現外部應用程序對iSYSTEM進行遠程控制,進而實現對目標硬件刷寫和調試操作,為持續集成系統配置遠程刷寫功能配置提供了技術方案。

1.4 測試驅動及監控通知

軟件開發過程中需執行測試用例以驗證軟件功能,并反饋驗證結果通知。軟件迭代持續升級階段需要大量測試以保證未修改的軟件功能正確運行。軟件回歸測試通過對原有功能測試以確保新修改軟件中的原有功能是否保持正常運行的一種測試策略,測試用例一般在已有的測試用例庫中選取。除了回歸測試,代碼靜態測試也是迭代升級階段保證軟件質量的重要手段。Ployspace是一種利用語義分析技術進行軟件代碼靜態測試的工具,在MATLAB環境中,通過加載目標代碼,其可便捷地進行軟件編程規范檢查與程序靜態結構分析。

軟件測試的自動化技術隨著汽車電子軟件測試技術的發展,工具接口越來越豐富化。持續集成系統在測試任務中,可直接驅動接口執行自動化測試。在回歸測試階段,持續集成系統通過驅動接口調用已有的自動化測試用例庫執行。Jenkins持續集成引擎可以提供郵件通知功能,也可以通過擴展插件接口集成定制的通知系統,例如企業微信。通知系統將測試報告發送至相關工程師,工程師根據結果決定進行發布或繼續迭代優化。

2 基于Jenkins的發動機ECU軟件持續集成系統設計

Jenkins持續集成系統對基于蘇州國芯CCFC3007PT芯片的發動機控制器開發平臺進行設計,整合開發流程中的SVN工具進行軟件版本同步,整合HighTec編譯工具及iSYSTEM調試工具實現編譯下載,整合Polyspace、CANoe工具以及Mail系統實現軟件測試及報告通知,如圖2所示。

2.1 持續集成系統搭建

選取工作站電腦搭建Jenkins軟件持續集成系統服務器,其環境參數如表1所示。Jenkins是基于Java開發的一種持續集成工具,Windows操作系統中仍需安裝Java環境。Jenkins安裝部署的默認端口號8080為常用端口號,為避免與系統中其他服務端口沖突,系統選用8081端口進行安裝,指令如下:

CMD指令:java -jar jenkins.war --httpPort=8081

Jenkins持續集成系統服務器可以通過任意客戶端電腦IP訪問服務器端,進行工程任務配置及任務執行狀態的查看。

2.1.1 SVN版本管理

待集成的軟件通過SVN客戶端上傳至SVN服務器,SVN服務器的版本管理系統將提交軟件的版本管理信息、變更原因載入SVN數據庫。Jenkins持續集成系統通過開源插件Subversion獲取SVN數據庫訪問權限,將待集成的軟件遠程下載、版本同步至持續集成系統服務器。Jenkins持續集成系統通過配置定時任務和HOOK機制觸發持續集成服務器與SVN服務器代碼同步。HOOK機制[3]在SVN服務器端負責驅動post-commit腳本,該腳本負責觸發Jenkins啟動任務,腳本關鍵內容如下:

HOOK腳本指令:

H:\curl\bin\curl.exe http://admin:GaoDZ@10.60.175.14:8081/job/CI_Jenkins_SVN_HighTec_winIDEA/build?token=Jenkins

SVN觸發持續集成系統構建任務后,Jenkins控制臺將提交SVN時的備注作為任務執行的觸發描述,提交代碼時須附清晰合理的變更描述,如圖3所示。

2.1.2 HighTec自動編譯

PowerPC多核架構CCFC3007PT芯片軟件開發項目選用HighTec作為編譯器工具。HighTec編譯器通過集成開發環境進行嵌入式軟件工程環境配置、代碼編輯以及軟件編譯,編譯生成的二進制可執行文件用于CCFC3007PT芯片刷寫。持續集成系統HighTec編譯器使用命令行方式通過make指令執行編譯操作,關鍵指令如下:

make指令: -clean 清除已有輸出文件,重新構建

持續集成系統自動編譯系統搭建步驟:(1)持續集成服務器對SVN同步的軟件工程進行HighTec編譯器配置,完成編譯環境搭建。(2)利用make指令通過命令行腳本的方式實現腳本化運行HighTec編譯。(3)Jenkins系統任務中添加make指令腳本完成編譯任務設置,如圖4所示。

2.1.3 IC5000自動刷寫

持續集成系統自動編譯成功后,調用Jenkins集成安裝路徑下IC5000調試器的集成調試環境winIDEA以加載工作空間的配置信息,并自動下載代碼至目標板。

持續集成系統自動刷寫系統搭建步驟:(1)持續集成服務系統中對編譯成功的軟件工程搭建winIDEA環境。目標調試器設置為IP地址遠程訪問,刷寫端口類型設置為DAP2,將刷寫文件列表及路徑與HighTec的輸出文件關聯,winIDEA工程配置信息以“.xjrf”類型的文件形式保存。(2)利用iSYSTEM提供的Python軟件開發工具包中的isystem.connect類函數,加載winIDEA工程配置,用以下Python腳本執行連接、下載、運行操作。

Python指令:

# 連接winIDEA加載項目配置

cmgr = ic.ConnectionMgr()

cmgr.connectMRU(r'H:\bat\ECU.xjrf')

# 執行下載、運行

dbg = ic.CDebugFacade(cmgr)

dbg.download()

dbg.run()

(3)與自動編譯系統類似,Jenkins持續集成系統任務中驅動Python腳本完成刷寫任務設置。

2.1.4 測試驅動

持續集成系統完成編譯、下載和運行后,測試環節通過Jenkins的任務構建命令驅動測試程序自動運行[4],因此持續集成系統測試環節的先決條件是具備可運行的測試工具軟件。本系統以Polyspace靜態代碼測試為例,持續集成系統自動檢測系統搭建步驟如下:(1)持續集成服務器為目標軟件工程建立Code Prover與Bug Finder檢測的Polyspace工程。(2)編寫命令行自動化腳本調用Polyspace工程運行Code Prover與Bug Finder檢測,設置報告文件名稱、報告模板、文檔格式及輸出路徑,關鍵指令如下:

CMD指令:

\"..\\polyspace-code-prover-nodesktop.exe\"

-langC-options-file" " " \"..\\options_command.txt\"

-report-template" " " " \"..\\Developer.rpt\"

-report-output-format" " pdf

-report-output-name" " "CP_Result

-results-dir\"..\\CP_Result\"

(3)Jenkins持續集成系統任務中驅動Ployspace測試運行腳本完成靜態測試任務設置。

除靜態測試外,持續集成系統在目標板上觸發軟件運行后,可遠程驅動功能測試系統運行,如硬件在環(Hardware In Loop,HIL)測試系統[5]。針對基于CANoe[6]、CANdiva等工具自主開發的CAPL(Communication Access Programming Language,它是一種專門用于CAN(Controller Area Network)通信和診斷的腳本語言,由Vector公司開發)測試用例庫,Jenkins通過調用canoe32.exe腳本執行測試用例文件[7],實現定制功能測試系統運行。

2.2 通知與釋放

持續集成系統通過Jenkins自有郵件通知系統將模塊工程師、集成工程師及下一環節接口工程師作為郵件接收人,郵件正文的內容列舉持續集成系統的項目名稱、SVN庫路徑、版本管理信息[8]、觸發集成原因以及Jenkins持續集成系統內部狀態信息,如圖6所示。郵件通過格式重點突出持續集成任務[9]的最終結果,通過附件提供編譯記錄和測試報告持續集成過程細節。

3 應用效果

Jenkins持續集成系統中,工程師使用SVN客戶端提交軟件模塊,SVN服務器檢測提交物檢入成功,觸發持續集成服務器Jenkins_SVN_HighTec_winIDEA項目,依次執行代碼版本同步、HighTec編譯、iSYSTEM刷寫以及Polyspace靜態測試,將每個環節的執行結果進行郵件通知。全部流程在無人值守的情況下Jenkins持續集成系統平均用時12分鐘,同樣的環節人工集成平均用時21分鐘,由此可得基于Jenkins技術的軟件持續集成技術有效縮短汽車電子軟件集成時間,同時降低人為操作失誤的影響。

4 總結與展望

本文提出了一種基于Jenkins的汽車電子軟件持續集成技術,以CFCC3007PT芯片方案的控制器開發為平臺,通過Jenkins的強大驅動功能,實現了軟件版本集成、編譯下載、測試以及郵件通知等環節的自動執行[10]。未來自動化測試技術不斷發展,可進一步提高軟件開發效率,精簡集成測試環節的人力投入。

持續集成技術的廣泛應用加速了軟件行業的發展,基于Jenkins的汽車電子軟件持續集成技術的應用助推了“軟件定義汽車”的行業變革轉型。未來汽車電子架構中為滿足汽車“電動化、智能化、網聯化、共享化”要求,軟件功能將以智能應用軟件的形式存在。不斷升級的車載智能應用軟件衍生更多軟件集成需求,屆時持續不斷的交付發布軟件、提高軟件的時間附加值、搶占軟件發布的市場先機將是Jenkins持續集成技術最為重要的作用。

參考文獻

[1] 田莉.論如何借鑒敏捷軟件開發方法來改進軟件項目管理[C]//第三十二屆中國(天津)2018'IT、網絡、信息技術、電子、儀器儀表創新學術會議論文集, 2018: 330-333.

[2] 牛璟.分布式系統中的持續集成系統的研究與實現[D].上海:復旦大學,2012.

[3] 姜文,劉立康.基于SVN的應用軟件持續集成[J].計算機測量與控制, 2016, 24(3): 109-113.

[4] 李英玲,王青.持續集成測試用例集優化綜述研究[J].軟件學報, 2018, 29(10):3021-3050.

[5] 車曉鐳.汽車動力總成電控單元硬件在環測試系統研究[D].長春: 吉林大學,2011.

[6] 錢俊磊.基于CANoe和Jenkins的ECU軟件自動化測試系統的設計與實現[J].汽車實用技術, 2019(22): 64-67.

[7] 徐永新,朱娟,王裕鵬.基于ECU_TEST的ECU報文自動測試研究與應用[J].汽車電器, 2018(10): 71-74.

[8] 王靜,夏禹.一種汽車軟件的版本管理方法,系統及介質:202410109232[P]. 2024-07-23.

[9] 徐江川.集群部署方法,裝置,車輛和存儲介質:202311114096[P]. 2024-07-23.

[10] 謝眾玉,王功亮,劉西學,等.一種汽車軟件持續集成測試方法及系統:202310822237[P]. 2024-07-23.

主站蜘蛛池模板: 亚洲中文字幕无码mv| 久久久久国色AV免费观看性色| 国产在线麻豆波多野结衣| 久久精品人人做人人综合试看| 亚洲精品在线影院| 亚洲精品午夜无码电影网| 伊人久久大香线蕉aⅴ色| a天堂视频| 在线日本国产成人免费的| 免费一极毛片| 美臀人妻中出中文字幕在线| 日韩AV无码免费一二三区| 亚洲一区国色天香| 久久久久久久久亚洲精品| 国产一区二区在线视频观看| 国产精品香蕉| 国产精品伦视频观看免费| 免费人欧美成又黄又爽的视频| 日韩视频福利| 欧美一级黄片一区2区| 亚洲国产综合精品中文第一| 久久精品国产999大香线焦| 亚洲AV色香蕉一区二区| 狠狠色狠狠综合久久| 亚洲精品无码人妻无码| 国产地址二永久伊甸园| 伊人久综合| 在线免费看黄的网站| 日韩精品亚洲人旧成在线| 高清色本在线www| 国产亚洲精品自在线| 91黄视频在线观看| 久久久久88色偷偷| 高清无码一本到东京热| 国产91视频观看| 国产靠逼视频| 国产精品3p视频| 毛片久久网站小视频| 午夜a视频| 国产成人综合亚洲欧美在| 国产在线一区视频| 自慰网址在线观看| 夜精品a一区二区三区| 久久一级电影| 亚洲欧美激情另类| 这里只有精品在线| 午夜高清国产拍精品| 欧美一区二区人人喊爽| 国产精品久久久久久久久| 国产区91| 久久国产精品国产自线拍| 欧美国产日产一区二区| 丝袜亚洲综合| 免费人成网站在线高清| 好紧太爽了视频免费无码| 99视频精品全国免费品| 欧美亚洲国产一区| 欧美视频在线不卡| 国产精品成人观看视频国产 | 亚洲欧美日韩另类在线一| 国产精品页| 色婷婷在线播放| 欧美性天天| 欧美一区二区三区不卡免费| 亚洲欧美成人综合| 欧美激情视频二区三区| 亚洲欧洲天堂色AV| 国产精欧美一区二区三区| 国产欧美日韩专区发布| 又猛又黄又爽无遮挡的视频网站| 色香蕉影院| 亚洲—日韩aV在线| 人妻无码一区二区视频| 青青操国产| 性色一区| 久久综合结合久久狠狠狠97色| 亚洲人成网址| 日本一区二区三区精品国产| 欧美国产日韩另类| 亚洲综合精品香蕉久久网| 福利片91| 久久a级片|