近日,黑芝麻智能A1000芯片基礎(chǔ)軟件開發(fā)在線研討會在順利完結(jié)直播。研討會由黑芝麻智能李坤、中興通訊李玉鵬兩位技術(shù)專家主講,主題分別為《視覺感知數(shù)據(jù)流在A1000平臺上的基礎(chǔ)軟件開發(fā)》,以及《中興車用操作系統(tǒng)SafetyLinux在A1000平臺上的適配》。
本文是中興通訊李玉鵬的主講實錄整理,同時附上線本次研討會的直播回放。
李玉鵬:大家下午好,我是李玉鵬,來自中興通訊汽車電子,負責車用操作系統(tǒng)及基礎(chǔ)軟件規(guī)劃。今天分享的主題是中興通訊車用操作系統(tǒng)SafetyLinux在黑芝麻智能華山二號A1000平臺上的適配。
中興車用操作系統(tǒng)SafetyLinux
與黑芝麻智能華山二號A1000芯片的匹配
首先,簡單說明下我們?yōu)槭裁匆鲞@個適配工作。大家知道,其實黑芝麻智能A1000芯片配套有對應(yīng)的SDK和相應(yīng)的材料,而SDK的默認目標硬件是黑芝麻智能配套提供的評估板。但在實際的應(yīng)用環(huán)境中,不同的域控會有不同的要求和配置,同時對底層的操作系統(tǒng)、軟件也有對應(yīng)的要求,這也就需要有第三方的操作系統(tǒng)能夠適配黑芝麻智能A1000平臺。
中興SafetyLinux跟黑芝麻智能的A1000芯片做了適配對接。那么相應(yīng)的適配需要做哪些工作呢?
在介紹具體的適配工作之前,我們先來看一下黑芝麻智能A1000芯片SDK的主要內(nèi)容,這也是SafetyLinux適配A1000芯片的基礎(chǔ)和前提。
從黑芝麻智能釋放的材料可以看到,其A1000的SDK包含一個Linux內(nèi)核?;谶@個內(nèi)核可以進行A1000 SoC芯片片內(nèi)驅(qū)動,以及部分內(nèi)核功能和定制化用戶態(tài)組件的開發(fā)等。
另外,SDK里也包含了與黑芝麻智能A1000芯片緊密相關(guān)的文件系統(tǒng),其中包括必備的根文件系統(tǒng)、黑芝麻智能軟件開發(fā)組件,以及黑芝麻智能定制的其他功能組件。這些組件還是比較豐富的。
除此之外,SDK里還有一些其他資料,也是我們做黑芝麻智能A1000芯片適配所必須的。比如Linux內(nèi)核源碼、配套開發(fā)工具包、二進制固件、樣例代碼、工程模板,以及配套的開發(fā)文檔等隨機資料。
總體來說,黑芝麻智能A1000芯片的SDK提供的材料還是比較豐富和全面的,結(jié)合黑芝麻智能A1000芯片的SDK和評估板,對于第三方的應(yīng)用開發(fā),或者第三方OS的移植都有很好的幫助和指導(dǎo)作用。
下面我來介紹下中興SafetyLinux適配黑芝麻智能A1000的具體工作。主要包含以下幾部分:
1、適配分析
首先,需要明確黑芝麻智能A1000芯片SDK的Linux內(nèi)核版本。對比中興SafetyLinux內(nèi)核,找出兩個內(nèi)核以及BSP驅(qū)動代碼修改或者變化點,為后續(xù)內(nèi)核移植和補丁的制作做好準備。
其次,要明確內(nèi)核的配置,也就是黑芝麻智能A1000 SDK對一些驅(qū)動開發(fā)完成之后,需要做內(nèi)核的配置修改,從而使BSP驅(qū)動生效,這也是我們做黑芝麻智能A1000硬件平臺上OS移植時需要重點關(guān)注的。
接下來,需要對SDK里SOC芯片的片內(nèi)片外驅(qū)動所對應(yīng)的設(shè)備樹配置進行區(qū)分。比如基于片內(nèi)的設(shè)備樹,需要準備中興SafetyLinux以及目標域控單板的設(shè)備樹應(yīng)該怎么配。這里簡單說下,區(qū)分片內(nèi)片外設(shè)備樹的主要考慮是片內(nèi)的 SoC驅(qū)動對應(yīng)的設(shè)備樹基本上和黑芝麻智能A1000緊密相關(guān),無論域控的功能怎么設(shè)計,這些驅(qū)動都要去集成。
但是片外像智能攝像頭、激光雷達或者其他的智能外設(shè),它的驅(qū)動及設(shè)備樹配置往往是根據(jù)域控的要求來配的。比如你的一款域控里面沒有配激光雷達,那么對應(yīng)的設(shè)備樹配置可能不需要。如果你的攝像頭的個數(shù)不一樣,或者攝像頭類型也不一樣,對應(yīng)的設(shè)備樹配置也會有差異。這也是我們要區(qū)分片內(nèi)片外驅(qū)動對應(yīng)設(shè)備樹的一個考慮。
最后,還要對SDK編譯生成物的情況進行分析。不同芯片內(nèi)核編譯完之后,生成鏡像也有所不同,包括對應(yīng)的設(shè)備樹的dtb、ko庫等也是不一樣的。變化或者差異的分析、明確也是為后面真正做內(nèi)核移植、適配和編譯提供必要的支撐。這也是我們做任何一項復(fù)雜工作的基本方法。
2、內(nèi)核移植
接下來我們看第二步,也是最核心的,即中興SafetyLinux適配黑芝麻智能A1000時的內(nèi)核移植工作。
首先,基于前面的差異分析,明確黑芝麻智能A1000 SDK里面Linux內(nèi)核版本和SafetyLinux內(nèi)核版本的差異,然后形成一個詳細、全面的差異清單。
然后,基于這個清單把黑芝麻智能A1000對應(yīng)SafetyLinux內(nèi)核的修改項清單,生成針對SafetyLinux內(nèi)核或片內(nèi)驅(qū)動的補丁。這里的補丁主要是指變動代碼或變動代碼包的統(tǒng)稱,與我們通常理解的補丁并不完全一樣。通過補丁的方式,我們可以很容易把黑芝麻智能A1000 SDK里面的變化或特有的特性,融合到中興SafetyLinux項目框架(yocto框架)里面去。
接下來也是很關(guān)鍵的一步,要解決這些內(nèi)核和片內(nèi)驅(qū)動,以及補丁合入中興SafetyLinux時引起的可能問題。這類問題主要是因為黑芝麻智能A1000 SDK里面的內(nèi)核和中興SafetyLinux內(nèi)核的版本可能存在差異,分支可能也不一樣。比如黑芝麻智能可能基于SDK做了一些特性或者增強改進,中興相應(yīng)的也在SafetyLinux里面做了一些增強改進,這些增強改進要有機融合在一起,才能形成一個比較好的移植后的版本。所以這類問題的解決還是比較關(guān)鍵的。特別是在合成之后,還要經(jīng)過內(nèi)核的初步編譯,這里可能也會出現(xiàn)一些異常。這些異常可能也是由各種各樣的原因?qū)е碌?,這里就需要OS內(nèi)核研發(fā)團隊工程師去做手動處理,逐條分析。分析過程要慎之又慎,因為差異可能會比較多,或者差異涉及的范圍比較廣,需要OS內(nèi)核專家逐一分析逐一解決。有時候可能還需要從OS大版本的特性整體考慮和提供差異的解決方案,同時還要兼顧邏輯和性能方面的訴求。
所以內(nèi)核移植是整個適配工作關(guān)鍵的一步。當然,中興OS內(nèi)核團隊有多年的開發(fā)經(jīng)驗,在內(nèi)核移植方面也是駕輕就熟,后面我也會通過一個成功案例來詳細介紹。
內(nèi)核移植完成之后,內(nèi)核和片內(nèi)的一些驅(qū)動代碼和基本變更特性就合入到中興SafetyLinux里面了。
3、內(nèi)核配置及版本構(gòu)建
第三步就是內(nèi)核的配置以及版本的構(gòu)建。
首先需要進行板級或者片外驅(qū)動補丁的制作,也包括黑芝麻智能做的功能增強或功能特性的補丁。這里所說的補丁就是把變化或者新增的功能合進來,當然也包括系統(tǒng)引導(dǎo)補丁等。
補丁制作完成之后,需要在內(nèi)核中做對應(yīng)的編譯和配置,將補丁配置到內(nèi)核中,使變化的補丁生效。這里的補丁可能也包含一些默認的配置,比如RT功能配置、初始化配置等。
這些配置都完成以后,就可以基于yocto框架進行中興SafetyLinux適配黑芝麻智能A1000之后的完整版本的編譯和構(gòu)建。構(gòu)建之后還需要進行版本的初步測試、關(guān)鍵功能流程的驗證等工作。當然,在測試和驗證過程中也可能會發(fā)現(xiàn)各種各樣的問題,需要我們重新進行回歸、測試和版本發(fā)布。
這一步做完,中興SafetyLinux適配黑芝麻智能A1000的硬件環(huán)境基本的工作就做完了。當然,后面可能會有一些性能方面的專項提優(yōu)、安全方面的專項增強以及信息安全方面的補丁和增強都要專門考慮,這個需要結(jié)合整個技術(shù)軟件平臺上面的業(yè)務(wù)系統(tǒng)一起開展。
到這里,中興SafetyLinux適配黑芝麻智能A1000平臺的基礎(chǔ)工作就做完了。
中興車用操作系統(tǒng)與黑芝麻智能華山二號A1000合作案例
接下來,我會結(jié)合中興SafetyLinux和黑芝麻智能A1000硬件平臺的合作案例,來介紹我們移植的具體操作,以及取得的成果和進展。
中興SafetyLinux和黑芝麻智能A1000在L2+自動駕駛場景下有一個很好的合作案例。
上面這張圖展示的就是我們的合作方案架構(gòu)??梢钥吹?,架構(gòu)底層是單顆黑芝麻智能A1000 SoC芯片,同時搭載了高性能MCU,來做智駕L2+的行車NOA和停車位的泊車功能。智能外設(shè)采用了5R10V的配置,此外還有其他的關(guān)聯(lián)部件和外設(shè)。
在黑芝麻智能A1000 SoC芯片(A核)上部署的是中興SafetyLinux操作系統(tǒng),采用的是LTS長效演進分支5.10的大版本,支持RT補丁,同時融合了中興針對車輛場景在計算、內(nèi)存、存儲、文件系統(tǒng)、網(wǎng)絡(luò)、維測、容器等方面的增強功能在里面。
在方案架構(gòu)的基礎(chǔ)軟件層,包含了AUTOSAR AP/CP、DDS、SOA功能框架和功能安全監(jiān)控框架等。
應(yīng)用層則包含了第三方和OEM合作伙伴一起實現(xiàn)的智能駕駛的業(yè)務(wù)應(yīng)用,比如前面提到的行車、泊車輔助等。
以上是中興SafetyLinux和黑芝麻智能A1000整體合作方案的簡單介紹。
在這個方案里,最核心的功能之一是底層智能外設(shè)的驅(qū)動適配。從上圖也可以看到,主要的外設(shè)是攝像頭,當然也包括雷達、GNSS、IMU等設(shè)備沒有體現(xiàn)出來,這些也是整個系統(tǒng)需要接入進來的。此外,NorFlash、eMMC和以太網(wǎng)的驅(qū)動也要去集成。
在攝像頭的驅(qū)動集成里,除了攝像頭本身,板端攝像頭對應(yīng)的解串器的集成和適配,以及對應(yīng)設(shè)備樹的配置,也是我們重點要做的工作。除此之外,剛才提到的GNSS、IMU時間同步的外設(shè)和流程集成支持,以及安全啟動框架ATF和uboot的集成。還有其他外設(shè)的集成,比如毫米波雷達等,但是這個集成可能是在不同的SoC或MCU上進行。以上就是整個案例中智能外設(shè)的集成和適配配置。
除了底層的驅(qū)動之外,還有黑芝麻智能ISP 、AI框架和第三方組件的集成,這個也是必須的。因為作為底層的基礎(chǔ)軟硬件平臺,要為上層的應(yīng)用以及基礎(chǔ)軟件框架提供必要的支撐。
黑芝麻智能ISP和AI框架主要包括圖像變換加速庫、視頻編碼庫、深度學(xué)習(xí)庫、相機ISP處理庫、IPC通信庫、顯示庫、GPU驅(qū)動庫等,當然也包含黑芝麻智能AI算子庫的集成。這些庫有些也是黑芝麻智能核心的自主知識產(chǎn)權(quán),對外以庫的形式發(fā)布。
在和中興的SafetyLinux集成過程中,為了保證內(nèi)核代碼和程序的一致性,我們也請黑芝麻智能基于中興的OS工具鏈對這些庫進行編譯,這一點得到了黑芝麻智能很好的支持和配合。
在第三方庫的集成方面,包括基礎(chǔ)軟件庫、基礎(chǔ)軟件框架需要的第三方庫,融合感知、規(guī)劃控制以及泊車業(yè)務(wù)涉及到的相關(guān)第三方庫。
這些第三方庫,在中興SafetyLinux集成的時候都會做安全治理。所謂安全治理,就是對第三方庫,尤其是開源庫的安全漏洞進行掃描,然后對必要的庫進行打補丁或者進行安全加固的修改。在修改的基礎(chǔ)上再做通用化或者基本的集成測試,這是中興SafrtyLinux需要做的一些事情,來保證集成的庫在整個操作系統(tǒng)平臺上能夠得到正確的應(yīng)用,不會存在安全漏洞或者基層功能的bug,從而為上層應(yīng)用開發(fā)提供比較好的支持。
這一頁是中興SafetyLinux和黑芝麻智能A1000在智駕合作案例中取得的一些效果,特別是攝像頭出圖效果的展示。
上面這一列是攝像頭的驅(qū)動集成之后,通過攝像頭的出圖效果來判斷功能、驅(qū)動和相關(guān)組件的集成結(jié)果是否正常。
從這個圖上能看到我們在周視攝像頭和環(huán)視攝像頭上都有比較好的出圖效果。當然在不同的外部環(huán)境下,比如在室外比較好光照情況下,或者室內(nèi)比較陰暗的場景下,周視和環(huán)視也都有比較好的出圖效果。
這里在攝像頭的初始結(jié)果里面,一些裁剪或者畸變校正等處理也是基于黑芝麻智能提供的軟件組件來實現(xiàn)的。從這張圖片我們能夠看到也都做到了比較好的集成,并取得了比較好的效果。
下面一排是更上層的應(yīng)用。我們基于YOLOv5模型樣例,來做AI感知和推理的效果驗證與測試。從攝像頭的圖像和交通視頻流的圖像識別大家可以看到,無論是普通的物體或者道路上的車輛都能做很好的識別。
這也說明了中興SafetyLinux和黑芝麻智能A1000的基礎(chǔ)軟件平臺,對上層組件的集成和業(yè)務(wù)的支持都取得較好的成果,能夠很好地支撐上層應(yīng)用的開發(fā)。
中興車用操作系統(tǒng)產(chǎn)品規(guī)劃及解決方案
這里再簡單介紹下中興的車用操作系統(tǒng)。
今天我們主要介紹的是中興的SafetyLinux。其實中興在底層OS方面有比較完整的布局,包括微內(nèi)核操作系統(tǒng),SafetyLinux系統(tǒng),還有虛擬化Hypervisor以及配套的工具鏈。通過這三種產(chǎn)品的組合,我們能夠比較好的形成智能駕駛、智能座艙和智能車控的OS解決方案,也為車端典型場景應(yīng)用提供比較好的底層支撐。
此外,中興的微內(nèi)核操作系統(tǒng)也和黑智能智能A1000平臺做了很好的生態(tài)適配對接,目前已做到AI感知推理全流程的打通,并取得了較好的效果。這也得益于黑芝麻智能團隊和硬件平臺對中興很好的支持。
最后我再簡單補充一點,就是中興對于智能駕駛操作系統(tǒng)解決方案的理解。
其實除了中興SafetyLinux與黑芝麻智能A1000共同打造的智能駕駛解決方案,我們還有其他的智能駕駛操作系統(tǒng)解決方案。
比如上圖右側(cè)展示的組合監(jiān)控方案。該方案主要是從SafetyLinux功能安全增強的角度來考慮的。因為中興微內(nèi)核操作系統(tǒng)已經(jīng)通過了ISO26262 ASIL-D的管理流程和產(chǎn)品認證,能夠提供比較好的功能安全認證的基礎(chǔ)條件,而通過這種組合監(jiān)控可以進一步提升整個智駕解決方案的功能安全特性。
在長遠的方案發(fā)展層面,中興也有自己的思路。我們分析將來會基于增強的微內(nèi)核來做智能駕駛底層OS的承載,主要是考慮將來高階自動駕駛下對公共安全要求必將大大提升。中興微內(nèi)核操作系統(tǒng)本身可以做到ASIL-D的功能安全要求,這樣它就有條件為整個智能駕駛底層OS方案或整個智駕方案,提供一個比較好的或者有條件做到高功能安全等級的要求,這也是中興對智能駕駛演進的基本思路。
今天的分享就是這些,謝謝大家。
審核編輯:湯梓紅
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6898瀏覽量
123784 -
移植
+關(guān)注
關(guān)注
1文章
383瀏覽量
28197 -
智能駕駛
+關(guān)注
關(guān)注
3文章
2594瀏覽量
48939 -
黑芝麻智能
+關(guān)注
關(guān)注
1文章
172瀏覽量
3378
原文標題:如何進行內(nèi)核移植和配置?全解中興SafetyLinux在黑芝麻智能華山二號A1000上的適配 | 公開課實錄
文章出處:【微信號:BlackSesameTech,微信公眾號:黑芝麻智能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論