精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Vector DaVinci Team解決方案實現AUTOSAR Classic ECU軟件開發

Vector維克多 ? 來源:Vector維克多 ? 2024-09-13 11:23 ? 次閱讀

當下ECU軟件開發的挑戰

隨著軟件技術的發展,車輛的開發過程從硬件主導轉變為軟件定義汽車(SDV),軟件開發在汽車的開發過程中扮演著舉足輕重的角色。車輛E/E架構由原先的各ECU只負責單一功能的分布式架構,轉變為高性能計算單元(HPC)和區域控制單元(Zonal ECU)分工協作的架構。因此,ECU的軟件功能越來越多,越來越復雜。ECU的軟件開發,也將引入不同部門、不同公司的更多項目開發人員的協作。在ECU軟件開發變得更加復雜更加緊密協作的同時,軟件的版本迭代周期也變得越來越短。

傳統的工作流程和開發過程難以滿足這些要求,因此以DevOps為導向的持續集成方法正成為新的趨勢。然而,由于AUTOSAR Classic項目的單一工程結構,實現AUTOSAR Classic ECU軟件開發的持續集成并不是一項容易的任務。根據項目的部署和開發過程,可以觀察到以下三種方式及挑戰。

1.1 基于功能開發中的合并沖突問題

將項目中各成員的增量(設計、配置和實現)合并是一個重大挑戰,特別是基于各功能團隊獨立開發的模式。對于AUTOSAR Classic項目(圖1-1),基于功能的開發方式意味著項目成員開發應用軟件(SWC),并自行將其集成到基礎軟件(BSW)中。這種方法可以應用于獨立完整的SWC,也可以應用于與其他項目成員協作開發的SWC。

wKgaombjsJWAaR84AACnzQmpA7c483.jpg

圖1-1基于功能的開發方式

1.2 基于組件開發的集成滯后問題

另一種方法是將工作角色劃分為項目內更專業的角色,這里定義為基于組件的開發方式(圖1-2)。在這種項目開發方式中,有專注于SWC的應用開發人員,以及一個軟件集成團隊負責配置BSW,并將SWC和BSW進行集成。

wKgaombjsJWAcM8oAAC7w46Oe2k858.jpg

圖1-2基于模塊的開發方式

在這種情況下,應用開發人員既無法訪問BSW的配置,也無法使用工具將SWC與BSW集成。相比于基于功能的開發方式(每個項目成員可以獨立處理自己的功能),在基于組件的開發方式中,應用開發人員依賴于軟件集成團隊。

wKgZombjsJWAEKDEAACkUa5MT-A837.jpg

圖1-3基于模塊的開發方式的集成流程

這種方法的好處是減少了合并問題,缺點是集成的總時長增加了。軟件集成團隊只能在應用開發人員完成他們的工作后才開始集成,而且集成必須根據軟件集成團隊的可用時間進行安排。據應用開發人員的反饋,許多人等待他們的SWC與BSW集成的時間在1到4周之間,導致驗證延遲,發現問題延遲,最終可能會危及項目的里程碑。圖1-3描述了這種集成流程。

1.3 手動集成中的重復工作問題

在傳統的基于DaVinci Configurator Classic GUI的工作模式中,將SWC與BSW集成需要許多手動步驟(圖1-4)。

wKgZombjsJWALzi8AACh_A2wcqg566.jpg

圖1-4手動集成步驟

首先,需要打開DaVinci Configurator Classic并將SWC加載到項目中。接下來,針對每個 SWC需要執行以下重復的步驟:

手動配置RTE,例如將Runnable映射到Task,將NvSWC連接到對應部分,創建或調整內存塊,以及添加數據映射;

配置完成后,需要驗證配置,并解決可能存在的問題。

在SWC和Runnable數量龐大的大型項目中,這種重復的集成活動將非常耗時,并且會花費大量人力。因此,手動集成步驟的自動化實現,對縮減項目集成時間,降低集成的人力成本,加快版本發布,都能帶來極大的好處。

如何解決這些挑戰?

上述挑戰,使得ECU的軟件開發過程變得繁瑣,且迭代周期變得滯后。為了應對這些挑戰,DaVinci Team提供一種分布式開發團隊高效協作的解決方案。基本概念如下:

SWC和BSW解耦;

前移集成決策(例如,Runnable和Task的映射、端口映射、數據映射或NvM集成決策),以便于SWC開發人員能夠自行將SWC與BSW集成;

提供一個自動化Pipeline,自動執行SWC與BSW集成的步驟。

結合支持自動化的工具,基于定制的持續集成Pipeline,工程師能夠獨立工作,并省去大量的重復工作。

