YoC组件开发系列一:如何向T-HEAD OCC发布芯片产品组件

简介: 本文介绍的是如何向T-HEAD 平头哥开发社区(简称OCC)发布一个全新的产品芯片组件和现有的组件,同时也从芯片ISV的角度说明如何贡献芯片产品组件到OCC以及推送代码到组件仓库。

YoC组件开发系列一:如何向T-HEAD OCC发布芯片产品组件

YoC组件开发系列之Revision v1.0

一. 前言

平头哥开发社区(简称OCC)里的芯片空间立志于打造贯穿全链路的基础设施平台,构建普惠芯生态。芯片厂商在对接完YoC移植或芯片开发者完成一个新的产品解决方案后,可以向平头哥OCC发布该产品组件且向平头哥YoC提交一个完整的组件,后续根据代码审核意见进行修改和完善后,最终会被合并到YoC的主分支上。

如果通过CDK下载YoC最新源码仓库到本地,打开hellworld例程,在sdk_chip_ch2201节点下的cb2201和chip_ch2201组件就是芯片的BSP组件了。如果有读者朋友使用过平头哥CH2201芯片,欢迎使用体验该芯片BSP组件或者提交BUG。image.png
关于CH2201芯片产品信息,可以前往平头哥OCC查询也可以点击这里直接获取。image.png
本文介绍了如何向平头哥OCC发布芯片产品组件和向平头哥YoC贡献代码,如有不正确的地方欢迎大家纠正,希望大家和平头哥一起打造普惠芯片。

注意:YoC作为一个开源项目,其遵循协议是Apache-2.0 License。 这个协议有一下几个特点:

永久权利
一旦被授权,永久拥有。
全球范围的权利
在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。
授权免费,且无版税
前期,后期均无任何费用。
授权无排他性
任何人都可以获得授权
授权不可撤消
一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码
开源协议虽然不一定具备法律效力,但是当涉及软件版权纠纷时,开源协议也是非常重要的证据之一。

二. 芯片产品组件代码维护方案

产品组件代码的维护有两个方案:

方案A:开发者创建公开仓库进行管理,需要将组件代码推送到组件仓库里,同时也允许其他开发者贡献组件代码到仓库里。如何将组件代码提交到组件仓库里,请参考第三章节__如何提交代码到组件仓库__。
方案B:开发者创建私有仓库进行管理。
两种方案的不同点

方案

组件版本发布管理

代码仓库管理

方案A

支持

跟随组件发布版本迭代

方案B

支持

自行代码迭代

三. 芯片开发移植工作

这个是整个芯片产品开发移植最重要、也是最繁琐最耗时的一步。针对平头哥玄铁处理器内核,可以参考YoC芯片对接流程,如果是其他的处理器内核,可以先参考YoC最小系统实现方法。

芯片开发移植工作完成后,会有生成一个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. 准备工作

申请企业入驻,注册获取企业资质账号。如果申请企业资质,请点击这里。

发布的芯片产品可以申请产品1520认证。如果需要了解产品1520认证流程,请点击这里。

芯片产品组件包括以下三部分:

芯片发布, 点击这里了解芯片发布流程。
开发板发布, 点击这里了解开发板发布流程。
解决方案发布,点击这里了解解决方案发布流程。

  1. 进入我的发布

点击CDK工具栏上的home图标,进入CDK Home Web页面。
image.png
点进账号登录,进入登录界面, 输入企业资质账号和密码后,点击确认。
image.png
点击左侧我的发布,进入我的发布,可以看到已经发布的内容。image.png

  1. 发布芯片组件

点击右上角的上传本地组件按钮,查看chip类型的组件,选择你的芯片组件,然后点击确定。image.png
按照对话框信息提示依次填写CPU和技术领域信息后,点击确认上传按钮。

image.png

  1. 发布开发板组件

点击右上角的上传本地组件按钮,查看board类型的组件,选择你的开发板组件,然后点击确定。后image.png
按照对话框信息提示依次填写芯片、接入方式和技术领域信息后,点击确认上传按钮。image.png

  1. 发布解决方案组件

