導航:首頁 > 源碼編譯 > 編譯autosar

編譯autosar

發布時間:2023-09-28 06:30:27

① 嵌入式操作系統的分類

嵌入式操作系統的分類 篇1

第一類、傳統的經典RTOS:

最主要的便是Vxworks操作系統,以及其Tornado開發平台。Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),並且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和linux很類似,主要是C語言開發。像Bell-alcatel、Lucent、華為等通信企業在開發產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往用不起。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉)。但無論如何,Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。

第二類、嵌入式Linux操作系統:

Linux的前途除作為伺服器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟體多、呼擁者眾,這樣嵌入式產品成本會低。Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,並且實時性不強。目前應用在嵌入式領域的Linux系統主要有兩類:一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在ARM7上跑;另一類是跑在ARM9上的,一般是將Linux2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發難度稍大。目前很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由於ucOS/II較簡單,且開源,非常適合入門者學習實時操作系統原理,但ucOS/II的缺點是功能有限,實用用得較少,所以要學習就應學直接實用的,比如uClinux就很實用。況且熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟體,對加深操作系統的認識也有幫助,可謂一舉多得。據說,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發,Fujitum則是在自己的處理器上大搞Linux開發。目前在嵌入式Linux領域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上;二是能寫Linux驅動程序的人;三是熟悉Linux內核裁減和優化的人。

第三類、WindowsCE嵌入式操作系統:

Microsoft也看準了嵌入式的巨大市場,WinCE出來只有幾年時間,但目前已佔據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發平台主要為WinCEPlatformBuilder,有時也用EVC環境開發一些較上層的應用,由於WinCE開發都是大家熟悉的VC++環境,所以學習Windows程序設計課程不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低於嵌入式Linux。對於急於完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那麼好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。根據不同的側重點,WinCE還有兩個特殊版本,一個是MSPocketPC操作系統專用於PDA上(掌上電腦),另一個是MSSmartPhone操作系統用於智能手機上(帶PDA功能的手機),兩者也都屬於WinCE平台。在PDA和手機市場上,除WinCE外,著名的PDA嵌入式操作系統還有PalmOS(因出現很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?據觀察,目前在嵌入式平台上,LINUX是叫得最響,但還是WinCE實際用得更多。嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮。WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領域之一,他們很需要精通WinCE的人。

嵌入式操作系統的分類 篇2

目前我國已推出一些應用比較成功的EOS產品系列。隨著Internet技術的發展、信息家電的普及應用及EOS的微型化和專業化,EOS開始從單一的弱功能向高專業化的強功能方向發展。嵌人式操作系統在系統實時高效性、硬體的相關依賴性、軟體固態化以及應用的專用性等方面具有較為突出的特點。EOS是相對於一般操作系統而言的,它除了是具備了一般的操作系統最基本的功能,比如:任務調度、同步機制、中斷處理、文件功能之外的話,它還含有以下的特針:

(1)可裝卸性:開放性、可伸縮性的體系結構。

(2)強實時性:EOS實時性一般較強,可用於各種設備控制當中。

(3)統一的介面:提供各種設備驅動接入。

(4)操作方便、簡單、提供友好的圖形GUI,圖形界面,追求易學易用。

(5)提供強大的網路功能,支持TCP/IP協議及其它協議,提供TCP/UDP/IP/PPP協議支持及統一的MAC訪問層介面,為各種移動計算設備預留介面。

(6)強穩定性,弱交互性:嵌入式系統一旦開始運行就不需要用戶過多的干預,這就要負責系統管理的EOS臭有較強的穩定性。嵌入式操作系統的用戶接日一般不提供操作命令,它通過系統調用命令向用戶程序提供服務。

(7)固化代碼:在嵌入系統中,嵌入式操作系統和應用軟體被固化在嵌入式系統計算機的ROM中。輔助存儲器在嵌入式系統中很少使用,因此,嵌入式操作系統的文件管理功能應該能夠很容易地拆卸,而用各種內存文件系統。

(8)更好的硬體適應性,也就是良好的移植性。

國際上用於信息電器的嵌入式操作系統有40種左右。現在,市場上非常流行的EOS產品,包括3Corn公司下屬子公司的PalmOS,全球佔有份額達50%,Microsoft公司的WindowsCE不過29%。在美國市場,PalmOS更以80%的佔有率遠超WindowsCE.開放源代碼的Linux很適於做信息家電的開發。

然而我們常見的嵌入式系統有:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、CExecutive.嵌入式操作系統的發展也必將帶動新一輪的科技競爭。

嵌入式操作系統的分類 篇3

常見的嵌入式系統有這么多:

Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、CExecutive、autosar......

什麼是嵌入式操作系統?

嵌入式操作系統是一種支持嵌入式系統應用的操作系統軟體,它是嵌入式系統的重要組成部分。嵌入時操作系統具有通用操作系統的基本特點,能夠有效管理復雜的系統資源,並且把硬體虛擬化。

從應用角度可分為通用型嵌入式操作系統和專用型嵌入式操作系統。常見的通用型嵌入式操作系統有Linux、VxWorks、WindowsCE.net等。常用的專用型嵌入式操作系統有SmartPhone、PocketPC、Symbian等。

按實時性可分為兩類:

實時嵌入式操作系統主要面向控制、通信等領域。如WindRiver公司的VxWorks、ISI的pSOS、QNX系統軟體公司的QNX、ATI的Nucleus,很多汽車電子行業都是利用實時性很強的操作系統等。

非實時嵌入式操作系統主要面向消費類電子產品。這類產品包括PDA、行動電話、機頂盒、電子書、WebPhone等。如微軟面向手機應用的SmartPhone操作系統。

嵌入式系統的設計和實現而言,基本上需要四種不同的工作:系統設計工作,硬體設計工作,驅動程序和操作系統移植工作和應用程序設計開發工作。

1、 系統設計工作

在系統的設計階段,系統分析師將根據需求確定系統的硬體的基本構成,根據系統的需求選擇使用那種處理器,使用哪種操作系統,使用那些軟體開發工具。系統分析師往往是較為完整的參與過嵌入式系統設計的全過程,對於系統應用的行業較為了解,對於嵌入式系統本身的開發流程十分清楚的人。

2、硬體設計工作

系統硬體設計人員需要根據系統分析師的設計結果,進行硬體原理圖的設計。通常需要硬體設計人員熟悉嵌入式系統的硬體構成。硬體設計人員需要了解常用的嵌入式系統處理器,存儲器(Flash,SDRAM),乙太網MAC晶元,音頻/視頻編解碼晶元,電源管理晶元,匯流排介面電路(USB,PCI),液晶顯示模塊,可編程邏輯器件(FPGA/CPLD),無線網路通信模塊(Bluetooth,WLAN,GPRS)等硬體電路構成元素的基本工作原理,連接使用方法,使用注意事項,基本調試方法等內容。在網路上能找到很多公司的評估板的原理圖,對於這些原理圖要仔細研究,摸清處理器同存儲器,網卡,液晶模塊等器件的連接方法和原因。通過對這些電路的研究,能夠較快地了解整個嵌入式系統的構成,這些電路同實際產品中的電路雖有一定差別的,特別是對於手持設備,但這些差別不影響初學者學習嵌入式系統的硬體設計基本構成。

1)學習Linux系統安裝、常用命令、應用程序安裝。