2.1 基于組件開發的集成滯后問題

使用DaVinci Team,可以通過不同的方式組織項目,從而顯著解決前文提到的這些挑戰。首先是拆分項目(圖2-1)使得SWC與BSW解耦并將BSW定義為Root Configuration。

對于優化工作流程至關重要的一步是移除RTE并為SWC添加集成指令(Integration Instruction)。這完全避免了RTE的合并,解決了合并項目增量時經常遇到的沖突問題。

wKgaombjsMmAHFlwAAC4g15rNKM865.jpg

圖2-1DaVinci Team工作流程

關于SWC,需要由SWC開發人員將其分解為App Package。這種分解的最大好處是限制合并沖突,并通過Instruction文件來管理App Package,從而實現持續集成。

在此背景下,App Package定義如下:

SWC組件(ARXML)

源代碼或庫文件

Instruction文件(Task Mapping、Port Mapping、Data Mapping等JSON文件)

wKgaombjsMmAJrFUAAAsGOqGwvU207.jpg

圖 2-2 示例App-Package

圖2-2顯示了一個示例App Package。這些JSON格式的Instruction文件描述了RTE應該如何構建(下一章中將詳細說明)。

盡管項目被拆分成多個包,用戶仍然可以自由選擇他們喜歡的開發方法。這只是一個在倉庫中組織包的問題:包含所有包的單一倉庫(適用于基于功能的開發方法)或創建多個倉庫,每個倉庫包含單一的包(適用于基于組件的開發方法)。

2.2 前移集成決策

App Package作為DaVinci Team的輸入,包含了JSON格式的Integration Instruction。為了在不同角色之間實現高效協作,也可以為整個項目定義全局集成指令(Global Integration Instruction),不同集成角色將使用不同類型的Integration Instruction。

>顯式映射

這種類型的Integration Instruction可用于明確定義映射關系。例如,在Task映射的示例中,可以定義哪些runnable應該映射到哪些Task。如圖2-3所示,runnable0和runnabl1需要映射到task0,并且在JSON文件中列出了runnable的屬性(以runnable0為例,runnable0在swc0中,具有schedulePoint和activationOffset的屬性)。

wKgaombjsOGAd05yAAAx4bV2Mh8621.jpg

圖2-3顯式映射

>基于規則的映射

也可以使用基于規則的映射方式,如圖2-4所示,是一個包括了不同規則的Instruction文件。首先定義應用規則的Task(task0),然后指定觸發類別(周期、初始化或其他),接著是觸發條件(周期:100ms),最后列出應用此規則的SWC(這里是swc2)。

wKgZombjsOGAfl-bAAAaZRIGbPM298.jpg

圖 2-4 基于規則的映射

>自動映射

這個功能可以在配置文件中配置為啟用或禁用。特別是在項目早期階段或用于原型設計時,自動映射可以在不需要Integration Instruction的情況下獲得符合AUTOSAR標準的映射。這個功能旨在作為一個補充解決方案,生成的配置應該由開發人員進行評估或優化。

除了Task映射之外,還有其他類型的Instruction,如時序順序約束文件(Execution Order Constraint)和NvM集成Instruction,還可以為端口映射(Port Mapping)和數據映射(Data Mapping)提供Integration Instruction。

>全局集成指令

全局集成指令很多情況下,中央集成團隊可能仍然希望監督集成決策,這可以通過提供Global Instruction來實現。這些Global Instruction具有與App Package相同的格式和映射指令類型,但具有更高的優先級,并且會覆蓋App Package中的指令。

2.3 用于自動集成的Pipeline

該Pipeline基于Gradle構建系統實現,并且項目中每個成員都可以使用。無論是更改SWC還是更改BSW的Root Configuration,都會以確定性的方式執行相同的集成步驟。根據這一理念,每個開發人員都可以輕松集成ECU軟件。

DaVinci Team可以在本地或服務器上運行。在服務器場景下,對代碼倉庫的提交可以觸發Pipeline的集成動作,例如通過Jenkins這樣的構建服務器進行控制。這使得SWC開發人員可以獨立于中央集成團隊工作。在本地場景下,可以通過命令行觸發Pipeline的集成動作。前文描述的在DaVinci Configurator Classic的GUI中的重復手動步驟(見第1.3節),現在可以完全自動化處理。如圖2-5所示,集成Pipeline被觸發后將自動執行圖中灰色的集成步驟。

wKgaombjsOKADQ1KAABmof7hiKg529.jpg

圖2-5 自動集成步驟

自動集成步驟如下:

1.準備步驟:

a. SIP被復制到執行主機(如有必要)

