李东山:如何让 OpenHarmony 支持低功耗蓝牙芯片 GR551x

【鸿蒙南向开发】浅谈OpenHarmony蓝牙模块 ​ 蓝牙是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多具有蓝牙模块的设备之间进行短距离无线信息交换,使得数据传输变得更加迅速高效。它是爱立信、IBM等5家公司在1998年联合推出的一项无线通信技术,随后成立的蓝牙技术特殊兴趣组织(SIG)来负责该技术的开发和技术协议的制定,如今全世界已有1800多家公司加盟该组织。​ 蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,使用IEEE802.15协议。 阅读详情

编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献、分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点。

李东山

深圳市汇顶科技股份有限公司

系统软件工程师

大家好,我是李东山,来自深圳市汇顶科技股份有限公司,目前是 BLE 产品开发部的一名研发工程师,从 2021 年 9 月我开始承担 BLE SoC GR551x 接入 OpenAtom OpenHarmony(简称“OpenHarmony”)生态的适配任务,截止今年 1 月代码已经通过评审并合入主干,很高兴和团队一起共同见证从 0 到 1,顺利合并入主干,这是我首次参与这种大型开源项目,我希望将项目开发过程中的感受和经历分享给大家。

Q=OpenHarmony A=李东山


Q1. 作为开发领域知名的技术大牛,您最初为什么会选择加入 OpenHarmony 生态、参与开源共建呢?您认为,OpenHarmony 项目最吸引人的点在哪里?

OpenHarmony 是一款面向全场景、全连接、全智能时代的分布式操作系统,它面向万物互联,非常契合我们 BLE SoC 产品应用方向,选择加入 OpenHarmony 生态,希望能一起参与共建 OpenHarmony 生态系统,为促进万物互联和千行百业的繁荣发展贡献我们的一份力量。

OpenHarmony 代码遵循 Apache 2.0 等商业友好的开源协议,所有企业、机构与个人均可基于 OpenHarmony 开源代码,结合自身优势,去做各领域的操作系统发行版及终端产品。

Q2. 您在什么时候组建了 OpenHarmony 开源项目团队?通过多久完成了 GR5515 Starter Kit 开发板的适配,核心代码已合入主干,现在被 OpenHarmony PMC 委员会推选为“代码月度贡献之星”,真的太了不起了!您方便给我们介绍一下这个产品吗,或者这段经历吗?这么短时间达成了这样好的效果,请问您的“秘诀”都有哪些呢?

我们是在 2021 年的 9 月开始投入资源适配 OpenHarmony。经过两个多月的努力,将我们首款 Bluetooth LE 轻量设备芯片 GR551x 系列 SoC 适配上 OpenHarmony,2021 年 11 月 18 日顺利通过 OpenHarmony 兼容性测评, 并于 2022 年 1 月 7 日正式合入 OpenHarmony 主干。

GR5515 Starter Kit 适配代码仓库


能够在短时间内完成开发板适配工作不仅是因为我们生态小组小伙伴们齐心协力,通力配合, 还得益于 OpenHarmony 完备的开发平台和工具链,优秀的代码框架,丰富的文档资源。刚开始我们的仓库在 SIG 上孵化,两次毕业答辩评审后代码合入主干,非常感谢社区的老师们给予了很多专业指导和支持。

Q3. 能开发出这么一个优秀的产品,将核心代码合入主干,您和您的团队一定付出了很多。可以请您给我们分享一下,开发这个产品的整个过程,包括前期、中期、后期,您们具体都做了哪些工作,投入了多少人力和资源吗?

开发板适配前期,我们对 OpenHarmony 轻量系统进行了学习和调研,充分评估可行性后开始尝试适配。万事开头难,刚开始适配 V1.1.2-LTS 版本,从搭建开发环境、熟悉构建系统、移植第一行代码,解决了很多难题,也踩过很多坑。终于,两周后系统在我们的 SoC 上稳定运行起来了。

项目中期我们升级到了 V3.0.0-LTS,3.0 版本引入了许多新特性,我们开始适配 HDF 驱动、BLE 接口、文件系统、低功耗等,并通过了兼容性测评。

项目后期我们与主干 master 版本对齐,master 版本引入 board 与 soc 分离的先进设计理念,我们对代码框架进行了大量重构优化,代码架构和规范都符合要求后,代码合入 OpenHarmony 主干。

汇顶科技非常看好 OpenHarmony,我们持续投入人力在该项目上,目前基本完成了首款 BLE Soc GR5515 芯片的适配工作,未来我们也会对适配的代码进行持续优化和维护,同时也会积极参与轻量系统的图形显示和 BLE IoT 方向的共建工作。

