平头哥 YoC 平台——支持从芯片到云全链路高效设计的 IoT 全栈技术平台(三)| 学习笔记

简介: 快速学习平头哥 YoC 平台——支持从芯片到云全链路高效设计的 IoT 全栈技术平台

开发者学堂课程【极简开发 - 平头哥 YoC 平台如何帮助开发者快速入门  AIoT :平头哥 YoC 平台——支持从芯片到云全链路高效设计的 IoT 全栈技术平台(三)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/735/detail/13098


平头哥 YoC 平台——支持从芯片到云全链路高效设计的 IoT 全栈技术平台(三)

五、让芯片 SDK 开发更快速

在 YoC 中,主要解决两个问题,第一个问题是让开发者快速的开发产品,第二个问题是芯片公司能够快速对接。

1.CSI—芯片 SDK 开发平台

该平台由 IP 仓库、芯片 SDK 快速开发、OCC 组成。

IP 仓库提供了很多仓库中 RIP 的驱动,例如 GPIO、USB、SDIO 等等,其主要驱动和技术手册,测试用例度、文档等等技术都在 IP 仓库中。

芯片 SDK 快速开发,是为了解决芯片的快速开发,通过提供一个芯片描述文件,该描述文件可以快速的与仓库之间选取芯片所使用的 IP,同时根据其提供的定义可以快速的生成芯片上的驱动。例如芯片的 SDK ,甚至还会生成芯片对应的软件模拟机器,这样可以在芯片没有开发出来之前就能做整个软件的开发,还包括芯片的驱动测试例集、技术文档和手册。还会提供一个芯片自动化的验证平台来运行 keys 、解决芯片开发的过程中可能会添加新的渠道,能够将测试结果通过不停的迭代输出,保证驱动的质量。

当一个程序开发完成后,可以利用 OCC 提供的组件、资源将其打包,生成芯片的 SDK 。

image.png

自动化:

SDK、技术手册、测试用例生成

芯片模拟器生成(QEMU)

持续集成系统(CI)

优势:

代码符合 IEC61508 工业标准

针对嵌入式的代码密度优化(可以在很小的芯片的诉求到大的芯片诉求进行很好的运行)

上千条测试用例集保障代码质量

对接  Alios-Things 操作系统(对接后,无论是上面所说的上层的应用组件,上层的方案可以快速的运行)

2.CSI—自动化测试框架

在该框架中,有板级的自动化流程,通过测试用例等配置,包括一些测试文件的信息,然后可以自动的执行。还提供日志的分析,整个测试过程如下:

image.png

最后会形成测试报告,测试过程会根据下面连接,例如被测试机,被测试的机器和辅助测试的机器通过一些文件进行测试,测试的模块可以通过自动化流程把其进入下发的测试机中,然后即可自动化的进行测试的润利。

该测试包括:

测试覆盖:边界测试、性能测试

多种触发方式:(开发时)提交代码时触发、定时触发、(开发人员)人工触发等

扩展测试用例:只需添加更改配置文件即可(将测试用例通过配置加载到测试框架中,然后将自己开发的驱动加入到该测试框架中,即可进行自动化的运行,有了该测试框架可以进行快速的代码迭代,芯片开发团队和软件开发团队就可以快速的提交代码、验证等任务,时刻保证质量)

测试执行效率:比手工执行提升50倍以上

测试报告:直观的 web 页面展示

自动化测试可以保证芯片最终输出的质量,质量对芯片来说非常重要。

3.芯片开发环节

整个开发中,简单的将其分为三个环节,分别是芯片定义、开发驱动芯片 SDK 、发布芯片 SDK 组件。

image.png

第一步是芯片定义

在芯片定义中,在每个芯片中会有芯片描述文件,通过描述文件定义芯片描述的信息。

chip.yaml 文件由五个部分组成,第一个部分是厂商自定义字段,第二部分是 cpu 型号,第三部分是 clock 字段,定义了芯片的使用源,第四部分 devices 字段定义了芯片包含的外设,包括外设名称、外设版本、基本地址。输入指令生成 danacia sdk 软件包,该软件包由组件组合而成,sdk 软件包中还包含新建的 ati 手册,danica 目录下包含所有的实例工程,包括操作系统实例工程、外设驱动实例工程以及自动化测试软件包。

通过芯片的定义能够快速的生成芯片的 SDK,在 SDK 中将生成芯片的用户手册(手动编写用户生成比较麻烦)。所以自动生成用户手册,还有测试用户的测试代码,和整个的实例工程都可以通过自动生成。

第二步是开发驱动芯片 SDK

做一个芯片除了平台提供的默认驱动外,可能还会增加一些自己的 IP 驱动,因此用户可以开发自己的驱动。在整个过程看,整个 SDK 过程中包的组件、芯片的组件,还提供模拟器,整个开发过程可以直接在模拟器上运行出芯片的结果,包括前面介绍的 CDK 的开发工具,开发的平台保证芯片开发的质量。

演示:

打开 SDK 包装的工程,可以看到 CDK 的内容以图片的形式存在,打开 sdk 文件,通过图形化界面可以进行芯片的功能配置,编写完毕后到 flag 中进行运行,打开窗口中端,按下服务按钮即可看到工程正常运行。

第三步:发布芯片 SDK 组件

可以看到目录结构中提供的各种设备实例工程,包括代码,都可以快速的运用。在把新的 IP 驱动开发后,提供自动化的测试并且有一个好的质量的输出后,可以将芯片发布到 OCC 平台。

