天天看點

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

5月29日,2021年阿裡雲開發者大會的“RISC-V技術趨勢與晶片應用實踐”分論壇上, 平頭哥連續釋出三款RISC-V晶片開發闆,且已向全球開發者開放申請

。考慮到開發者在使用這些開發闆進行嵌入式開發時,将會運用到YoC基礎軟體平台。故從本期開始,我們将持續為大家推薦YoC元件開發系列内容,幫助大家快速上手YoC基礎軟體平台。

關于

YoC基礎軟體平台 ,我們已經在上期【技術解碼】中進行了詳細介紹,大家可以在文末的往期回顧中點選檢視。

一 前言

平頭哥晶片開放社群(簡稱OCC)裡的晶片空間立志于打造貫穿全鍊路的基礎設施平台。晶片廠商在對接完YoC移植或晶片開發者完成一個新的産品解決方案後,可以向OCC釋出該産品元件且向YoC送出一個完整的元件,後續根據代碼稽核意見進行修改和完善後,最終會被合并到YoC的主分支上。

如果通過劍池CDK下載下傳YoC最新源碼倉庫到本地,打開helloworld例程,在sdk_chip_ch2201節點下的cb2201和chip_ch2201元件就是晶片的BSP元件了。如果有讀者朋友使用過平頭哥CH2201晶片,歡迎使用體驗該晶片BSP元件或者送出BUG。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

關于CH2201晶片産品資訊,可以前往平頭哥晶片開放社群(OCC)>【晶片空間】查詢擷取。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

本文介紹了如何向OCC釋出晶片産品元件和向YoC貢獻代碼。

注意:YoC作為一個開源項目,其遵循協定是Apache-2.0 License。這個協定有一下幾個特點:

  • 永久權利 一旦被授權,永久擁有。
  • 全球範圍的權利 在一個國家獲得授權,适用于所有國家。假如你在美國,許可是從印度授權的,也沒有問題。
  • 授權免費,且無版稅 前期,後期均無任何費用。
  • 授權無排他性 任何人都可以獲得授權
  • 授權不可撤消 一旦獲得授權,沒有任何人可以取消。比如,你基于該産品代碼開發了衍生産品,你不用擔心會在某一天被禁止使用該代碼

開源協定雖然不一定具備法律效力,但是當涉及軟體版權糾紛時,開源協定也是非常重要的證據之一。

二 晶片産品元件代碼維護方案

産品元件代碼的維護有兩個方案:

  • 方案A:開發者建立公開倉庫進行管理,需要将元件代碼推送到元件倉庫裡,同時也允許其他開發者貢獻元件代碼到倉庫裡。如何将元件代碼送出到元件倉庫裡,請參考第三章節_如何送出代碼到元件倉庫_。
  • 方案B:開發者建立私有倉庫進行管理。

兩種方案的不同點

方案 元件版本釋出管理 代碼倉庫管理
方案A 支援 跟随元件釋出版本疊代
方案B 自行代碼疊代

三 晶片開發移植工作