Q4. 在整个开发进程中,您和您的团队遇到过哪些技术上或其他方面的难题?这些难题又是如何被逐一解决?在这些难题被解决的过程中,您总结了哪些宝贵的经验 or 教训?

在开发初期,网上几乎没有对 ARM 架构的轻量系统移植适配的指导文档,构建环境也很复杂,可参考的开发板就 3 块,对于我这种刚接触 OpenHarmony 的小白来说,不知道怎么去加入我们的代码,不知道如何构建,差点被遇到的各种困难“劝退”。好在 OpenHarmony 自带了一款基于 RSIC-V 架构的开发板样例,通过深入研究其编译框架和适配细节后,我们将 SDK 移植到 OpenHarmony 并构建成功。

OpenHarmony 对 ARM 和 RSIC-V 架构支持已经非常全面,Cortex-M 内核相关的 arch 移植 liteos-m 已经帮我们做好,移植一款新的开发板只需重点聚焦在编译构建、BSP 移植、XTS 测试、业务功能开发上。

Q5. 加入 OpenHarmony 生态以来,您最大的惊喜是什么?或者有哪些具体的收获?

自从加入 OpenHarmony 生态以来,我切身感受到它发展的如此之快,从当初的 1.0 版本迭代到如今的 3.0 版本,每个版本都会带来许多实用的更新,开发板越来越多,文档也越来越丰富,社区交流日渐活跃,开发者参与共建也越来越容易。

我也一直在持续学习 OpenHarmony,学习过程中了解到了很多代码架构上的先进理念,为自己平时的开发工作带来了很大的帮助,我也一直坚持通过博客分享我的学习经历和开源移植案例。

Q6. 期待未来 OpenHarmony 哪些方面能够得到改善、提供更多支持?

OpenHarmony 经过一年多的快速发展,编译构建、代码架构、文档支持、社区建设方面都做得非常优秀。

我个人期待,OpenHarmony 其配套 IDE DevEco Device Tool 能早点普及,推动众多的开发板适配并支持,这样有利于给开发者和终端客户带来更便捷的体验。

Q7. OpenHarmony 目前仍处在开发探索阶段,很多共建单位和生态伙伴还不清楚开源项目的玩法,或不知该如何着手进行开发。可以请您给大家分享一条,您认为最重要或最值得分享的心得吗?

开源项目的输出将为开发者提供更多的学习途径,点亮众多开发者前行的道路。

我在开发过程中遇到了很多技术上的困难,寻求不到别人的帮助时,通过研读别人的开源代码找到了灵感和思路,开源其实也是一种互相学习,共同进步的高效途径。

Q8. 开放性问题,可以畅所欲言,请问您还有话想告诉大家?

非常感谢 OpenHarmony,为我们提供了如此优秀的操作系统,很高兴自己能够参与开源共建,为开源贡献出自己的一份微薄力量。从刚开始的“懵懂”小白,跟着 OpenHarmony 一起成长,虽然过程中充满了挑战,但也收获很多。我真切感受到 OpenHarmony 的迅猛发展,希望有更多企业、开发者一起参与共建 OpenHarmony 繁荣生态。

【鸿蒙】OpenHarmony 4.0蓝牙代码结构简析 本文基于OpenHarmony 4.0版本对蓝牙代码架构/目录分层原则做了简单分析,同时分析了4.0版本的重要改动点《鸿蒙(Harmony OS)开发学习手册》入门必看1.应用开发导读(ArKTS)2.……HarmonyOS概念1.系统定义2.技术框架3.技术特性4.系统安全快速入门1.基本概念2.构建第一个ArkTS应用3.……开发基础知识1.应用基础知识2.配置文件3.应用数据管理4.应用安全管理5.应用隐私保护6.三方应用调用管控机制。 阅读详情

相关推荐

OpenHarmony实战开发-如何进行蓝牙连接

蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的连接。2.构建UI框架,整体的UI框架分为TitleBar(页面名称),PinDialog(配对蓝牙弹框),index(主页面)三个部分。4.设置蓝牙扫描模式并开启扫描去发现设备,并订阅蓝牙设备发现上报时间获取设备列表。5.设置蓝牙扫描模式并开启扫描去发现设备,并订阅蓝牙设备发现上报时间获取设备列表。本例基于以下环境开发,开发者也可以基于其他适配的版本进行开发。

m0_70749039的博客 1984

OpenHarmony - WIFI和蓝牙适配方案 & 关键流程

