[toc]WIFICore在WLANHDI的那篇文章中,命令最终被发送到HDFWIFI驱动模块,该驱动的实现就在hdfwificore.c中:cstructHdfDriverEntryghdfWifiEntry{.moduleVersion1,.BindHdfWifiDriverBind,.InitHdfWlanMainInit,.ReleaseHdfWlanDriverRelease,.moduleName"HDFWIFI"};HDFINIT(ghdfWifiEntry);WIFICore驱动对消息的处理流程如图:由于WIFICore所涉及的对象多且复杂,最好先来了解这些对象是如何生成的,再看他们是如何使用。一、...
2022-04-09 09:57:49 9350浏览 2点赞 0回复 1收藏
[toc]WLANmessage来自HDIclient端的命令主要分三个类型:BaseCommands、APCommands、STACommands。针对不同类型的CMD,也有三个服务来响应这些命令,分别是basefeature、apfeature、stafeature。这三个feature定义在driversframeworkmodelnetworkwificorecomponents下。一、ServiceDef驱动设计了一套message机制来响应来自HDI的命令,我们先把HDI的命令理解为message,才能使用这套机制,本文用于了解wlanmessage。MessageDef:...
2022-04-09 09:49:33 8707浏览 3点赞 0回复 1收藏
下面就以createFeature()为例,学习feature的函数是如何发送命令到wifi驱动的。ccreateFeature调用CreateFeatureInnerstaticint32tCreateFeatureInner(int32ttype,structIWiFiBaseFeatureifeature){initfeatureretInitFeatureByType(type,ifeature);retFindValidNetwork(type,ifeature);returnHDFSUCCESS;}根据不同类型的feature,调用不同的接口staticint32tInitFeatureByType(int32ttype,structIWiFiBaseFeatureifeature){int...
2022-04-09 09:48:02 8033浏览 0点赞 0回复 0收藏
[toc]WLANHDI关于WLANHDI的介绍,可见官网文档[wlan·OpenHarmonydriversperipheral码云开源中国(gitee.com)](https:gitee.comopenharmonydriversperipheraltreemasterwlan),其结构可如图所示:WLANHDI目的是提供接口给WiFiService调用,其提供的功能有:启动关闭WLAN,查看连接状态,注册回调函数,启动wlan扫描等。一、WILANHALWLANHAL模块作为HDI的中间层,提供给WiFiserviceIWiFi对象,以及IWiFiSta、IWiFiAp、IWiFiBaseFea...
2022-04-09 09:45:26 8058浏览 2点赞 1回复 0收藏
FlowContrlWIFI驱动可以选择是否使用FlowControl来缓存网络数据的收发。以下是FlowControl的定义,可以看到有两个线程分别负责处理收发数据的逻辑,有对应的两个信号量来完成线程的同步,以及由进程状态的变量,还有由netbuf组成的两个收发队列,这些是FlowControl模块使用到的数据。cstructFlowControlModule{OSALDECLARETHREAD(txTransferThread);发送数据OSALDECLARETHREAD(rxTransferThread);接收数据structOsalSemsem[FLOW...
2022-04-09 09:39:00 6462浏览 1点赞 0回复 1收藏
NetDevWIFI芯片属于网络设备,自然也要归OpenHarmony的网络框架管理,本文用于了解网络数据如何在协议栈和网络驱动之间传输。网络设备的使用需要配合网络协议栈,OpenHarmony的网络协议栈有两种,一种是liteosa内核使用的lwip协议栈,一种是标准系统linux内核网络协议栈。本文以lwip协议栈为例来了解。一、前提网络数据的通路:(这里的网口驱动是具体wifi芯片的驱动程序,由厂商实现。)发送数据:应用程序lwip网口驱动接受数...
2022-04-09 09:37:22 7737浏览 2点赞 0回复 1收藏
[toc]一、摘要本文介绍如何使用OpenHarmony的Input框架模型,并编写app,在按键事件处理中翻转led灯。下面是演示:https:player.bilibili.complayer.htmlaid894148373本文目的在于通过学习input框架模型,对openharmony的驱动系统有一个大体的理解。通过本文的学习,应该能够理解如图的驱动框架:二、开发环境硬件:小熊派microKEY驱动程序在openharmony中已经完成了key驱动程序的编写。源码在:driversframeworkmodelinputdriv...
2022-04-09 09:34:01 9513浏览 3点赞 0回复 1收藏
PWMCore在上一篇中中,我们使用到了pwmif.h,将我们实现的pwm驱动注册到pwm核心层,本文就来介绍这个pwmcore是如何实现的,以及这个核心层的作用。PwmDev在pwmcore中,定义了一个PwmDev,它是对所有pwm外设的一个抽象的描述:cstructPwmDev{structIDeviceIoServiceservice;驱动服务structHdfDeviceObjectdevice;驱动对象structPwmConfigcfg;pwm配置structPwmMethodmethod;底层pwm驱动实现的方法boolbusy;忙标志uint32tnum;pwm设...
2022-04-09 09:25:58 7894浏览 0点赞 0回复 0收藏
小熊派microHDFPWM驱动开发本文介绍如何在HDFPWM框架中开发stm32mp1的pwm外设。stm32mp1的大部分外设可以使用st提供的HAL库来开发。hal库是st官网为所有st芯片提供的sdk包,使开发者可以免去操作寄存器的操作,直接使用库函数完成芯片外设的配置。STM32MP1HAL库地址:[mirrorsSTMicroelectronicsSTM32CubeMP1(gitee.com)](https:gitee.commirrorsSTMicroelectronicsSTM32CubeMP1)为了使STM32MP1的PWM驱动适配到HDF框架,就需要...
2022-04-09 09:24:10 8875浏览 3点赞 0回复 3收藏
WLANModel本系列文章准备深入了解OpenHarmony的WLAN驱动模型,由于WLAN驱动模型非常庞大,我尝试根据WIFI驱动模型的设计特点来给整个模式分模块进行介绍,本文是本系列文章的导读。学习OpenHarmony的最好途径就是从官网的文档入手,我们可查看官网对于WLAN驱动模型的介绍:[zhcndevicedevdriverdriverperipheralsexternaldes.md·OpenHarmonydocs码云开源中国(gitee.com)](https:gitee.comopenharmonydocsblobmasterzhcndeviced...
2022-03-05 08:02:44 1.3w浏览 3点赞 1回复 3收藏