這個是整個晶片産品開發移植最重要、也是最繁瑣最耗時的一步。針對平頭哥玄鐵處理器核心,可以參考YoC晶片對接流程,如果是其他的處理器核心,可以先參考YoC最小系統實作方法。(參考文檔連結:

https://yoc.docs.t-head.cn/yocbook/

晶片開發移植工作完成後,會有生成一個Chip SDK Package, 至少包括以下部分:

  • 最小系統AliOS核心移植,支援任務排程,任務通訊,信号量等系統服務
  • 支援PIN、中斷、序列槽、GPIO等外設CSI驅動
  • 支援SCons建構系統,可以使用平頭哥玄鐵、RISC-V和ARM處理器跨平台編譯
  • 支援生成CDK工程,線上釋出産品元件
  • README檔案用于介紹該元件的功能資訊、對外接口、運作資源等

在晶片開發移植工作中,盡量不需要修改YoC現有的元件,所有的改動和新增代碼確定限制在Chip元件、Board元件和Solution元件裡。除元件Bug或新增功能外的改動在後續送出PR的時候有很大的可能會被拒絕。

四 如何釋出你的晶片産品元件

晶片産品元件包括:

  • Chip元件
  • Board元件
  • solution元件

利用劍池CDK完成晶片移植後,可以直接利用劍池CDK釋出晶片元件至OCC。釋出晶片産品元件到OCC,隻是将元件打包成ZIP壓縮包上傳到OCC你的賬戶下,并沒有将元件代碼送出到該元件倉庫。 

提示:元件以ZIP包的方式釋出到OCC,不僅可以維護元件的版本,而且可以進行後續的元件更新維護,操作簡單,适合Windows開發者。

1. 準備工作

申請企業入駐,注冊擷取企業資質賬号。如果想申請企業資質,進入以下網址申請即可。(

https://occ.t-head.cn/occ-manage/vendor_locate

釋出的晶片産品可以申請産品1520認證。如果需要了解産品1520認證流程,請進入以下網址。(

https://occ.t-head.cn/document?temp=1520-certification-operation-guide

晶片産品元件包括以下三部分:

  • 晶片釋出
  • 開發闆釋出
  • 解決方案釋出

注:具體釋出流程請進入以下網址了解:

https://occ.t-head.cn/document?temp=solution-upload-guide

2. 進入我的釋出

  • 點選劍池CDK工具欄上的home圖示,進入劍池CDK Home Web頁面。
技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件
  • 點進賬号登入,進入登入界面, 輸入企業資質賬号和密碼後,點選确認。
技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件
  • 點選左側我的釋出,進入我的釋出,可以看到已經釋出的内容。
技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

3. 釋出晶片元件

點選右上角的上傳本地元件按鈕,檢視chip類型的元件,選擇你的晶片元件,然後點選确定。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

資訊提示依次填寫CPU和技術領域資訊後,點選确認上傳按鈕。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

4. 釋出開發闆元件

點選右上角的上傳本地元件按鈕,檢視board類型的元件,選擇你的開發闆元件,然後點選确定。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

按照對話框資訊提示依次填寫晶片、接入方式和技術領域資訊後,點選确認上傳按鈕。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

5. 釋出解決方案元件

點選右上角的上傳本地元件按鈕,檢視solution類型的元件,選擇你的解決方案元件,然後點選确定。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

按照對話框資訊提示依次填寫開闆、技術領域和應用領域資訊後,點選确認上傳按鈕。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

五 如何送出代碼到元件倉庫

 YoC的功能元件開源在GITEE代碼托管平台上,開發者在用劍池CDK完成晶片移植開發工作後,可以直接将代碼送出到YoC元件倉庫裡。

在進行晶片元件對接和送出前,需要做一下準備工作:

  • 一個GITEE賬号
  • Git Windows用戶端
  • 一些基本的Git指令使用,比如git clone/add/commit/pull/push/checkout等

2. 送出新增産品元件代碼

2.1. 建立新元件倉庫

如果是第一次送出該元件倉庫,可以聯系YoC管理者建立元件倉庫。預設建立倉庫包含master分支,釋出分支需要元件管理者自行建立。

2.2. 建立釋出分支

開發者先将元件代碼送出到master分支上,再利用GITEE倉庫分支管理功能建立釋出分支,其内容從master分支Clone過來即可。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

3. 送出現有産品元件代碼或功能元件代碼

3.1. Fork複制元件代碼到本地

登入自己的GITEE賬号,找到該元件倉庫後,點選右上角Fork按鈕下載下傳倉庫到本地。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

3.2. 建立開發分支

利用GITEE倉庫分支管理功能或者GIT指令從master分支建立新的開發分支。

3.3. 合并元件代碼

将開發更新後的該元件代碼PATCH合入該分支,再次确認編譯和測試均通過。

3.4. 送出到遠端倉庫發起PR

本地測試通過後就可以發送請求給元件管理者要求合并。點選Pull Request按鈕,填寫修改的标題和内容後,再點選建立來完成申請。

技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件
技術解碼 | YoC元件開發系列一:如何向OCC釋出晶片産品元件

3.5. 元件管理者完成稽核和合并

元件管理者收到New Pull Request後會根據修改内容進行稽核,如果判斷沒有問題,可以點選"接受Pull Request"按鈕,完成代碼合并。後續的開發者下載下傳下來的元件代碼就包含了本次改動。

繼續閱讀