李俊刚:我是如何在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,拉取镜像,重新部署 下面分享我是 ...
随机推荐
- 协程与yield表达式
在函数内,yield语句可以作为表达式使用,出现在赋值运算符的右边,例如: def receiver(): print("Ready to receive") while True ...
- Python函数每日一讲 - 简洁快速学会globals()函数
引言 在 Python 中,globals() 函数是一个强大的工具,它允许您访问全局命名空间中的所有变量和函数.本文将深入探讨 globals() 函数的语法.用法以及实际应用场景,帮助大家更好地理 ...
- 【Azure 应用服务】Azure SignalR 是否可以同时支持近十万人在线互动
什么是 Azure SignalR 服务? Azure SignalR Service 简化了通过 HTTP 向应用程序添加实时 Web 功能的过程. 这种实时功能允许服务将内容更新推送到连接的客户端 ...
- 【Azure API 管理】讨论APIM是否适合直接存储文件到Azure Storage Account呢?
问题描述 需要从 APIM 直接将大文件存入Azure Storage,没看到这方面的官方文档,所以是否有这方面的实践案例,或者APIM是否支持引用SDK (如Azure Storage SDK)? ...
- 解决element-ui的date-picker组件的picker-options属性不生效的问题
网上查半天都没查到,好像没人写,于是俺怀着激动的心情来记录下 项目来需求,说要控制日期选择的最大最小范围,看似简单,实则藏深坑! 小白的我天真地按照网上的例子(主要是官网也不给一个!)写完如下: 1. ...
- 借助 Terraform 功能协调部署 CI/CD 流水线-Part 1
在当今快节奏的开发环境中,实现无缝.稳健的 CI/CD 流水线对于交付高质量软件至关重要.在本文中,我们将向您介绍使用 Bitbucket Pipeline.ArgoCD GitOps 和 AWS E ...
- SSK:超级键盘模拟器,调用底层,可模拟所有按键
SSK - 吵架键盘模拟器 SuperSimulator of Keyboard 调用系统底层,能够模拟所有键盘操作! 本程序结合快Key(QuicKeys智能登录助手)一起使用,能够创造更多奇迹! ...
- CompletableFuture Demo
CompletableFuture Demo 题目:有一个数据库client,从数据库中取数据A和数据B,然后求和.请使用并发的知识,尽快的完成操作. /** * {@code @author:} k ...
- 探究WPF中文字模糊的问题:TextOptions的用法
有网友问WPF中一些文字模糊是什么问题.之前我也没有认真思考过这个问题,只是大概知道和WPF的像素对齐(pixel snapping).抗锯齿(anti-aliasing)有关,通过设置附加属性Tex ...
- end_of_line = lf 选择行尾序列 .editorconfig - 老项目不动代码存盘 文件变动 CRLF 的问题 vscode
end_of_line = lf 选择行尾序列 .editorconfig - 老项目不动代码存盘 文件变动 CRLF 的问题 缘由 vscode 老项目代码,没有变动,ctrl + s后 文件有变化 ...