近期,軟通動(dòng)力控股子公司鴻湖萬(wàn)聯(lián)(江蘇)科技發(fā)展有限公司(以下簡(jiǎn)稱“鴻湖萬(wàn)聯(lián)”)將致遠(yuǎn)開(kāi)發(fā)板正式合入OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)社區(qū)主干。作為將開(kāi)發(fā)板正式合入OpenHarmony主干的代碼提交者,我將和大家分享我們團(tuán)隊(duì)在研發(fā)過(guò)程中的故事與心得,希望能給廣大開(kāi)發(fā)者一些參考。
Q1
關(guān)于我以及我所在的團(tuán)隊(duì)
大家好,我是鴻湖萬(wàn)聯(lián)的高級(jí)技術(shù)專家李星。作為鴻湖萬(wàn)聯(lián)南向芯片適配的“排頭兵”,我主要負(fù)責(zé)整個(gè)南向團(tuán)隊(duì)進(jìn)行多平臺(tái)芯片移植適配方案的設(shè)計(jì)與實(shí)施,包含ARM架構(gòu)下的瑞芯微系列、全志系列等。
Q2
致遠(yuǎn)開(kāi)發(fā)板所具有的特性及優(yōu)勢(shì)
鴻湖萬(wàn)聯(lián)致遠(yuǎn)開(kāi)發(fā)板,基于全志ARM架構(gòu)主頻為1.5GHz的T507芯片,采用了“核心板+底板”結(jié)構(gòu)形式,并搭載四核Cortex-A53處理器,集成G31GPU,擁有豐富的音視頻接口的芯片。它具有低功耗、高性能、運(yùn)行穩(wěn)定等優(yōu)點(diǎn)。另外,T507芯片具有高性能的外部存儲(chǔ)器接口和嵌入式的GPU,支持OpenGL ES 3.2/2.0/1.0、Vulkan 1.1以及OpenCL 2.0,有效保證了系統(tǒng)運(yùn)行的高穩(wěn)定性。它的工業(yè)級(jí)運(yùn)行支持的溫度在-45℃到80℃之間,可以運(yùn)行標(biāo)準(zhǔn)OpenHarmony操作系統(tǒng),適用于車載終端、電力、醫(yī)療、工業(yè)控制、物聯(lián)網(wǎng)、智能終端等領(lǐng)域,而且使用壽命更長(zhǎng)。
Q3
關(guān)于將致遠(yuǎn)開(kāi)發(fā)板合入OpenHarmony主干的契機(jī)
談及致遠(yuǎn)開(kāi)發(fā)板正式合入OpenHarmony主干的契機(jī),離不開(kāi)公司的戰(zhàn)略規(guī)劃和與開(kāi)放原子開(kāi)源基金會(huì)的合作。鴻湖萬(wàn)聯(lián)作為軟通動(dòng)力全資子公司,全面承接集團(tuán)OpenHarmony戰(zhàn)略,積極投入到OpenHarmony生態(tài)共建中,包含南向生態(tài)共建與北向生態(tài)共建。在南向生態(tài)共建中,我們希望引入更多平臺(tái)的芯片進(jìn)行適配和升級(jí),基于全志T507芯片的致遠(yuǎn)開(kāi)發(fā)板在我們的商顯領(lǐng)域、交通領(lǐng)域均有對(duì)應(yīng)的行業(yè)應(yīng)用。開(kāi)放原子開(kāi)源基金會(huì)業(yè)務(wù)發(fā)展部了解到我們?cè)谧鲋悄苁圬洐C(jī)的項(xiàng)目,并且選用的是T507的芯片,于是雙方快速達(dá)成一致,經(jīng)過(guò)多輪溝通,確定了路標(biāo)和計(jì)劃。最終,在公司的支持和團(tuán)隊(duì)的努力下,我們完成了致遠(yuǎn)開(kāi)發(fā)板合入主干這一很有意義的事情。
Q4
致遠(yuǎn)開(kāi)發(fā)板合入主干后會(huì)對(duì)OpenHarmony有哪些積極作用
T507作為低功耗、高性能、運(yùn)行穩(wěn)定的芯片,廣泛應(yīng)用于車載信息娛樂(lè)系統(tǒng)以及汽車360度全景可視系統(tǒng)中。致遠(yuǎn)開(kāi)發(fā)板合入主干首先讓T507芯片擁有了OpenHarmony系統(tǒng)的開(kāi)發(fā)案例,讓以前使用T507的開(kāi)發(fā)者可以快速加入到OpenHarmony生態(tài)中,降低了開(kāi)發(fā)者在T507上使用OpenHarmony的壁壘,免去了適配的過(guò)程,可以直接做產(chǎn)品相關(guān)的應(yīng)用開(kāi)發(fā)。 其次,致遠(yuǎn)開(kāi)發(fā)板合入主干能夠極大推動(dòng)OpenHarmony在智能家居、智能醫(yī)療、智能終端等物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用落地。對(duì)于開(kāi)發(fā)者而言,在做OpenHarmony開(kāi)發(fā)項(xiàng)目時(shí),會(huì)有更多的芯片和開(kāi)發(fā)板的選擇。對(duì)于用戶而言,OpenHarmony系統(tǒng)的逐步完善也會(huì)讓用戶的使用體驗(yàn)越來(lái)越好。此外,未來(lái),我相信會(huì)有越來(lái)越多的廠商去適配OpenHarmony系統(tǒng),能讓越來(lái)越多的人了解并且相信OpenHarmony,這是致遠(yuǎn)開(kāi)發(fā)板合入主干對(duì)OpenHarmony的積極作用。
Q5
參與了核心代碼合入主干的全過(guò)程,我有以下經(jīng)驗(yàn)和收獲
將核心代碼合入主干,首先得保證代碼要能符合合入的標(biāo)準(zhǔn),所以我們從代碼設(shè)計(jì)階段開(kāi)始,對(duì)代碼的架構(gòu)設(shè)計(jì)、安全規(guī)范和編譯規(guī)范,以及在編碼過(guò)程中對(duì)各種語(yǔ)言的編碼規(guī)范都實(shí)行了高標(biāo)準(zhǔn)、嚴(yán)要求,一項(xiàng)一項(xiàng)進(jìn)行調(diào)整。基于這樣的高標(biāo)準(zhǔn),讓我們整個(gè)團(tuán)隊(duì)在研發(fā)過(guò)程中一直嚴(yán)格要求自己,對(duì)我們以后的研發(fā)工作大有裨益。
Q6
在將致遠(yuǎn)開(kāi)發(fā)板合入主干的過(guò)程中,技術(shù)難題是最大的挑戰(zhàn)
在進(jìn)行致遠(yuǎn)開(kāi)發(fā)板合入主干這個(gè)項(xiàng)目時(shí),OpenHarmony主干更新比較快,整個(gè)團(tuán)隊(duì)每天都需要解決不同的技術(shù)難題,比如版本不兼容的問(wèn)題,為了能夠緊跟OpenHarmony的最新特性,我們的開(kāi)發(fā)一直是以主干為核心的。最大的挑戰(zhàn)和難關(guān)主要在將OpenHarmony移植到致遠(yuǎn)開(kāi)發(fā)板上過(guò)程中,比如移植前期調(diào)試終端亂碼、調(diào)試工具HDC無(wú)法使用,以及后期的驅(qū)動(dòng)適配,包括音頻驅(qū)動(dòng)、WiFi驅(qū)動(dòng)、藍(lán)牙驅(qū)動(dòng)等問(wèn)題。最具挑戰(zhàn)性的是后期的驅(qū)動(dòng)適配,因?yàn)镺penHarmony采用的是HDF驅(qū)動(dòng)框架,和以前我們所接觸的Linux驅(qū)動(dòng)框架有很大的差異,這就需要我們驅(qū)動(dòng)移植的相關(guān)人員以最短的時(shí)間學(xué)習(xí)和掌握HDF驅(qū)動(dòng)框架,并完成相關(guān)驅(qū)動(dòng)的適配。為了不影響項(xiàng)目進(jìn)程,我們對(duì)團(tuán)隊(duì)分工做了細(xì)化和調(diào)整,充分發(fā)揮各位研發(fā)人員的專長(zhǎng),將研究新的顯示框架和在舊有的基礎(chǔ)上做其他適配等多項(xiàng)任務(wù)同時(shí)進(jìn)行。最終,在大家齊心協(xié)力的努力下,一起迎難而上,如期完成了致遠(yuǎn)開(kāi)發(fā)板合入主干這一項(xiàng)目。
Q7
如何攻克GPU適配這一技術(shù)難題
在適配完外設(shè)驅(qū)動(dòng)后,播放視頻過(guò)程中會(huì)有卡頓,而且CPU占用率比較高,為了配合我們的商顯項(xiàng)目,保證視流暢播放并降低CPU占用率,在OpenHarmony上使能GPU就特別重要。 開(kāi)始廠商提供的是4.19內(nèi)核GPU的補(bǔ)丁文件,補(bǔ)丁文件涉及四萬(wàn)行左右的代碼量,代碼量較大且目前社區(qū)主推5.10內(nèi)核,導(dǎo)致大量的補(bǔ)丁無(wú)法直接使用。聽(tīng)取廠商意見(jiàn)以及內(nèi)部討論評(píng)估后,我們參考4.19的補(bǔ)丁文件直接在5.10上進(jìn)行使能適配。適配難度比較大,涉及以下內(nèi)容: (1)內(nèi)核相關(guān)結(jié)構(gòu)函數(shù)適配,主要包含一些結(jié)構(gòu)體成員名稱的改變,比如5.10中將mmap_sem改為mmap_lock,將vm_insert_pfn改為vmf_insert_pfn等 (2)平臺(tái)代碼的適配主要涉及平臺(tái)驅(qū)動(dòng)的編譯,修改相關(guān)Kbuid、Kconfig、Makefile等文件。 (3)解決驅(qū)動(dòng)運(yùn)行時(shí)的錯(cuò)誤,包含中斷命名的修改,相關(guān)的有MMU、JOB、GPU等。以及mmap報(bào)錯(cuò),mmap失敗時(shí)的錯(cuò)誤碼提示內(nèi)存已用完,經(jīng)過(guò)定位排查,解決辦法是在缺頁(yè)trap時(shí)需要調(diào)用vmf_insert_pfn。 經(jīng)過(guò)前期的驅(qū)動(dòng)適配和后期修改運(yùn)行過(guò)程中的報(bào)錯(cuò),我們終于攻克GPU適配這一技術(shù)難題。
Q8
關(guān)于豐富OpenHarmony生態(tài)的愿景
起初,移植OpenHarmony到揚(yáng)帆開(kāi)發(fā)板上,是公司豐富OpenHarmony生態(tài)的預(yù)研類項(xiàng)目。在移植過(guò)程中,我們團(tuán)隊(duì)被OpenHarmony以面向全場(chǎng)景、全連接、全智能時(shí)代的目標(biāo)所吸引。這個(gè)過(guò)程中也學(xué)到了很多,比如OpenHarmony的啟動(dòng)恢復(fù)子系統(tǒng)、圖形子系統(tǒng)、媒體子系統(tǒng)下的音視頻模塊等。而且我們?cè)谝浦策^(guò)程中也輸出了一些總結(jié)性的文檔,有《HDC適配說(shuō)明》、《基于HDF框架的WiFi適配說(shuō)明》、《基于alsa-lib的audio適配說(shuō)明》,同時(shí),也參考了OpenHarmony的相關(guān)文檔,收獲頗多。作為OpenHarmony生態(tài)的參與者和共建者,鴻湖萬(wàn)聯(lián)始終以O(shè)penHarmony為基礎(chǔ)持續(xù)進(jìn)行技術(shù)研發(fā)和創(chuàng)新,致遠(yuǎn)開(kāi)發(fā)板合入主干不僅展現(xiàn)出了鴻湖萬(wàn)聯(lián)其持續(xù)創(chuàng)新的研發(fā)能力,更是豐富了OpenHarmony的生態(tài)。 目前我們根據(jù)自身的發(fā)展需要,已經(jīng)投入到網(wǎng)絡(luò)切換功能的研發(fā)中,我們希望更多的開(kāi)發(fā)者和廠商能夠加入進(jìn)來(lái),為OpenHarmony貢獻(xiàn)自己的力量。
-
芯片
+關(guān)注
關(guān)注
459文章
52199瀏覽量
436391 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5532瀏覽量
102425 -
OpenHarmony
+關(guān)注
關(guān)注
27文章
3835瀏覽量
18171
原文標(biāo)題:李星:如何攻克技術(shù)難題,完成全志T507芯片的移植與適配?
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
貝啟BQ3568HM 開(kāi)發(fā)板被選用為 OpenHarmony 明星開(kāi)發(fā)板