b. Root Configuration和App Package被復制到執行主機

2.執行DaVinci Team自動化操作:

a. SWC類型被實例化

b. 通過NV data port配置文件,生成NvSWC

c. 基于集成指令(如Port Mapping、Data Mapping、Task Mapping等),生成RTE

d. 初始化未使用的SWC端口

3.輸出步驟:

a. 生成模塊

b. 生成源碼

c. 編譯

d. 打包工程

集成ECU軟件(包括SWC、RTE和BSW)完成后,輸出文件包括.elf、.c/.h和.dpa,同時還包括執行Pipeline期間的操作報告。值得一提的是,DaVinci Team支持vVIRTUALtarget項目以及Real Target平臺,無論開發人員是基于vVIRTUALtarget或是實際ECU驗證,都能通過DaVinci Team集成軟件并生成相應的目標產物來支持后續的驗證工作。

集成后的結果可以上傳到類似Artifactory的二進制數據管理系統,以便開發人員下載集成版本。然而,集成結果不需要存儲在像Git這樣的源代碼管理系統中,后者更適合用作開發人員代碼版本管理的工具。這種集成過程通過動態執行,可以有效避免RTE的合并問題。

自動化Pipeline還可以通過添加自定義擴展來進行定制,這使得工具專家可以進一步創建適配于項目工程的自動化工具腳本,并擴展CI/CD Pipeline。

總結

當今的ECU軟件開發正逐步轉變,以應對日益增加的軟件功能、更多的協作以及實現更短的發布周期。然而,采用DevOps方法并實現持續集成的自動化會面臨諸多挑戰,特別是由于AUTOSAR Classic項目的串行開發特性。面對這些挑戰,Vector基于DaVinci Team工具,為軟件開發人員提供可行的解決方案:

挑戰:不同軟件開發人員在同一項目中的SWC和BSW配置有不同的實現,合并這些不同的實現是一個重大的挑戰。

解決方案:通過移除RTE,來解耦SWC和BSW,極大程度地避免了合并時的沖突問題。這個解決方案在第2.1節中有詳細描述。

挑戰:按計劃進行的SWC集成時間過長,導致延遲發現問題,這可能會危及項目的里程碑。

解決方案:將集成決策前置(例如Runnable和Task的映射、端口映射、數據映射或NvM集成決策),以賦予SWC開發人員自行集成SWC與BSW的能力。這一概念在2.2節中有詳細描述。

挑戰:將SWC集成到BSW中通常涉及許多手動步驟,違背了敏捷開發的原則。

解決方案:DaVinci Team使用自動化Pipeline,可以自動執行SWC和BSW集成過程中的手動步驟。這個自動化Pipeline在2.3節中有詳細描述。

Vector通過DaVinci Team提供解決方案,以實現敏捷和高效的AUTOSAR Classic ECU軟件開發。工程師們可以通過基于多種工具的自動化Pipeline來獨立工作。這一自動化過程可以簡化大部分重復的工作步驟,避免集成過程中的沖突問題,集成時間滯后問題。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 軟件開發
    +關注

    關注

    0

    文章

    608

    瀏覽量

    27338
  • AUTOSAR
    +關注

    關注

    10

    文章

    350

    瀏覽量

    21481
  • ecu
    ecu
    +關注

    關注

    14

    文章

    881

    瀏覽量

    54409
  • Vector
    +關注

    關注

    3

    文章

    57

    瀏覽量

    8562

原文標題:DaVinci Team | 助力CI環境下的AUTOSAR Classic ECU 軟件開發

