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