【北京迅為】iTOP-RK3568開(kāi)發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)實(shí)操-HDF驅(qū)動(dòng)配置UART

北京迅為iTOP-RK3568開(kāi)發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)實(shí)操-HDF驅(qū)動(dòng)配置LED

北京迅為RK3568開(kāi)發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)內(nèi)核HDF驅(qū)動(dòng)框架架構(gòu)

【北京迅為】itop-3568 開(kāi)發(fā)板openharmony鴻蒙燒寫(xiě)及測(cè)試-第2章OpenHarmony v3.2-Beta4版本測(cè)試

【北京迅為】itop-3568 開(kāi)發(fā)板openharmony鴻蒙燒寫(xiě)及測(cè)試-第1章 體驗(yàn)OpenHarmony—燒寫(xiě)鏡像

OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開(kāi)發(fā)板演示

OpenHarmony怎么修改DPI密度值?觸覺(jué)智能RK3566鴻蒙開(kāi)發(fā)板演示

OpenHarmony默認(rèn)30秒熄屏太麻煩?觸覺(jué)智能鴻蒙開(kāi)發(fā)板教你輕松取消

OpenHarmony屬性信息怎么修改?觸覺(jué)智能RK3566鴻蒙開(kāi)發(fā)板來(lái)演示

如何在開(kāi)源鴻蒙OpenHarmony開(kāi)啟SELinux模式?RK3566鴻蒙開(kāi)發(fā)板演示

觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板成功適配OpenHarmony5.0 Release,開(kāi)啟新征程

評(píng)論