文章出處:【微信號:VectorChina,微信公眾號:Vector維克多】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ECU電控軟件開發及測試介紹

    本文重點介紹符合AutoSar架構的應用軟件開發、MBD開發模式下的軟件質量評估與優化方案、復雜場景下的
    的頭像 發表于 09-26 14:25 ?3235次閱讀
    <b class='flag-5'>ECU</b>電控<b class='flag-5'>軟件開發</b>及測試介紹

    Autosar軟件開發技術概述

    AUTOSAR是由全球汽車制造商、部件供應商及其他電子、半導體和軟件系統公司聯合建立,各成員保持開發合作伙伴關系。自2003年起,各伙伴公司攜手合作,致力于為汽車工業開發一個開放的、標
    發表于 12-26 10:34

    如何購買AUTOSAR軟件

    >>>點我返回總目錄目錄前言購買聯系人工程和ECU信息硬件層系統相關模塊診斷模塊內存模塊1. 前言AUTOSAR的模塊繁多,且價格不菲,一般項目購買AUTOSAR時都是慎之又慎。然
    發表于 07-23 08:33

    AUTOSAR架構深度解析及開發指引 精選資料分享

    (Virtual Functional Bus)的實現,隔離了上層的應用軟件層(Application Layer)與下層的基礎軟件(Basic Software),擺脫了以往ECU
    發表于 07-28 08:54

    ECU/MCU軟件開發

    汽車電子技術——ECU/MCU軟件開發1. ECU/MCU軟件開發知識儲備1.1 ECU/MCU相關基礎知識1.2 C語言編程知識1.3 外
    發表于 09-10 08:13

    AUTOSAR的相關資料推薦

    AUTOSAR基礎篇之EcuM_wto9109的博客-CSDN博客【AutoSAR】【EcuM】ECU狀態管理專注汽車軟件開發AutoSAR
    發表于 01-27 08:25

    基于OSEKturbo的電控柴油機ECU軟件開發實現

    采用基于OSEKturbo的模塊化方法設計電控柴油機ECU軟件開發框架。在此框架下進行了ECU軟件開發,并分析目標代碼的可調度性。實驗證明采用這種
    發表于 04-21 22:01 ?68次下載

    基于AUTOSAR規范的汽車ECU軟件開發方法

    針對汽車ECU常規開發方法用于整車系統級分析與建模所存在的缺陷與不足,基于汽車開放式系統架構(AUTOSAR)基本理論,首先闡述了AUTOSAR規范的層次化、模塊化系統架構及層間接口,
    發表于 07-24 16:40 ?142次下載
    基于<b class='flag-5'>AUTOSAR</b>規范的汽車<b class='flag-5'>ECU</b><b class='flag-5'>軟件開發</b>方法

    基于CANoe和Visual Studio實現Classic和Adaptive AUTOSAR應用層調試

    而無法實現傳統調試或測試工作。在面對復雜控制器軟件系統時,CANoe可在虛擬環境實現軟件系統的調試和測試工作,Visual Studio(簡稱VS)或許是虛擬環境下進行
    的頭像 發表于 03-10 15:47 ?2365次閱讀

    Classic AUTOSAR軟件架構和方法論

    隨著汽車電子軟件規模的不斷擴大,Classic AUTOSAR(以下簡稱CP)的軟件架構和方法論已被越來越多的 OEM 和供應商認可。與此同時,CP 也面臨著巨大的挑戰,無法滿足汽車對
    的頭像 發表于 05-24 17:12 ?2977次閱讀

    AUTOSAR軟件開發環境之EB tresos Studio簡介

    EB tresos是一款經典的AUTOSAR軟件開發環境,依賴于一致的單一工具環境來通過汽車開放系統架構 AUTOSAR 開發電子控制單元 (ECU
    的頭像 發表于 09-19 10:06 ?8502次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>軟件開發</b>環境之EB tresos Studio簡介

    AUTOSAR軟件開發流程簡介

    AUTOSAR軟件開發流程簡介 AUTOSAR軟件開發流程是指在AUTOSAR架構下進行軟件開發
    的頭像 發表于 10-27 15:55 ?3068次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>軟件開發</b>流程簡介

    Elektrobit已正式推出現成的Classic AUTOSAR和OSEK軟件和服務

    Elektrobit現已正式推出現成的Classic AUTOSAR和OSEK軟件和服務。無論您的項目大小,我們都能根據您的需求提供可靠且互通的解決方案,同時支持多個汽車制造商規范,并
    的頭像 發表于 03-26 10:03 ?399次閱讀

    Vector和HighTec推出基于Rust和AUTOSAR Classic實現安全應用的解決方案

    Vector和HighTec兩家公司成功展示了Rust應用程序與基于C語言的AUTOSAR Classic基礎軟件的集成,這在行業內還屬首次。這樣一來,Rust及其優勢可以被應用在有最
    的頭像 發表于 07-17 14:42 ?670次閱讀
    <b class='flag-5'>Vector</b>和HighTec推出基于Rust和<b class='flag-5'>AUTOSAR</b> <b class='flag-5'>Classic</b><b class='flag-5'>實現</b>安全應用的<b class='flag-5'>解決方案</b>

    9月12日云技術研討會 | ECU電控軟件開發及測試全流程解決方案

    本次研討會,經緯恒潤將結合業務團隊多年來在軟件開發和測試領域的工程實踐經驗,分享探討基于AutoSar架構的應用軟件開發、基于MBD開發軟件
    的頭像 發表于 09-26 14:18 ?1346次閱讀
    9月12日云技術研討會 | <b class='flag-5'>ECU</b>電控<b class='flag-5'>軟件開發</b>及測試全流程<b class='flag-5'>解決方案</b>