介绍OpenHarmony中的WiFi框架,WiFi驱动框架;介绍OpenHarmony中的WiFi适配方法;介绍WiFi适配过程中遇到的问题;介绍蓝牙框架,蓝牙适配方法,厂商库和OpenHarmony接口的差异以及适配注意点

OpenHarmony实战开发-蓝牙设置开发指导

蓝牙设置主要提供了开启蓝牙、关闭蓝牙、获取蓝牙状态的方法,帮助开发者实现基本蓝牙功能。

m0_70749039的博客 1290

[OpenHarmony RK3568] 蓝牙芯片适配

这一步建立一个ohos_build_part,意思是把主机上vendor /{product_name}/bluetooth/BCM43438A1.hcd这个文件,安装到开发板上的vendor/etc/firmware文件夹下,由于我们这里product_company是hihope,product_name是rk3568,所以我们应该把我们的固件放到SDK的vendor/hihope/rk3568/bluetooth下,它就会自动安装到开发板上。硬件芯片:AW-NM372S。芯片模组:43438A1。

jn_IT的博客 2153

OpenHarmony4.0系列(二)驱动适配方法

本文主要记录RK3568 kernel 驱动开发方式及调试手段

Only love Can resist the Long Years! 唯有热爱,可抵岁月漫长! 2447

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(下)

OpenHarmony Camera驱动模型结构HDI Implementation:对上实现HDI接口,向下调用框架层的接口,完成HDI接口任务的转发。Buffer Manager:屏蔽不同内存管理的差异,为子系统提供统一的操作接口,同时提供buffer轮转的功能。Pipeline Core:解析HCS配置完成pipeline的搭建,调度pipeline中的各个node完成流的处理Device Manager:通过调用底层硬件适配层接口,实现查询控制底层设备、枚举监听底层设备的功能。

鸿蒙开发知识记录 2939

RTK串口蓝牙适配OpenHarmony-5.0.0-Release要点记录

RTK串口蓝牙适配OpenHarmony-5.0.0-Release要点记录

cew333的博客 2208

【鸿蒙实战开发】基于短距离通信的BLE蓝牙扫描

ACCESS_BLUETOOTH 权限是很多蓝牙接口需要申请的,比如:ble.getConnectedBLEDevices(获取和当前设备连接的BLE设备)、ble.startBLEScan(发起BLE扫描流程)。ble扫描的是低功耗蓝牙,相比于connection扫描结果偏少,如果想要扫描到系统设置中的所有设备,需要去调用@ohos.bluetooth.connection模块中的connection.startbluetoothdiscovery。BLE为低功耗蓝牙,只能扫描到低功耗的蓝牙设备。

CTrup的博客 1365

RK3568 OpenHarmony V3.2 Beta5 开发之板级驱动适配(二)

Openharmony驱动适配实战

liucan633的博客 4072

OpenHarmony实战:轻量级系统内核移植

芯片架构的移植是内核移植的基础

m0_64420071的博客 2149

如何写一个简单轻松的OpenHarmony蓝牙应用

此文件就是介绍 OpenHarmony 中的蓝牙接口和如何自己开发一个简单的蓝牙应用程序。

m0_70749039的博客 1513

OpenHarmony开发——移植安全子系统

安全子系统提供网络设备连接、认证鉴权等功能,依赖mbedtls实现硬件随机数以及联网功能。由于每个厂商芯片硬件与实现硬件随机数的方式不同,需要适配硬件随机数接口。

m0_71263309的博客 599

RK3568 OpenHarmony3.2 蓝牙模块AP6275S适配(已更新)

OpenHarmony3.2 Release版默认是适配AP6275s这款蓝牙芯片的,但是打开蓝牙,发现无法扫描到设备、连接设备。目前平台soc为RK3568,根据项目要求,自定义外设。接下来将以解决bug为目的,学习和记录OpenHarmony平台下蓝牙模块的适配流程。RK809 CLK:32.768KHzUART1M1:与蓝牙模块通讯的串口:GPIO4_B6:GPIO4_A5WAKE_GPIO:未定义,硬件拉高1.8V: 未定义,悬空主要是打开串口,/dev/ttyS1,得到文件描述符fd。

Martian_Jonas的博客 2245

RK3568适配RTL8723 蓝牙驱动

RK3568适配RTL8723

badogyang的博客 2101

基于FSL的DTI数据预处理流程

最近在学习处理DTI数据,总结了一份应用FSL做DTI数据预处理的流程与大家交流交流。如果有错误的地方欢迎大家指正!        我用的数据是Philips的数据,如果是GE或者西门子的数据可能会有所不同。   原始数据:包括3DT1数据和高分辨率DTI数据,均是dicom格式。 工具:MRICRON和FSL,所有的命令均在Linux的终端中运行。   1.格式转换:将后缀名为dcm