点击右上角的上传本地组件按钮,查看solution类型的组件,选择你的解决方案组件,然后点击确定。image.png
按照对话框信息提示依次填写开板、技术领域和应用领域信息后,点击确认上传按钮。image.png
五. 如何提交代码到组件仓库

YoC的功能组件开源在GITEE代码托管平台上,开发者在用CDK完成芯片移植开发工作后,可以直接将代码提交到YoC组件仓库里。

  1. 准备工作

在进行芯片组件对接和提交前,需要做一下准备工作:

一个GITEE账号
Git Windows客户端
一些基本的Git命令使用,比如git clone/add/commit/pull/push/checkout等

  1. 提交新增产品组件代码

2.1. 创建新组件仓库

如果是第一次提交该组件仓库,可以联系平头哥YoC管理员创建组件仓库。默认新建仓库包含master分支,发布分支需要组件管理者自行创建。

2.2. 创建发布分支

开发者先将组件代码提交到master分支上,再利用GITEE仓库分支管理功能创建发布分支,其内容从master分支Clone过来即可。image.png

  1. 提交现有产品组件代码或功能组件代码

3.1. Fork复制组件代码到本地

登录自己的GITEE账号,找到该组件仓库后,点击右上角Fork按钮下载仓库到本地。image.png
3.2. 创建开发分支

利用GITEE仓库分支管理功能或者GIT命令从master分支创建新的开发分支。

3.3. 合并组件代码

将开发更新后的该组件代码PATCH合入该分支,再次确认编译和测试均通过。

3.4. 提交到远程仓库发起PR

本地测试通过后就可以发送请求给组件管理者要求合并。点击Pull Request按钮,填写修改的标题和内容后,再点击创建来完成申请。

image.png
3.5. 组件管理员完成审核和合并

组件管理员收到New Pull Request后会根据修改内容进行审核,如果判断没有问题,可以点击"接受Pull Request"按钮,完成代码合并。后续的开发者下载下来的组件代码就包含了本次改动。

相关文章
|
6月前
|
IDE API 开发工具
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Counter容器组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Counter容器组件
144 1
|
6月前
|
IDE API 开发工具
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Blank组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Blank组件
145 1
|
网络协议 物联网 数据处理
RISC-V生态全景解析(十二):YoC组件介绍系列二:AT组件
自上期开始,我们开启了YoC组件系列内容的介绍,并带大家了解了YoC的CSI组件。本期将为大家介绍的是YoC的AT组件。本文将详细阐述AT组件的使用原理,开发所需要的其他依赖组件资源,以及在网络方面的应用,以帮助广大开发者熟悉AT组件的使用。
562 0
RISC-V生态全景解析(十二):YoC组件介绍系列二:AT组件
|
安全 物联网 测试技术
RISC-V生态全景解析(十六):YoC组件发布开源操作指南
芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。
342 0
RISC-V生态全景解析(十六):YoC组件发布开源操作指南
|
jenkins 物联网 测试技术
RISC-V生态全景解析(十一):YoC组件介绍系列一: CSI组件
编辑语: 芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。
627 0
RISC-V生态全景解析(十一):YoC组件介绍系列一: CSI组件
|
存储 Java 开发者
RISC-V生态全景解析(十五):YoC组件介绍系列五: KV组件
芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。
456 0
RISC-V生态全景解析(十五):YoC组件介绍系列五: KV组件
|
存储 缓存 安全
RISC-V生态全景解析(十四):YoC组件介绍系列四: PARTITION组件
芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。
425 0
RISC-V生态全景解析(十四):YoC组件介绍系列四: PARTITION组件
|
存储 编解码 缓存
RISC-V生态全景解析(十三):YoC组件介绍系列三:AV(多媒体)组件
编辑语: 芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。
632 0
RISC-V生态全景解析(十三):YoC组件介绍系列三:AV(多媒体)组件
|
存储 JSON 前端开发
RISC-V生态开发套件解析(十):Waft UI基础教学(下)
随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。
486 0
RISC-V生态开发套件解析(十):Waft UI基础教学(下)