演示:

自动化测试触发后,发现计算机正在进行 spi 的测试,连接到另一台机器查看,看到机器正在进行 gpio 的测试。

说明整个的过程都在自动化的完成。

通过三个步骤,测试完后的组件通过一键的 CDK 一键发布的方式就可以将芯片的 SDK 发布到 OCC 的官网。

4.回顾:

第一步是芯片定义,把芯片的信息通过 chip.yaml 的文件形式将其描述,然后生成驱动模板,基础的组件。第二步是在工程中通过 CDK 的计算开发工具增加芯片的特有的驱动,然后通过测试化的平台不断的测试和验证整个开发的过程,这样可以提高开发的时间,保证 CDK 的质量。开发完成后通过第三步完成芯片的发布。

前面通过两个环节介绍了在整个 OCC 开发平台中,芯片开发社区中,解决两类工作。第一类是开发者可以通过 OCC 的开发社区能够直接得到平台的解决方案、组件,能够快速的做封装产品的开发,能够得到芯片公司资源的支持。另一方面是芯片的厂家,可以通过 SDK 的开发工具、开发的组件,能够快速将芯片的 SDK 生成,然后接入到 平台。这样从上游的芯片公司到下游的开发商和开发者,可以很好的在芯片开发社之间进行互动来完成整个生态的快速连接。

在 OCC 中,有1520计划,能够加速合作伙伴(芯片公司和开发者)共同构建 AIoT 芯生态,共同打造这样的社区。

image.png

相关文章
|
SQL 机器学习/深度学习 数据挖掘
云端数据科学平台Deepnote,相当于云上的Jupyter Note
云端数据科学平台Deepnote,相当于云上的Jupyter Note
478 0
|
JavaScript
VUE~富文本简单使用~tinymce
VUE~富文本简单使用~tinymce
1006 0
VUE~富文本简单使用~tinymce
|
8月前
|
监控 安全 Cloud Native
海外泼天流量丨浅谈全球化技术架构
全球化是对技术架构的终极挑战,面临的不仅仅是技术的问题,而是包含了经济、文化等多因素差异的用户关系问题。积极借助遍布全球的云计算基础设施和云原生的架构设计原则,将能更加高效的构建高可用的全球化技术架构,支持全球业务的持续增长。
382 109
|
存储 监控 安全
TG7100CWiFi&BLE双模芯片 一键连接AIoT平台让你快速自定义智能方案
面对市面上眼花缭乱的双模芯片,许多应用方案商往往挑花了眼,不知道该选择哪款。今天我们推荐是天猫精灵联合平头哥推出的TG7100CWiFi&BLE双模芯片。它具有低功耗、宽工作温度等特点,广泛适用于智能家居,电工照明等领域。
TG7100CWiFi&BLE双模芯片 一键连接AIoT平台让你快速自定义智能方案
|
Unix Linux C++
Linux命令size的深入解析
`size`命令在Linux中用于查看目标文件的内存布局,显示代码、数据和BSS段的大小,助力程序优化和资源管理。支持多种输出格式、基数和与其他命令结合使用进行递归分析。常用参数包括设置格式(-A)、基数(-m)、人类可读(-h)和总计(-t)。通过示例展示了如何查看单个或多个文件的大小,并与`find`结合遍历目录。使用时注意文件访问权限和选择合适的输出选项。
|
云计算
阿里云短信群发费用
阿里云短信群发费用,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
246 0
|
安全 网络协议 前端开发
< 了解 HTTP 这一篇就够了 :什么是 HTTP ?HTTP 和 HTTPS 有什么区别 ? >
在前端开发中,是和浏览器打交道最为频繁的行业之一。但是大部分卷王们,可能仅仅是知道如何使用浏览器,只是知道 URL 跳转到浏览器变成一个完整的网页。 本篇文章将讲述 什么是HTTP、 HTTP 和 HTTPS的区别 及 URL 是如何渲染到页面。 那么到这里,肯定会有人问: 那我们为什么要学习这个呢 ? 问得好,这个分为两方面: 一是学习上述内容,能够厚实我们的理论基础。有些内容,虽然用的不多,但是技多不压身,道理懂吧? 二是学习这个,对我们后续的性能优化、排查浏览器上某些错误 的能力都有提升!
1024 0
< 了解 HTTP 这一篇就够了 :什么是 HTTP ?HTTP 和 HTTPS 有什么区别 ? >
|
边缘计算 编解码 算法
平头哥 YoC 平台——支持从芯片到云全链路高效设计的 IoT 全栈技术平台(一)| 学习笔记
快速学习平头哥 YoC 平台——支持从芯片到云全链路高效设计的 IoT 全栈技术平台
平头哥 YoC 平台——支持从芯片到云全链路高效设计的 IoT 全栈技术平台(一)| 学习笔记
|
缓存 API Android开发
快速开发android,离不开这10个优秀的开源项目
作为一名菜鸡Android,时常瞻仰大佬们的开源项目是非常必要的。这里我为大家收集整理了10个优秀的开源项目,方便我们日常开发中学习!
3007 0
|
人工智能 开发框架 JavaScript
HaaS历代记与选型推荐
我手中有六个型号的HaaS开发板,陪伴和等待HaaS的成长。当我觉得HaaS型号太多的时候,就决定要写一个选型指南。但当我看到当前支持的开发板之后,发现本文更像是一片历代记或者是HaaS开发板的阅兵式。
1072 0
HaaS历代记与选型推荐