2)學習Linux下的C編程、這本書必學《UNIX環境高級編程》、《UNIX網路編程》,RechardStevens寫的,C高手大都學習過《C和指針》、《C缺陷與陷阱》、《高質量C/C++編程指南》、《C專家編程》、《TheCprogrammingLanguage》

3)程序員大都要學:數據結構,嵌入式程序員數據結構必學!

4)底層開發人員大都要學:微機原理、計算機體系結構,嵌入式開發人員必學!

5)單片機可以讓一個從事軟體開發的人了解和如何操作硬體,有必要學,因為一開始就從ARM入手,不太現實!

6)ARM體系結構,其中有匯編。

7)數字電路有必要學習,不然你在做底層開發時真的會不知道怎麼看原理圖,起碼也得懂與或門吧。

8)ARM+Linux應用程序開發。(前提是要有開發板)

9)要做底層開發,就必須知道軟硬體之間是如何銜接和配合工作的,那麼電子技術應該要好好學習了,很多時候會用到模擬電路知識,這是區別好手與菜鳥的不同之處之一。

10)Linux下的匯編要學,這樣你才能真正了解你寫的程序是如何在一個特定的硬體上跑的。這是區別好手與菜鳥的不同之處之二。

11)TCP/IP協議棧要學,所有的嵌入式高手都得掌握的東西,這是區別好手與菜鳥的不同之處之三。

12)有了這些東西,拿下Linux驅動已經不再話下,需要你去學習Linux內核源代碼和Linux驅動程序設計,這是一個技術升華。

13)音頻、視頻的解碼解碼技術你得學。

14)各種IC,各種bootloader你能夠參與其開發設計。

15)自行設計開發新產品,新技術。

學到這個地步差不多要花個3年的時間吧。但是後面的路該怎麼走呢?嵌入式系統性的東西搞了一個產品之後,基本上一些套路都摸清楚了。

不同的行業,對於系統的要求是不一樣的,比如汽車行業,航空航天行業等一些高精度,高安全的需要對實時性要求非常之高,對於安全性和可靠性的要求非常嚴格。而有些行業比如消費類產品,娛樂類的,生活用具方面的對於用戶體驗是不一樣的,數碼產品對於一些圖像聲音的處理,要求更高,需要高清,高品質的。而對於一些通信設備類對於網路的應答數據傳輸要求就非常嚴格,等等。這些根據不同的要求,選擇符合自己的操作系統,能對開發工作有更大的幫助。

嵌入式操作系統的分類 篇4

DOS

微軟一開始選用了派特森的Q-DOS「QUICKANDDISKOPERATINGSYSTEM」為基礎然後再擴充功能而成MS-DOS,主要是採用由IBM提供的使用8088微處理器的計算機作開發平台,它是以16位元組單人單工操作系統,特別適合一些功能簡單裝置使用。

WindowsCE

雖然微軟Windows系統已經稱霸了PCDesktop環境。但是對於嵌入式系統這塊大餅,微軟也是垂涎已久,桌上型的Windows桌業系統對於嵌入式系統來說自然是太過於肥大的產物,於是微軟推出精簡版的WindowsCE作為進攻嵌入式系統的主力。目前主要應用於PDA上頭,但是跟微軟一系列Windows系統一般,WindowsCE也承襲了原有的缺點:耗系統資源、不穩定、效率不佳等等。毛病實在太多,後來將整個架構重新改寫後推出WindowsCE3.0版,或稱為PocketPC。改版之後的確改進了不少缺點。

WindowsCE可應用於PDA、WebPAD、ThinClient等等。是採用WindowsCE為操作系統的SIMPad(西門子公司所有)。

Palm

由PalmComputing公司的嵌入式操作系統,目前最大的應用在PDA,是市場佔有率最高的PDA操作系統,Palm操作系統架構非常簡潔,因為少去了很多功能,如內存管理、多任務等等,使得Palm可以非常不耗系統資源,硬體需求低,連帶的整體耗電量便可壓縮到非常低,因此採用Palm操作系統的PDA都有待機時間長的優點。

EPOC

由英國手持裝置大廠Psion所開發,常用於PDA與手機結合的場合。最有名的例子Nokia9110系列手機,它就是採用EPOC系統。

著名的嵌入式實時系統

實時系統是嵌入式系統里頭非常重要的一環,很多人都誤以為實時系統執行速度非常快的系統,事實上不然,所謂實時代表的意義是『實時反應』,一般多人多任務操作系統如:Windows、UNIX,在上面執行的軟體都一起分享CPU,因為CPU速度快,所以我們感覺好象可以同時執行多支軟體,其實在系統內部的同一時間內都只有一個程序在執行,每個軟體都必須排隊,而且規定只能用一小段時間後就要換下一位,但是因為CPU速度夠快,很快又可以被執行到,所以人們感覺並不會很明顯軟體是一段一段在執行。這是一般所謂的非實時性的操作系統運作模式,而實時操作系統具有立即反應而且不能讓出資源的特性,例如汽車的ABS煞車系統,如果不採用能夠立即反應的實時系統,後果可就不堪設想。而這類的應用多半多屬體積小、功能簡單的地方,所以也算是嵌入式系統。QNX的QNXOS、WindRiver的VxWorks、Microware的OS9、pSOS等等,都是有名的嵌入式實時系統公司。

Linux

Linux不是都用來做伺服器嗎?不然就是Cluster,怎麼會跟嵌入式系統扯上關系?不要懷疑,Linux除了對伺服工作應付自如外,嵌入式系統也難不倒Linux。

那麼究竟Linux有怎樣獨特的能耐,可以想變大就變大想縮小就縮小?又用Linux來發展嵌入式系統有什麼優點?請看底下介紹。

開放原始碼、模塊化設計

