李俊刚:我是如何在OpenHarmony完成ap6275s WiFi驱动的HDF适配工作的?
编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献、分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点。

开源之风盛行,有人站在门口跃跃欲试,有人已经进场大展身手。OpenAtom OpenHarmony(简称“OpenHarmony”)吸引了不少开发者和合作伙伴,各行各业的开发者投身其中,全方位地面向 OpenHarmony 社区进行开源贡献,李俊刚便是其中的一位。
李俊刚是深圳市开鸿数字产业发展有限公司的一名 OS 驱动开发工程师,自今年 1 月加入 OpenHarmony 生态以来,就着手 ap6275s WiFi 驱动的 HDF 适配工作,并在社区中上传项目代码,分享开源心得,用过硬的技术知识为社区朋友解答困惑,将深开鸿劳模精神、工匠精神深深植入到开源项目工作的各个工作环节,“每次贡献必须有意义,必须有实际影响”成为他身上的一种使命、一种责任。
今天,我们有幸邀请了这位代码贡献先行者李俊刚,一起聊聊加入 OpenHarmony 生态的初心、组建 OpenHarmony 开源项目团队的经历、开发过程中遇到的困难与收获等话题,以下为此次专访的对话内容。

Q:OpenHarmony A=李俊刚
Q1:请简要介绍下自己以及所在的开发团队
大家好,我是李俊刚,来自深圳开鸿数字产业发展有限公司,是 OS 研发部的一名软件工程师。今年 1 月份,我的团队开始着手 OpenHarmony 代码开发任务,主要涵盖了 ap6275s WiFi 驱动的 HDF 适配、AP 侧的开发和适配、STA 侧的开发和适配以及网络侧的 HDF 开发适配这五大板块的工作。
此次加入 OpenHarmony 社区,给了我许多不同于工作中开发项目的感受,也希望在此能为大家分享经验。
Q2:您最初为什么会选择加入OpenHarmony生态、参与开源共建呢?
开源已形成燎原之势,开源参与群体迅速扩大。
OpenHarmony 作为泛智能终端操作系统,拓展了万物互联重塑信息产业生态的新空间,使用了先进的分布式架构,对开发者非常友好,发展速度很快,这为深开鸿的目标实现提供了学习建设的平台,因此我们选择了 OpenHarmony 的技术路线,相信在平台及项目的强力支撑下,大力促进开源生态繁荣和可持续发展。
Q3:可以介绍下你们组建OpenHarmony开源项目团队的经历吗?
今年 1 月,我们组建了 OpenHarmony 开源项目团队,由于接到任务时间紧迫,前期我们在短时间内熟悉 HDF WiFi 框架后,根据功能模块进行分工领任务,熟悉驱动架构,通过团队间的相互协作配合,我们完成了代码的适配工作。
在后期阶段,我们主要围绕着 ap6275s WiFi 模组 HDF 适配工作展开。团队利用在操作系统的经验很快高效地完成了 ap6275s WiFi 模组 HDF 驱动需要的所有功能接口,包括 WiFi 驱动的 HDF 初始化流程,创建并注册网络接口流程,WiFi 基本控制侧、STA 侧、AP 侧、P2P 侧功能接口,事件上报接口以及与内核协议栈适配的网络侧接口集。
这些成果背后少不了 OpenHarmony 工作组和深开鸿研发团队热情的投入,少不了双方积极的交流与同步,更少不了双方对共同目标的支持与配合。
Q4:在整个开发进程中,您和您的团队遇到过哪些技术上或其他方面的难题呢?这些难题又是如何被逐一解决的?从中您得到了哪些收获?
我们刚组建了 OpenHarmony 开源项目团队的时候,以为带着多年积累的基础进入项目组更加游刃有余,但真正做起来发现,以标准参考进行研发不是一件简单的事,比如对 HDF WiFi 框架以及 CFG80211 框架的深入分析。
在完成 WiFi P2P 侧的适配过程中,由于原生驱动框架无法满足上层业务 p2p0 网络接口的要求,以及事件上报机制有所差异,我们需要对 WiFi 驱动源码进行很大的改造。通过团队夜以继日、努力配合、积极沟通,最终用了 2 个月的时间克服了难点,完成了此次开发适配工作。
开发的过程也给我带来了很多收获。首先,我意识到复杂的功能往往是从最简单的样例慢慢拓展迭代而来,一蹴而就是不现实的,我们经历了好几次大规模的重构,每次重构之后再回过头对比上个版本,都有如云壤之别。其次,平台给予了我们与专家进行交流的机会,通过交流学习能给彼此带来一些创新思路,这对于个人视野的拓展大有裨益。
Q5:您对OpenHarmony有什么建议吗?
任何事物在发展的初期阶段都存在不足,OpenHarmony 是一个新兴事物,在起步阶段尚未成熟,比如开发者网站界面不够简洁,宣传力度不够,这些亟需更多人加入 OpenHarmony 社区的共建,共同推动它的繁荣与发展。
我希望 OpenHarmony 社区能够吸引更多的个人开发者和学生加入,可以通过举办校园竞赛、线上活动等,提供开源项目学习与交流的平台,多给参与者,贡献者一些鼓励和培训,让人人都加入到社区中来。同时,可以通过完善文档资料,完善网站页面等,让开发者能够更快地了解和使用 OpenHarmony 平台。
Q6:OpenHarmony目前仍处在开发探索阶段,很多共建单位和生态伙伴还不清楚开源项目的玩法。可以请您给大家分享一条您认为最重要或最值得分享的心得吗?
首先,我建议加入 OpenHarmony 社区的开发者要找准自己的优势,结合自身在技术领域的强项,利用开源社区提供的资源,领取一些能力范围内的任务。
其次,积极寻求 OpenHarmony 社区各行业的技术大牛的指导,探讨学习,从交流中成长,从贡献中提升自我,我相信这样能帮助更多的开发者融入 OpenHarmony 的合作共建中。
Q7:请问您还有话想和大家说的吗?
操作系统应努力实现核心技术突破,把创新主动权、发展主动权牢牢握在自己手中。我们新一代开发者,有信心也有决心在创新上走得更快,走得更远!