zaza_zaza的博客 2万+

告别编译噩梦:Vcpkg+Cmake一站式集成Tesseract-OCR C++开发环境(Windows)

本文详细介绍了如何在Windows系统上使用Vcpkg和CMake快速集成Tesseract-OCR C++开发环境,解决传统编译过程中的依赖问题。通过一键安装和自动化配置,开发者可以高效搭建OCR识别系统,支持中英文识别,并提供了常见问题的解决方案和进阶技巧。

weixin_29009339的博客 231

推荐开源项目:让蓝牙开发变得简单的神器 —— SimpleBluetoothLibrary

推荐开源项目:让蓝牙开发变得简单的神器 —— SimpleBluetoothLibrary 在移动应用开发领域,尤其是对于那些寻求与硬件设备无缝对接的开发者来说,蓝牙功能的集成始终是一个挑战。但今天,我们为你揭示一款名为 SimpleBluetoothLibrary 的开源库,它承诺将蓝牙技术的复杂性降至最低,让你专注创意而不被技术细节束缚。 项目介绍 SimpleBluetoothLibrary...

gitblog_00099的博客 1151

YOLO26改进策略【YOLO和Mamba】| MLLA:Mamba-Like Linear Attention,融合Mamba设计优势的注意力机制

本文记录的是利用模块优化的目标检测网络模型。模块具有独特优势。它不同于传统模块,能同时兼顾局部特征高效建模与长距离交互学习。常见模块要么在局部特征处理上有优势但长距离交互能力弱,要么反之,而模块克服了此问题。它融合了Mamba模型和线性注意力机制的优势,通过独特的结构设计,能够在保持计算效率的同时,精准地建模局部特征并学习长距离交互信息。本文将其用于的模型改进和二次创新,能够更加关注图像中的重要特征区域,抑制背景等无关信息的干扰,从而突出目标物体的关键特征。Demystify Mamba in Vision

Limiiiing的博客 213

OpenHarmony 蓝牙相关API用法

本示例通过使用蓝牙低功耗心率服务,展示蓝牙相关API用法。发现具有特定服务的设备。连接到设备。发现服务。发现服务的特征、如何读取给定特征的值、为特征设置通知等。相关概念BLE扫描:通过BLE扫描接口实现对BLE设备的搜索。BLE连接:通过BLE的GattClientDevice实现对BLE设备的连接、断连等操作。接收数据:通过BLECharacteristicChange接收特征值的改变。

1 1872

博途PLC如何建立与笔记本电脑端的连接?(新手必会)

对S7-1500PLC下载硬件组态或程序,需要建立PC与PLC的连接。 由于S7-1500CPU都具有PN端口,因此建立PC与S7-1500PLC的连接通常使用工业以太网来实现。 1.使用网线连接PC-PLC 使用网线,一端连接PC的以太网卡端口,另一端连接S7-1500CPU的PN端口。 2.设置本机IP地址 2.1 确认本机要设置的IP地址段 本机IP地址要和PLC程序组态IP地址段前三位保持一致,后一位使用组态中没有用到的IP地址段。如下图所示。 那么看了这个图片应该就知道了,地址应该设置成192.

weixin_42430971的博客 1万+

数学建模Matlab算法,第七章 对策论

对策论作为研究竞争与决策的数学理论,从零和对策到非常数和对策,为分析各类博弈问题提供了系统框架。其核心要素包括局中人、策略集和赢得函数,通过稳定解、Nash平衡点等概念揭示竞争规律。该理论广泛应用于经济、军事、政治等领域,不仅提供具体分析工具,更改变了决策思维方式,强调在互动中实现理性选择。对策论既揭示了竞争本质,也凸显合作价值,为解决社会矛盾、促进共赢发展提供了重要启示,在全球化背景下将发挥更大作用。

unber的博客 106

OpenHarmony鸿蒙蓝牙BLE调试app

OpenHarmony蓝牙模块提供了ble的功能,本篇提供一个简单的app供测试时使用。代码使用API10,对应4.0Release版本固件。

pjie131_的博客 1522

机器学习项目实战案例数据集

本专栏整理了《机器学习项目实战案例》,内包含了各种不同的机器学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 3633
上一篇: 直播预告丨OpenHarmony标准系统多媒体子系统之音频解读
下一篇: 【直播回顾】OpenHarmony知识赋能五期第四课——子系统音频解读
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值