Linux採用GPL授權,除了把原始碼公開以外,任何人都可以自由使用、修改、散布,而Linux核心本身采模塊化設計,讓人很容易增減功能,例如我的平台並不需要藍芽的功能,我只要不把這項功能加入,有需要就加入,不需要就刪除,由於這樣的高的彈性,我們可以調校出最適合我們硬體平台的核心出來。

相較於Linux,Windows是走封閉原始碼路線,所以我們完全無法得知或修改它的核心部份。另外因為是採用GPL授權自然就沒有什麼權利金或保密協議的約束。

穩定性夠

Linux不屬於任何一家公司,但是它的開發人員卻是全世界最多的,每天在全球都有無數的人參與LinuxKernel的改進、除錯、測試,這樣嚴苛的條件造就了穩定度高的Linux。

就因為如此,Linux雖不是商業的產物但是品質卻不遜於商業產品。

網路功能強大

Linux的架構是參造UNIX系統而來,因此Linux也承襲了UNIX強大的網路功能。在這個每樣事情都講求網路的時代下,只能說是Linux大放異彩的年代。未來可能家裡的電冰箱、冷氣、電視機都會連上網路,如何增加這些家電的網路功能,Linux可以替他們辦到。

跨平台

Linux一開始是基於Intel386機器而設計,但是隨著網路的散布,各式各樣的需求涌現,因此就有許多工程師致力於各式平台的移植,造成了Linux可以在x86、MIPS、ARM/StrongARM、PowerPC、Motorola68k、HitachiSH3/SH4、Transmeta..等等平台上運作的盛況。這些平台幾乎涵蓋了所有嵌入式系統所需的CPU,因此選擇Linux就可以把更多的`硬體平台納入考量的范圍。

嵌入式環境不如x86PC那樣單純,嵌入式環境所採用的CPU架構之多,使用Linux作開發,就等於有更多硬體的選擇,硬體成本是商業公司考量的一大重點,選擇多自然可以找到最合適的硬體,對於公司的競爭力是有極大的幫助。

應用軟體眾多

自由軟體世界裡有個很大的特色就是軟體超級多,而且幾乎都是符合GPL標准,換句話說,大家都可以自由取用,因為這些軟體多半是由工程師業余空暇時間所發展,而且不以營利為性質,所以並不能擔保這些軟體完全沒有BUG,但是仍舊有許多殺手級的軟體出現,大家熟知的KDE與GNOME便是很好的證明,當然與嵌入式系統較為相關如:gcc編譯器、Kdevelop整合式開發環境等等。

通常我們都會先在PC端造出模擬出嵌入式的環境,並直接在上頭開發,因此用的工具也都與開發一般Desktop軟體類似,良好的工具能夠增加開發的速度。

選擇多樣

如果公司有能力可以自己實作Linux嵌入式系統,因為程序代碼全部都開放在那裡,您可以隨心所欲的設計出自己想要的EmbeddedLinux系統,但是有更多的公司的業務重點不在於此,這時候您也可以選擇購買商業版的EmbeddedLinux系統,像是有名的Redhat公司、Lineo、MontaVista..等等,這些都是商業的Linux公司,購買他們的產品就可以得到完整的服務。因此商業或非商業全都在於您的需求。

自行開發系統

當然您也可以自行開發系統,嚴格控制硬體,但是相對的必須投注更大的成本在於研發系統上,原則上如果目標簡單明確只是一些基本的I/O控制,例如:跑馬燈。便適合自己開發,但是如果系統過於復雜則必須審慎評估自行研發的難度與時程的控管。

嵌入式操作系統的分類 篇5

進程的同步(直接制約):synchronism

指系統中一些進程需要相互合作,共同完成一項任務。具體說,一個進程運行到某一點時要求另一夥伴進程為它提供消息,在未獲得消息之前,該進程處於等待狀態,獲得消息後被喚醒進入就緒態。同步是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源。

進程的互斥(間接制約)mutualexclusion

由於各進程要求共享資源,而有些資源需要互斥使用,因此各進程間競爭使用這些資源,進程的這種關系為進程的互斥。某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。

相關概念:

互斥:指多個進程不能同時使用同一個資源;

死鎖:指多個進程互不相讓,都得不到足夠的資源;

飢餓:指一個進程一直得不到資源(其他進程可能輪流佔用資源)

臨界資源:系統中某些資源一次只允許一個進程使用,稱這樣的資源為臨界資源或互斥資源或共享變數

臨界區:進程中訪問臨界資源的一段代碼。

臨界區問題

臨界區(criticalsection):進程中訪問臨界資源的一段代碼。

進入區(entrysection):在進入臨界區之前,檢查可否進入臨界區的一段代碼。如果可以進入臨界區,通常設置相應"正在訪問臨界區"標志

退出區(exitsection):用於將"正在訪問臨界區"標志清除。

剩餘區(remaindersection):代碼中的其餘部分。

使用臨界區應遵循的准則

有空讓進:當無進程在臨界區時,任何有權使用臨界區的進程可進入

無空等待:不允許兩個以上的進程同時進入臨界區

多中擇一:當沒有進程在臨界區,而同時有多個進程要求進入臨界區,只能讓其中之一進入臨界區,其他進程必須等待

有限等待:任何進入臨界區的要求應在有限的時間內得到滿足

讓權等待:處於等待狀態的進程應放棄佔用CPU

平等競爭:任何進程無權停止其它進程的運行進程之間相對運行速度無硬性規定

Linux下的進程包含以下幾個關鍵要素:

有一段可執行程序;

有專用的系統堆棧空間;

內核中有它的控制塊(進程式控制制塊),描述進程所佔用的資源,這樣,進程才能接受內核的調度;

具有獨立的存儲空間

進程和線程有時候並不完全區分,而往往根據上下文理解其含義。

嵌入式操作系統的分類 篇6

1、緒論

電控機械式自動變速器(,AMT)具有傳動效率高、成本低、操作容易、駕駛舒適等優點,已成為車輛自動變速器發展的一個重要方向。AMT的核心部件是電控單元(TCU),實時採集和檢測輸入信號(發動機轉速、輸入軸轉速和車速,油門踏板位置、節氣門開度、變速箱油溫等以及各種狀態信號)並進行調理、存儲,同時,TCU根據這些運行參數進行工況判斷並發出控制信號,完成車輛的平穩起步或自動換擋,從而使車輛獲得優良的舒適性、燃油經濟性與動力性能。較之傳統的控制器,TCU有更多的感測器,執行器以及更為復雜的控制演算法,若TCU設計不合理,難以滿足實時性與可靠性的要求,同時,如果換擋規律不合理,汽車難以獲得較好的燃油經濟性和動力性。本文從TCU硬體和軟體設計做了相應的介紹。

2、TCU軟體設計

TCU軟體部分的核心是控制策略,其主要部分是最佳換擋規律。本控制器採用兩種換擋控制策略,即經濟性換擋規律,綜合性換規律,通過模式選擇開關進行切換,使用Simulink搭建的換擋控制策略。

Simulink模型無法直接燒寫到單片機中運行,編寫好的程序通過Simulink提供的RTW工具生成可用的C代碼,編寫介面嵌入到軟體系統中。生成的C代碼是上層核心演算法程序,只提供與底層程序的介面,而底層程序則須自己編寫並留出對應介面和上層代碼對應介面進行連接[3]。然後把相應的C代碼添加到CCS中的工程文件中,並編寫代碼的介面,實現軟體三部分的無縫連接;其中驅動程序包括信號輸入通道設置與信號處理驅動程序、輸出通道設置與輸出處理、通信設置與數據轉換。

3、TCU硬體設計

根據TCU的功能需求,把硬體電路劃分以下幾個部分:信號採集輸入調理電路、執行器控制電路以及主控電路。

(1)主控電路:TCU的硬體電路選擇了TMS320F2812主控晶元,兩個16位通用定時器,以負責離合器轉速信號、車速信號等脈沖信號的採集;8個16位的脈寬調制(PWM)通道、可以實現對離合器電磁閥、換擋電磁閥的控制;16通道A/D轉換器,在採集節氣門位置、離合器位置等感測器輸入的多路模擬信號的應用中,可以簡化硬體,提高系統可靠性;擁有改進的區域網絡(eCAN)支持CAN2.0B協議,以實現串列信號的輸入輸出以及與汽車發動機ECU的信息交換,實現ECU之間的CAN通信。

(2)輸入電路:對於主控晶元TMS320F2812晶元上帶有AD轉換模塊的處理晶元,其輸入的模擬信號需要經過簡單的濾波、放大後才可接入DSP。開關量信號採用光電隔離來實現信號的轉換,數字信號調理部分的作用是將仿正弦信號經過處理後,變成電平范圍在DSP允許范圍內的方波信號。數字信號調理部分的設計採用先濾波後整形,最後光電隔離的辦法。

(3)TMS320F2812主控晶元EV外設提供的PWM外設功能,對電路進行控制,但,由控制器輸出的PWM波的峰值電壓只有5V,不足以驅動電磁閥,這就需要電磁閥驅動電路將PWM控制信號的功率進行放大,從而控制電磁閥正常工作。

4、結論

自行設計了TCU軟硬體,對設計的TCU做了相應的硬體在環試驗,利用RealTimeWorkshop實現控制模型向C代碼的轉化,優化後下載到TCU,進行了硬體在環模擬實驗,篇幅有限,本文不做具體說明。試驗結果表明,設計的該TCU,能按照控制策略實時、准確、可靠的控制AMT的換擋過程,同時,同時獲得了較好的經濟性以及動力性能。為AMT控制器的開發提供了參考。

② 如何在c++定義一個學生類以實現平均成績的計算和查詢功能

一.中間件的定義與作用
1.什麼是中間件?
圖片摘自公眾號「筋斗雲與自動駕駛」
筆者在交流中發現,不同的人對中間件的理解並不一樣,甚至可以說,到現在,這個概念還是模糊不清的。比如:
(1)有的人認為中間件僅指位於OS內核之上、功能軟體之下的那部分組件,為上層提供進程管理、升級管理等服務;而有的人則認為中間件還應包括功能軟體和應用軟體中間的那部分(參見上圖)。按茅海燕的說法,前者是「通用中間件」,而後者是「專用中間件」。本文中提到的「中間件」,若不做專門說明,便特指「通用中間件」。
(2)有一些人提到的自動駕駛中間件,包括了AUTOSAR(又分為AUTOSAR CP和AUTOSAR AP),還有一些人口中的中間件,特指ROS2、Cyber RT、DDS等。
(3)未動科技VP蕭猛認為,「中間」一詞是相對的,當有多層堆疊的時候,每一層都是其上下兩層的中間層,因此,在用「中間件」這個詞的時候,我們需要特別指明它究竟位於「哪兩層之間」。按蕭猛的說法,當我們稱「ROS/ROS2 為中間件」時,其含義與 「AUTOSAR AP為中間件」並不是對等的關系。
(4)Vector產品專家蔡守群說,他理解的中間件,「是給App開發提供功能支撐的,對外是沒有功能表徵的;但是站在操作系統內核的角度,中間件跟App並沒有本質的區別」。
2.中間件的作用
汪浩偉說:「專用中間件原本是應用程序的一部分,只是很多公司做自動駕駛都需要用到,就被抽象出來了。」
那麼,它究竟有什麼用?
畢曉鵬認為,自動駕駛中間件最主要的作用是:對下,它能夠去適配不同的OS內核和架構;對上,它能夠提供一個統一的標准介面,負責各類應用軟體模塊之間的通信以及對底層系統資源的調度。
據畢曉鵬解釋,前者,使開發者們無需考慮底層的OS內核是什麼,也無需考慮硬體環境是什麼,即不僅實現了應用軟體與OS的解耦,也實現了應用軟體與硬體的解耦;而後者則確保了數據能夠安全實時地傳輸、資源進行合理的調度。
為什麼要通過中間件來支持軟硬體解耦?畢曉鵬解釋道:
我開發一個應用軟體,其中很多內容都是與具體應用邏輯無關的,包括數據通信、通信安全、系統資源調度等,比如,有十個進程需要數據交互,完全沒有必要在十個程序的軟體代碼里各自進行實現和配置。針對這種情況,我們就可以把重復的部分抽象成一種服務,單獨封成一層東西(這就是中間件),並提供統一的庫、介面和配置方法,供上層去調用。這樣的話,有一部分人專門去做中間件的,而做上層應用的人也不需要考慮跟底層交互的事情。
舉例說,如果要做一個自動泊車系統,它有各個模塊或業務邏輯獨立的不同軟體,在進行通信、數據交互,或者調用底層資源時,只需要中間件的一個介面就可以實現,其他事情不需要考慮,這樣開發人員就可以專注於自己的業務邏輯。
又比如,一個攝像頭需要感知前面的車道線、紅綠燈等,開發人員就專門做紅綠燈和車道線檢測演算法,與外界的數據交互只需要使用中間件的通信服務(例如訂閱攝像頭信息,發布檢測結果),而不必關心數據從哪裡來、發給誰。
Nullmax紐勱科技系統平台總監苗乾坤博士在此前的一篇文章中寫道:
「晶元算力大幅增長,攝像頭像素呈翻倍之勢,激光雷達出現在更多新車規劃上……沒有誰能夠斷言車上的感測器應該有多少,又或者是將來的汽車還會增加哪些硬體,但所有人都知道硬體的變化將會來得更加猛烈。
「所以我們也可以看到,汽車對軟硬體架構的要求也越來越高,既要能滿足當下的需求,還要具備相當的前瞻性、兼容性和擴展性,能夠支持接下來軟硬體升級換代、增減模塊的需求。而自動駕駛的中間件,就正是這樣一個可以按需調整、滿足各樣需求的現代溫室。
「在早期開發中,中間件可以化整為零,將巨大的軟體工程分解成若干小任務,分散解決。在後期應用時,它又可以化零為整,像拼積木一樣,根據需求將一個個模塊組合成一個整體,嚴絲合縫。」
在春節前的一場直播中,東軟睿馳產品銷售總監安志鵬說,在軟硬體解耦、模塊化管理後,再遇到問題,就不用整個系統都改,只改相對應的部分就行了。這樣,軟體的可復用程度就極大地提升了,同時,驗證的工作量也會減少許多,整體開發效率也會因此提升。
相反,沒有中間件的話,應用層就得直接調用操作系統的介面,後期要是換了操作系統,應用層的代碼和演算法可能就要推倒重來。
簡言之,中間件通過對計算平台、感測器等資源進行抽象,對演算法、子系統、功能採取模塊化的管理,並提供統一介面,讓開發人員能夠專注於各自業務層面的開發,無需了解無關細節。
按東軟睿馳產品銷售總監安志鵬的說法,搞AUTSOAR這樣的中間件,並不是只對OEM有利,「零部件供應商的選擇面也大了——應用做好了,下面的軟體、晶元可以選好幾家供應商的,要比傳統的開發模式快很多,因而,零部件供應商也是受益者」。
用蕭猛的話說,中間件最直接的好處就是「為上層屏蔽底層的復雜性」,軟體開發人員可以忽略晶元、感測器等硬體的差異,從而高效、靈活地將上層應用及功能演算法在不同平台上實現、迭代、移植。蕭猛認為,中間件可以看做是自動駕駛應用背景下的一項「新基建」。
(圖片摘自馮占軍博士的《AUTOSAR對基礎軟體開發是喜還是憂?》一文。AUTOSAR只是中間件的一種,但這里寫的「AUTOSAR開發優勢」基本也適用於其他中間件。)
不過,站在開發者的角度看,中間件的意義也未必全部是正面的。如馮占軍博士在《AUTOSAR對基礎軟體開發是喜還是憂?》一文中就提到了如下兩點:
底層軟體工程師變成了工具人,「只要你去點點滑鼠,用工具配合就可以了」,很多原本由自己做的測試也改由供應商來做,進而導致工程師的成就感嚴重降低;時間久了,工程師從0到1開發的能力也會降低。
(圖片摘自馮占軍博士的文章。盡管文章說的是Autosar,但實際上這些問題在ROS等其他中間件的使用過程中也會存在。)
對軟體工程師來說,中間件造成的「能力退化」這一問題幾乎是無解的。但馮占軍博士認為,「如果這個中間件在開發過程中,有使用公司的工程師深度參與,提出需求並一起實施,會好一些」。
此外,殷瑋在一篇文章提到,使用AUTOSAR這樣的中間件,Tier 1們應該是很不情願的,「因為不到增加了成本,還有可能逐步淪為硬體生產商」。但這個也不能說是中間件的鍋,在軟體定義汽車大大趨勢下,這幾乎是必然的。
二.常見的基本概念
1. AUTOSAR CP 與 AUTOSAR AP
在所有的中間件方案中,最著名的非AUTOSAR莫屬了。
嚴格地說,AUTOSAR並非特指由某一家軟體公司開發出來的某款操作系統或中間件產品,而是由全球的主要汽車生產廠商、零部件供應商、軟硬體和電子工業等企業共同制定的汽車開放式系統架構標准。不過,在實踐中,各公司基於AUTOSAR標准開發出來的中間件也被被稱為「AUTOSAR」。
當前,AUTOSAR可分為Classic Platform和Adaptive Platform兩個平台,兩者分別被簡稱為AUTOSAR CP與AUTOSAR AP。
簡單地說,AUTOSAR CP主要跑在8bit、16bit、32bit的MCU上,對應傳統的車身控制、底盤控制、動力系統等功能,如果涉及到自動駕駛的話,AUTOSAR CP可能無法實現;而AUTOSAR AP主要跑在64bit以上的高性能MPU/SOC上,對應自動駕駛的高性能電子系統。
嚴格地說,AUTOSAR CP並不只是個「中間件」,它是相當於「OS內核+中間件」的一套完整的「操作系統」。 AUTOSAR CP定義了基本的上層任務調度、優先順序調度等。
在基於分布式架構的ADAS功能中,AUOTSAR CP便是最常見的「操作系統」。在AUTOSAR的生態形成後,很多晶元廠商的MCU上標配的就是AUTOSAR CP,主機廠沒有什麼選擇權。
由於分布式架構下的晶元主要是MCU,因此,便有了「AUTOSAR CP主要跑在MCU上」的說法。
在分布式架構下,不同的功能對應著不同的MCU,而每一個MCU上都需要跑一套AUTOSAR CP,若感測器的類型比較多,則僅ADAS相關功能就需要很多套AUTOSAR CP,那怎麼收費呢?
常規的做法是:根據MCU的類型來收費——如果MCU是兩個異構的MCU,那AUTOSAR CP就按兩套來收費;如果MCU是同構的,那AUTOSAR CP就按一套來收費。
隨著EE架構從分布式向集中式演進、晶元由MCU向SOC演進,計算量及通信量成數量級地上升,另外,多核處理器、GPU、FPGA以及專用加速器的需求,還有OTA等,都超出了AUTOSAR CP的支持范圍。
(圖片摘自安志鵬的直播課)
2017年,為更好地滿足集中式架構+SOC時代的高等級自動駕駛對中間件的需求,AUTOSAR聯盟推出了通信能力更強、軟體可配置性更靈活、安全機制要求更高的AUTOSAR AP平台。
需要強調的是,不同於AUTOSAR CP自身已經包含了基於OSEK標準的OS,AUTOSAR AP只是一個跑在Lunix、QNX等基於POSIX標準的OS上面的中間件——它自身並不包含OS。
結合aFakeProgramer於2020年發表在CSDN上的《為什麼要用AP?Adaptive AutoSAR到底給企業提供了一些什麼?》一文及東軟睿馳安志鵬在2022年春節前的一場直播中講的內容,AUTOSAR CP與AUTOSAR AP最主要的區別有如下幾點:
1).編程語言不同——AUTOSAR CP基於C語言,而AUTOSAR AP基於C++語言;
2).架構不同——AUTOSAR CP 採用的是FOA架構(function-oriented architecture),而AUTOSAR AP採用的則是SOA架構(service-oriented architecture);
3).通信方式不同——AUTOAR CP採用的是基於信號的靜態配置通信方式(LIN\CAN...通信矩陣),而AUTOSAR AP採用的是基於服務的SOA動態通信方式(SOME/IP);
4).連接關系不同——在AUTOSAR CP中,硬體資源的連接關系受限於線束的連接,而在AUTOSAR AP中,硬體資源間的連接關系虛擬化,不局限於通信線束的連接關系;
5).調度方式不同——AUTOSAR CP採用固定的任務調度配置,模塊和配置在發布前進行靜態編譯、鏈接,按既定規則順序執行,而AUTOSAR CP則支持多種動態調度策略,服務可根據應用需求動態載入,並可進行單獨更新。
6).代碼執行和地址空間不同——AUTOSAR CP中,大部分代碼靜態運行在ROM,所有application共用一個地址空間,而在AUTOSAR AP中,應用載入到RAM運行,每個application獨享(虛擬)一個地址空間。
這些區別,帶給AUTOSAR AP的優勢有如下幾點——
1).ECU更加智能:基於SOA通信使得AP中ECU可以動態的同其他ECU同其他ECU進行連接,提供或獲取服務;
2).更強大的計算能力:基於SOA架構使得AP能夠更好地支持多核、多ECU、多SoCs並行處理,從而提供更強大的計算能力;
3).更加安全:基於SOA架構使得AP中各個服務模塊獨立,可獨立載入,IAM管理訪問許可權;
4).敏捷開發:Adaptive AUTOSAR服務不局限於部署在ECU本地可分布於車載網路中,使得系統模塊可靈活部署,後期也能靈活獨立更新(FOTA);
5).高通信帶寬:可實現基於Ethernet等高通信帶寬的匯流排通信;
6).更易物聯:基於乙太網的SOA通信,更易實現無線、遠程、雲連接,方便部署V-2-X應用。
(圖片摘自東軟睿馳)
當然了,在某些方面,AUTOSAR AP與AUTOSAR CP相比是有一些「劣勢」的。比如,AUTOSAR CP的時延可低至微秒級、功能安全等級達到了ASIL-D,硬實時;而AUTOSAR AP的時延則在毫秒級,功能安全等級則為ASIL-B,軟實時。
上述區別也導致了兩者應用領域的不同:AUTOSAR CP一般應用在對實時性和功能安全要求較高、對算力要求較低的場景中,如引擎控制、制動等傳統ECU;而AUTOSAR則應用在對實時性和功能安全有一定要求,但對算力要求更高的場景中,如ADAS、自動駕駛,以及在動態部署方面追求較高自由度的信息娛樂場景。
盡管AUTOSAR AP有種種優點,但總的來說,它目前還不夠成熟——主要是信息安全及UCM等模塊不成熟。量產車上裝AUTOSAR AP的不少,但主要用在娛樂場景,真正用在自動駕駛場景的還很少。
此外,由於SOC+MCU組合的現象會長期存在,因而,在今後相當長一段時間內,AUTOSAR AP都不可能徹底取代AUTOSAR CP——最常見的分工會是,需要高算力的工作交給AUTOSAR AP,而需要高實時性的工作則交給AUTOSAR CP。
(圖片摘自超星未來)
2.ROS 2
ROS是機器人操作系統(Robot Operating System)的英文縮寫,原生的ROS本是機器人OS,並不能直接滿足無人駕駛的所有需求,用作自動駕駛中間件的是ROS 2。
ROS 2與ROS 1的主要區別如下:
(1).ROS 1主要構建於Linux系統之上,主要支持Ubuntu;ROS 2採用全新的架構,底層基於DDS(Data Distribution Service)通信機制,支持實時性、嵌入式、分布式、多操作系統,ROS 2支持的系統包括Linux、windows、Mac、RTOS,甚至是單片機等沒有操作系統的裸機。
(2).ROS 1的通訊系統基於TCPROS/UDPROS,強依賴於master節點的處理;ROS 2的通訊系統是基於DDS,取消了master,同時在內部提供了DDS的抽象層實現,有了這個抽象層,用戶就可以不去關注底層的DDS使用了哪個商家的API。
(3).ROS運行時要依賴roscore,一旦roscore出現問題就會造成較大的系統災難,同時由於安裝與運行體積較大,對很多低資源系統會造成負擔;ROS2基於DDS進行數據傳輸,而DDS基於RTPS的去中心化的通信框架,這就去除了對roscore的依賴,系統的穩定性強,對資源的消耗也得到了降低。
(4).由於ROS 缺少Qos機制,topic的穩定性與質量難以保證;ROS2則提供了Qos機制,對通信的實時性、完整性、歷史追溯等功能有了支持,這便大幅加強了框架功能,避免了高速系統難以適用等問題。
不過,ROS2的QoQ配置較為復雜,目前主要是國外一些專業的大學或實驗室在使用,國內僅有極少數公司在嘗試;此外,ROS 2的生態成熟度遠不如ROS,這也給推廣應用帶來了不便。
跟AUTOSAR AP一樣,ROS 2也是跑在soc晶元上、用於滿足高等級自動駕駛的需求的。不過,蕭猛在去年的一批文章中卻特別強調:當我們稱 「ROS/ROS2 為中間件」時,其含義與 「AUTOSAR AP為 中間件」並不是對等的關系。
蕭猛的文章稱:
當我們說 AutoSar是中間件時,這個中間件是很明確的 L.BSW層語義,即處於計算機OS與車載ECU特定功能實現之間,為 ECU功能實現層屏蔽掉特定處理器和計算機OS相關的細節,並提供與車輛網路、電源等系統交互所需的基礎服務;
ROS/ROS2 是作為機器人開發的應用框架,在機器人應用和計算機OS之間提供了通用的中間層框架和常用軟體模塊(ROS Package),而且, ROS團隊認為這個框架做得足夠好,可以稱作操作系統(OS)了。
ROS 2盡管在功能上跟AUTOSAR AP有不少重疊之處,但兩者的思路是不一樣的:
(1).從表現形式上看,AUTOSAR AP首先是一套標准,這個標準定義了一系列基礎平台組件,每個平台組件定義了對應用的標准介面,但沒有定義實現細節,和平台組件之間的交互介面(這些部分留給AUTOSAR AP供應商實現);ROS2則從一開始就是代碼優先,每個版本都有完整的代碼實現,也定義有面向應用標准API介面。
(2)AUTOSAR AP從一開始就面向ASIL-B應用;ROS 2不是根據ASIL的標准設計的,ROS 2實現功能安全的解決方案是,把底層換為滿足ASIL要求的RTOS和商用工具鏈(編譯器)。
ROS 2「過不了車規」似乎已成為一個很廣泛的行業共識。但在蕭猛看來,ROS2本來就不是為實時域設計的,如果一定要把實時性要求高的車輛控制演算法運行在 ROS2中,「那是軟體設計的錯誤,而不是ROS2的問題」。
蕭猛認為,只要能補齊 L.BSW層所需要完成的所有功能、補齊 A 軸所有切面要求的特性,ROS 2就能用於自動駕駛量產車。如前段時間剛拿到采埃孚等多家巨頭投資的Apex.AI公司基於ROS 2定製開發的Apex.OS就已經通過了最高等級的ASIL D認證。
蕭猛說:「這實際上是基於 ROS 2的架構去實現一套 AUTOSAR AP 規范。這可以成為一個單獨的產品,投入時間+人+錢可以開發出來,只是看有沒有必要,值不值得」。
在具體的實踐中,ROS 2跟AUTOSAR AP存在直接競爭關系——盡管對用戶來說,並不存在嚴格意義上的「二選一」問題,但通常來說,若選了ROS 2,就不會選AUTOSAR AP了;若選了AUTOSAR AP,就不會選ROS 2了。
3. CyberRT
Cyber RT是網路Apollo開發出來的中間件,在Apollo 3.5中正式發布。Cyber RT和ROS2是比較像的, 其底層也是使用了一個開源版本的DDS。
網路最早用的是ROS 1,但在使用的過程中逐漸發現了ROS 1存在「若ROS Master出故障了,則任何兩個節點之間的通信便受到影響」的問題,所以就希望使用一個「沒有中間節點」的通信中間件來代替ROS 1,那時還沒有ROS2,所以自己去做了一個Cyber RT。
為了解決 ROS 遇到的問題,Cyber RT刪除了master機制,用自動發現機制代替,這個通信組網機制和汽車網路CAN完全一致。此外,Cyber RT的核心設計將調度、任務從內核空間搬到了用戶空間。
(圖片出處:https://blog.csdn.net/xhtchina/article/details/118151673)
其相對於其他系統,Cyber RT的一大優勢是,專為無人架駛設計。網路已將Cyber RT開源,某互聯網巨頭的自動駕駛團隊使用的中間件便是網路開源出來的Cyber RT。
Cyber RT跟ROS 2之間也存在競爭關系。
在談到AUTOSAR AP、ROS 2與Cyber RT這些中間件的關系時,Vector產品專家蔡守群的解釋是:
「不需要很機械地去分類,你可以把AUTOSAR AP, ROS和Cyber RT都想像成一個提供一組中間件的超市,用戶可以按需從不同的超市購買,並不是說從一個超市買過一個中間件,就不能從其他超市買了。
蔡守群說:AUTOSAR AP中也包含了對ROS介面的支持。說不準哪天ROS和Cyber RT就會加入AUTOSAR AP的組件,或者 AUTOSAR AP會引入Cyber RT的組件。
4.DDS(通信中間件)
(1)什麼是DDS?
在自動駕駛領域,中間件的功能涉及到通信、模塊升級、任務調度、執行管理,但其最主要的功能就是通信。當前市場上,無論是Cyber RT還是 ROS,基本上90%的功能就是通信,狹義上說就是通信中間件。
通信中間可以分成開源和閉源的兩種。開源的為OPEN DDS、FAST DDS、Cyclone等,閉源的就RTI的DDS和Vector的SOME/IP。DDS的全稱為Data Distribution Service ,指一種數據分發服務標准,由對象管理組織(OMG)制定。
DDS能夠實現低延遲、高可靠、高實時性的數據融合服務,能夠從根本上降低軟體的耦合性、復雜性,提高軟體的模塊化特性。高等級自動駕駛現在基本上都在探索依靠DDS來解決異構通信、低時延等CP解決不了的挑戰。
融合了DDS的汽車軟體能夠更好地運行在下一代汽車的體系架構中,更能降低開發的成本、縮短研發的時間,更快地將產品推向市場。
(2)DDS與ROS 2、AUTOSAR AP之間的關系
ROS 2和Cyber RT的底層都使用了開源的DDS,將DDS作為最重要的通信機制。但也有自動駕駛公司的工程師認為,DDS可以起到替代ROS 2的作用,站在用戶的角度看,兩者之間其實存在「二選一」的關系。
AUTOSAR CP里一直沒有包含跟DDS有關的東西,但AUTOSAR AP在 2018年3月的最新版(版本18-10)里開始支持DDS標准。將DDS與AUTOSAR AP結合使用,不僅可以保證和擴展AUTOSAR AP系統內部互操作性的功能,而且還可以將其開放給來自不同的生態系統(即ROS 2)。
從工程角度來看,將AUTOSAR和DDS結合起來的最大優勢是,功能域和網路拓撲不再是對手,而是車輛中的盟友。網路拓撲結構能夠更好地適應車輛的物理約束,功能域在物理車輛的頂部提供了一個靈活的覆蓋層,這就是所謂的分區體系結構。
當然,DDS僅是通信中間件的一種。關於各類通信中間件之間的異同,我們將在本系列的第二篇做更詳細的闡釋。
三.AUTOSAR AP的地位正在弱化?
盡管AUTOSAR是當下最有名的自動駕駛中間件,但《九章智駕》在對諸多中間件廠商們的調研中得出一個結論:AUTOSAR在產業鏈中的地位可能正在弱化。 當然了,那些專注於AUTOSAR系統的廠商們並不認同這一觀點。
我們在上文已經提到,隨著EE架構從分布式向集中式演進、MCU被SOC取代,CP AUTSAR被AUTOSAR AP、ROS 2和Cyber RT等取代已是大勢所趨,在下文,我們主要談的是「AUTOSAR AP的地位會不會弱化」。
2021年12月中旬,兩家AUTOSAR發起公司大陸集團、豐田聯合採埃孚、捷豹路虎、沃爾沃、海拉等多家汽車行業龍頭企業宣布投資車載操作系統初創公司Apex.AI,而Apex.AI的主力產品Apex.OS則是基於ROS 2發展起來的。
拿到了Apex.AI公司15%股權的采埃孚方面在接受媒體采訪時說:「這意味著,我們可以為客戶提供AUTOSAR AP的替代方案。」
盡管AUTOSAR AP已經有了標准,但還沒有落地。安波福、采埃孚、大陸這些公司提供的方案,仍然是基於AUTOSAR CP標準的介面。事實上,越來越多的OEM不太想完全用AUTOSAR去解決智能駕駛操作系統的問題。
不僅特斯拉沒有用AUTOSAR AP,國內的幾大造車新勢力也沒有用(他們用的是AUTOSAR CP+DDS)。甚至,連一些正在轉型的傳統車企也沒打算用AUTOSAR AP。
從產業鏈中各方的反應來看,AUTOSAR AP「地位不穩」的原因主要有以下幾個:
1.使用成本太高
馮占軍博士在《AUTOSAR對基礎軟體開發是喜還是憂?》一文中透露,AUTOSAR的費用通常是「幾百萬起」,並且,針對不同的域控制器、不同的晶元需要「重復收費」,一般小廠根本吃不消。「可能還沒有什麼產出,幾百萬就花出去了」。
除購買成本高外,畢曉鵬和蕭猛都提到,AUTOSAR前期的學習難度很大、學習成本也非常高。為了學會如何使用AUTOSAR,企業甚至不得不專門培訓一批人,如果受培訓的人臨時離職了,那培訓費用就打了水漂。
2.效率不高
畢曉鵬認為,AUTOSAR AP的配置非常多,它是通過配置加上一部分代碼去實現自己的功能,但配置多了之後,效率不高,而且代碼臃腫。
3.靜態部署與動態部署的理念沖突
畢曉鵬博士提到,AUTOSAR AP其實是從AUTOSAR CP發展而來的,AUTOSAR CP是靜態部署,只適用於相對簡單的業務邏輯和功能,其代碼是固化的,有點像以前的功能手機——功能無法改變,不可能往裡面再加一個APP;但AUTOSAR AP有點像現在的智能手機,軟體開發人員開發一個APP,跨平台就可以用不同手機上了,這種動態部署的理念和之前的靜態部署概念不甚相同,而其方法論卻是基於靜態部署衍生而來的,因此在實踐層面會遇到不少問題。
4.無法滿足智能網聯的需求
由於雲端跟車端所使用的操作系統不一樣,AUTOSAR只能負責車內的通信,不能支持車端到雲端的通信,因而無法支持車路協同場景(車端跟雲端的通信,是通過MQTT、kafka等中間件來實現的)。除此之外,AUTOSAR能否兼容車輛網聯化中需要用到的數據平台、通信平台和地圖平台,也存在很大的疑問。
畢曉鵬說,在發現了這些問題後,有一些OEM開始逐漸放棄AUTOSAR架構,「轉而自己去研發一套更適合動態部署、成本較低的新型軟體架構」。
傳統車廠是從使用CP過來的,所以在慣性上,他們可能還會考慮AP是否適合智能駕駛,但慢慢地也在嘗試轉型。如奧迪和TTTech合作做的通信中間件——zFAS,也沒有採用AP。
不同於AUTOSAR CP已經是非常標准化的東西,大家用起來沒什麼問題,AUTOSAR AP現在的標准也不是很完善,每年也在更新,具體AP能發展成什麼樣,這個誰也不知道,大家更多也是觀望的態度。
畢曉鵬認為,AUTOSAR標准並不能很好地支撐自動駕駛應用和創新的發展,因此,我們有必要建立一套更適合中國智能駕駛發展、且自主可控的技術架構和生態體系。
蕭猛認為,由於從AUTOSAR CP到AUTOSAR AP一脈相承,一些已經對AUTOSAR形成路徑依賴的公司會堅持使用AUTOSAR AP,但在經歷過招人難、開發周期長等教訓之後,他們有可能轉向ROS 2。
當然,以AUTOSAR為主業的公司,顯然不會認可上述「涉嫌唱衰」AUTOSAR AP的觀點的。
比如,Vector蔡守群就認為,AUTOSAR AP只會越來越重要,因為它是順應車載技術不斷發展的一套規范,覆蓋面會越來越廣。
東軟睿馳茅海燕也認為,要將整車域控制器和智駕域控制器合並到統一的中央計算平台上,沒有AUTOSAR AP的支持很難搞定。「不是每家公司都能像特斯拉一樣自己從頭搭建系統的,目前,最好的工具還是AUTOSAR AP」。

③ autosar源碼需要工具鏈嗎

autosar源碼需要工具鏈。

編譯工具鏈一般最簡化的為binutils+gcc+glibc+kernel-header組合的環境。GCC就是編譯器,他的輸出每次安裝只能有針對一個架構的指令輸出。如果要多個架構輸出,那就要裝多個。

工具鏈光有 GCC 是不行的,還需要一個 binutils 的二進制連接器,以及一個最基本的目標架構的 C 庫,C 庫還需要一個目標架構的內核源代碼才能完全工作(當然不是必須的,但編譯有的時候需要)。

又因為 GCC 、binutils 不能實現單軟體同時多架構輸出,所以需要單獨另裝,又加上 C 庫和內核頭文件需要目標架構的東西而不能用本機本地架構的數據。

源代碼主要有如下兩種作用:

1.生成目標代碼,即計算機可以識別的代碼。

2.對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分不會在生成的程序中直接顯示,也不參與編譯。但是注釋代碼對軟體的學習、分享、維護和軟體復用都有巨大的好處。

需要指出的是,源代碼的修改不能改變已經生成的目標代碼。如果需要目標代碼做出相應的修改,必須重新編譯。

閱讀全文

與編譯autosar相關的資料

熱點內容
linux查看文件許可權命令 瀏覽:685
安卓手游存檔怎麼用 瀏覽:761
linuxyum安裝ftp 瀏覽:690
村委會主任可以推行政命令嗎 瀏覽:102
電腦文件夾封面多張圖片 瀏覽:263
網吧總伺服器叫什麼 瀏覽:922
多個演算法解決同一個問題 瀏覽:455
小車解壓後我的購車發票呢 瀏覽:977
做app開發用什麼雲伺服器 瀏覽:177
linux網卡子介面 瀏覽:985
21歲職高畢業學程序員怎麼學 瀏覽:321
vs如何對單個文件編譯 瀏覽:6
為什麼有的電腦不能安裝python 瀏覽:75
金蝶迷你版加密狗檢測到過期 瀏覽:186
硬體描述語言編譯結果 瀏覽:655
程序員逆天改命 瀏覽:19
金斗雲伺服器 瀏覽:447
港口工程pdf 瀏覽:770
程序設計語言pdf 瀏覽:434
蔬菜價格上漲演算法 瀏覽:221