搜索
复制
李俊刚:我是如何在OpenHarmony完成ap6275s WiFi驱动的HDF适配工作的?的更多相关文章
- 我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
- 【转】我是如何在SQLServer中处理每天四亿三千万记录的
原文转自:http://blog.jobbole.com/80395/ 首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文 ...
- (转)我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
- (转)我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
- 我是如何在SQLServer中处理每天四亿三千万记录的(转)
出处:http://www.cnblogs.com/marvin/p/HowCanIHandleBigDataBySQLServer.html 首先声明,我只是个程序员,不是专业的DBA,以下这篇文章 ...
- 告诉大家我是如何在14:00秒杀到 《深入理解Bootstrap》
1.打开火狐,不用IE,3个评论窗口,层叠在一起,可以点击3次哦. 2.打开一个百度的现在时间,不能看你本机的时间,要互联网的时间. 3.等时间到13:59:59,开始依次点击按钮,总有你预想不到的结 ...
- 刚买个炼狱蝰蛇1800dpi的下完驱动提示没有发现鼠标
2017-02-19补充:可以下载下面的程序 ,也可以访问 http://cn.razerzone.com/synapse/ 下载雷云 也可解决问题 ------------------------ ...
- 【转】如何在ubuntu12.04设置adb驱动
原文网址:http://www.xuebuyuan.com/1475698.html 在ubuntu上adb驱动不用像在windows上一样需要额外装,只需要写一个配置文件就可以,下面是设置的步骤: ...
- [administrator][driver] driverctl 是如何在udev上层管理设备驱动的
https://gitlab.com/driverctl/driverctl driverctl 处于 kernel 与 udev做设备与驱动管理的上层. 理解什么叫override是本文的核心内容. ...
- 如何在K8s,Docker-Compose注入镜像Tag
最近在做基于容器的CI/CD, 一个朴素的自动部署的思路是: 从Git Repo打出git tag,作为镜像Tag ssh远程登录到部署机器 向部署环境注入镜像Tag,拉取镜像,重新部署 下面分享我是 ...
随机推荐
- 在矩池云使用Llama2-7B的方法
今天给大家分享如何在矩池云服务器使用 Llama2-7b模型. 硬件要求 矩池云已经配置好了 Llama 2 Web UI 环境,显存需要大于 8G,可以选择 A4000.P100.3090 以及更高 ...
- 从零开始写 Docker(三)---基于 cgroups 实现资源限制
本文为从零开始写 Docker 系列第三篇,在mydocker run 基础上基于 cgroups 实现容器的资源限制. 完整代码见:https://github.com/lixd/mydocker ...
- java数组案例
数组: 数组就是用来存储一批同类型数据的内存区域(容器) 数组中的最大值实现方法: 数据拿到程序中去,用数组装起来. 定义一个变量,用于记录最大值.这个变量建议默认存储第一个元素作 ...
- Lua中pair和ipair的区别
Lua中pair和ipair的区别? 二者都是Lua中内置的迭代器,可以对数组或table进行遍历. 在正常的数组或table的遍历中,二者没有区别. tableNormal={"this& ...
- github git clone下载加速 && npm install 下载加速
git clone https://pd.zwc365.com/seturl/< https 开头的项目地址> npm install --registry=https://registr ...
- 基于python的每日固定时间执行实例解析
一 概念 datetime模块属性如下所示: 二 源码解析 该源码中,对时间库datetime应用十分到位,可以看作如下所示: import datetime import threading d ...
- ETL工具-KETTLE教程 实例实战4----转换(值映射、列转行,增加常量、增加序列等)
附:Kettle实战视频教程,需要的朋友可以看看学习下哈~~ kettle实战第一讲-文件和数据库表的互相转换处理_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili kettle实战第二讲-数据库单 ...
- [Raspberry Pi]树莓派多线程下串口收发数据
[Raspberry Pi]树莓派多线程下串口收发数据 鼠鼠用的是python开发树莓派,因为python是最优美的语言! 少废话,直接上代码: import threading import ser ...
- 记录--再也不用手动改package.json的版本号
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本文的起因是有在代码仓库发包后,同事问我"为什么package.json 里的版本还是原来的,有没有更新?",这个时候 ...
- vscode插件设置——Golang开发环境配置
适用读者: Go初学者, 到这里, 你应该是处于已经完成了 go 的安装之后, 准备写个 "Hello Gopher" 之前. 本篇力求给初学者-未来的Gopher 们 一个正确的 ...