登录社区云,与社区用户共同成长
邀请您加入社区
I2C(Inter Integrated Circuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。由于其硬件连接简单、成本低廉,因此被广泛应用于各种短距离通信的场景。I2C通常用于与各类支持I2C协议的传感器、执行器或输入输出设备进行通信。当驱动开发者需要将I2C设备适配到OpenHarmony时,需要进行I2C驱动适配,下文将介绍如何进行I2C驱动适配。
系统属性部件syspara_lite负责提供获取与设置操作系统相关的系统属性,包括默认系统属性、OEM厂商系统属性和自定义系统属性。本文主要介绍如何使用syspara_lite系统属性部件的接口,然后详细介绍下syspara_lite系统属性部件的各个接口。⑴处获取设备类型,⑵处获取厂商名称,⑶处获取品牌名称。其他系统属性接口调用的例子类似,详细的接口说明下文会提供。本文介绍了如何使用syspar
通过对自定义弹窗的讲解,希望能让大家学到如何在项目中实现自己的自定义弹窗。
常用的网络协议就是TCP / UDP,我采用的是TCP协议,让hi3861作为服务端,外部应用做为客户端连接hi3861, 这个方式主要是为了方便,hi3861运行中再设置参数很麻烦,不如就被动接入,用TCP协议发现发送没有被接收,可以认为客户端以断开,就可以关闭网络,或者重启网络。觉得这个功能也许有些场合能用上,实现过程挺碎的,如果代码看不懂,就加我QQ:1164192255,也许能交换出更好的
烧录常见问题..........
通过VFS层提供了POSIX标准的操作,保持了接口的一致性,但是因为M核的资源非常紧张,VFS层非常轻薄,没有提供类似A核的高级功能(如pagecache等),主要是接口的标准化和适配工作,具体的事务由各个文件系统实际承载。加载过程中,根据ELF文件的句柄以及程序头表的段偏移可以得到需要加载到内存的LOAD段,一般有两个段,只读段及读写段,如下所示,可以用readelf -l查看ELF文件的LOA
本文是对分布式任务调度之系统服务管理中的一些基础框架、数据和操作总体概述,包含底层内存管理、底层队列操作、底层线程管理、时间操作、令牌桶操作、vector操作、系统功能存储结构等。这也是Samgr部分中的最后一个子主题。它们作为底层操作为上层服务和功能间的交互提供相应的支持。分析思路采用1篇总体概述+n篇代码标注的方式进行技术分享。在本文中提到的数据结构或函数的详细分析可以在文末的附录中找到,其中
看门狗(Watchdog),又称看门狗计时器(Watchdog timer),是一种硬件计时设备。
上一篇博客OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(1)介绍了hichain实例获取的部分内容,本文将继续进行分析。在上一篇博客介绍的函数中,在进行完密钥等信息的初始化之后,调用函数创建属于本端的长期保存的密钥对,这个密钥对初步分析是用于设备之间的身份可信认证。创建密钥对部分可分为四个阶段:1、获取协议参数。2、生成服务id。3、生成密钥别名。4、生成长期保存的密
本文介绍了HarmonyOS中的okio库,它是一个优化系统输入输出的库,提供数据流处理、序列化和文件读写能力。文章首先列出了往期相关技术推文,随后详细说明了okio的安装和使用方法,包括15个核心API示例:Buffer类的Utf8、Int、String等数据读写操作,ByteString的Base64/Hex/Utf8编解码,以及文件读写功能。最后提供了完整的接口说明表,涵盖Buffer类的主
OpenHarmony 芯片移植完成后,需要开展 OpenHarmony 兼容性测试以及芯片 SDK 功能性测试。OpenHarmony 兼容性测试是 XTS(OpenHarmony 生态认证测试套件)之一,详见OpenHarmony 兼容性测试。定位问题时,可在“test/xts/acts/build_lite/BUILD.gn”中,将不需要的测试项注释,以便调试。芯片移植完成后需要客户验证 S
本文主要记录了分布式软总线的基本概念,架构,以及框架的代码组成介绍,后续实际用上后再记录分布式软总线子系统使用。
本文以移植名为 MyProduct 的开发板为例讲解移植过程,假定 MyProduct 是 MyProductVendor 公司的开发板,使用 MySoCVendor 公司生产的 MySOC 芯片作为处理器。在名称的目录下创建一个 config.json 文件,该文件用于描述产品所使用的 SOC 以及所需的子系统。配置如下:},...主要的配置内容配置项说明(必填)产品名称version(必填)版
本文将继续介绍设备之间的身份认证过程的相关细节,关于加密数据包的不同类型的处理。本文主要分析数据包类型为MODULE_TRUST_ENGINE的处理过程。源代码主要位于wifi_auth_manager.c文件的函数OnModuleMessageReceived()中。
RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。如上图所示,每个设备对象会独立发布一个设备服务来处理外部访问,设备管理器接收到API的访问请求之后,通过提取该请求的参数,达到调用实际设备对象的相应内部方法的目的。这种模式可以直接借助HDF设备管理器的服务管理能力,但需要为每个设备单独配置设备节点,
OpenHarmony系统功能按照“系统 > 子系统 > 部件”逐级展开,支持根据实际需求裁剪某些非必要的部件,本文以部分子系统、部件为例进行介绍。若想使用OpenHarmony系统的能力,需要对相应子系统进行适配。OpenHarmony芯片适配常见子系统列表如下(详见表1),需结合具体芯片再做增删减操作。表1 OpenHarmony子系统子系统作用应用程序demo。可将应用相关源码存放在此目录下
【鸿蒙OH 5.0】OpenHarmony轻量系统服务管理|进程间通信的客户端代理详解(二)
Purple Pi OH作为一款兼容树莓派的开源主板,采用RK3566四核A55处理器,主频高达1.8GHz,NPU算力高达1Tops,支持INT8/INT16,支持开源鸿蒙,Android 11,Debian 10,Ubuntu,麒麟OS等操作系统。Purple Pi OH专为个人移动互联网设备和AIOT设备而设计,可广泛应用于平板、教育平板、带屏音箱、词典笔、云终端、视频会议系统等应用方案,以
配置产品加载驱动,产品的所有设备信息被定义在源码文件//vendor/bearpi/bearpi_hm_micro/hdf_config/device_info/device_info.hcs中。moduleName要与驱动文件中定义的相同,deviceMatchAttr要与驱动私有配置信息文件gpio_config.hcs中定义match_attr的相同。系统启动时会根据//vendor/bea
鸿蒙轻内核A核的物理内存采用了段页式管理,每个物理内存段被分割为物理内存页。在头文件中定义了物理内存页结构体,以及内存页数组及数组大小。物理内存页结构体LosVmPage可以和物理内存页一一对应,也可以对应多个连续的内存页,此时使用nPages指定内存页的数量。/**< 物理内存页节点,挂在VmFreeList空闲内存页链表上 *//**< 物理内存页内存开始地址*//**< 物理内存页引用计数
discovery_service.h头文件提供与设备服务发布相关的功能,包括发布服务、取消发布服务、设置设备参数。当发现附近的多个设备并将其联网后,可以使用这些接口进行业务发布的相关操作。PublishFailReason 为发布失败的原因。发布失败的原因在发布失败后,会在发布失败回调函数输出原因。DataBitMap 为设备发布支持的功能。定义设备类型枚举和设备类型名称之间的映射。枚举设备信息
bootstrap_lite部件会编译//base/startup/bootstrap_lite/services/source/bootstrap_service.c,该文件中,通过SYS_SERVICE_INIT将Init函数符号灌段到__zinitcall_sys_service_start和__zinitcall_sys_service_end中,由于Init函数是没有显式调用它,所以需要
实现代码在。#define MAX_SYSCAP_NAME_LEN 64 //系统能力名称的最大长度#define MAX_SA_SIZE 0x100 //sa中最大数目#define RETRY_TIMES 3 //重试次数#define RETRY_INTERVAL 1 //重试间隔#define MAX_SYSCAP_NUM_PER_REPLY 118//对于syscap,每次响应的最大数目
OpenHarmony致力于打造一套更加开放完善的IoT生态系统.....
本文围绕的主题是中消息处理的流控机制,相关的代码实现位于。在对代码的分析中,发现鸿蒙系统自己实现了一个令牌桶算法来做流量控制。算法的原理是以一种恒定的速率生成令牌,如果需要处理消息就从桶中获取令牌,若有则允许执行,若没有则拒绝。#define TOKEN_PRE_MSG 1000 //消息处理大小int rate;//每毫秒生成令牌的速率,现在使用TPSint burst;//令牌桶的突发大小//
本文介绍如何通过调用OpenHarmony的NDK接口....
本文分析了鸿蒙系统(HarmonyOS)中利用cJSON处理CoAP设备服务发现数据的过程。文章重点解析了两个核心函数:PrepareServiceDiscover()用于准备服务发现数据,包括获取设备信息、创建cJSON对象并添加设备信息、WiFi IP和功能位图;ParseServiceDiscover()则用于解析接收到的服务发现数据,包括提取设备信息、WiFi配置、功能位图等。文中还展示了
2、打开Win32DiskImager软件,选择镜像文件位置,点击“写入”,即可烧写镜像到sd卡。需要安装在win主机下软件:超级终端HyperTerminal、WIin32磁盘印象工具、11、在HyperTerminal终端输入“./my_first_hps”命令运行示例程序。10、在HyperTerminal终端输入“root”(无需输入密码,直接回车)需要准备一张sd卡做系统盘、读卡器、DE
摘要 本文介绍了使用CMake和Makefile移植三方库到OpenHarmony平台的方法,重点以double-conversion库为例说明CMake方式的移植流程。首先获取源码并分析目录结构,然后通过修改工具链配置实现交叉编译,生成OpenHarmony平台的可执行文件。文章详细展示了工具链设置、编译执行步骤以及测试方法,包括环境搭建、测试用例执行等关键环节。该指南适用于Hi3516DV30
SDIO由SD卡发展而来........
本文介绍了鸿蒙系统开发中TLV数据转换的相关函数实现,包括: 结点获取 - 通过类型从TLV链表中查找对应结点 大小端转换 - 将不同字节长度的整数从大端转为小端模式 类型转换 - 将默认int类型数据转换为指定类型 数据转换 - 提供多种整数类型的转换函数(8/16/32/64位有符号/无符号) TLV数据获取 - 获取特定类型的TLV数据值 代码示例展示了如何处理TLV格式数据,进行端序转换和
本文分析了OpenHarmony设备认证模块中HiChain实例获取的关键源码,重点解读了hichain.c文件的get_instance函数实现过程。主要包括: 检查会话标识信息和回调函数的有效性(check_identity和check_call_back) 初始化密钥信息(key_info_init) 创建HiChain实例并初始化其属性 创建长期密钥对(build_self_lt_key_
在文件定义的CPUP控制块结构体为OsCpupCB,结构体源代码如下,allTime记录该任务自系统启动以来运行的cycle数,startTime记录任务开始运行的时间,历史运行时间数组的10个元素记录最近10秒中每一秒中每个任务自系统启动以来运行的cycle数,其他结构体成员的解释见注释部分。/**< 任务编号 *//**< 任务状态 *//**< 总共运行的时间 *//**< 任务开始时间 *
本文介绍了如何利用WCH公司的IoCHub协议实现跨网段串口透传,为PuTTY增加远程登录功能。
用于转换 tlv 数据,处理 tlv 的结点情况,将不同类型的数据进行整合。
SDIO(Secure Digital Input and Output)由SD卡发展而来,与SD卡统称为MMC(MultiMediaCard),二者使用相同的通信协议。SDIO接口兼容以前的SD卡,并且可以连接支持SDIO接口的其他设备。SDIO的应用比较广泛,目前,有许多手机都支持SDIO功能,并且很多SDIO外设也被开发出来,使得手机外接外设更加容易。常见的SDIO外设有WLAN、GPS、C
客户端收到来自服务端的响应消息之后,针对消息内容进行相关处理并再次发起sts end请求,目的在于发送可信认证数据,使得服务端可以验证客户端的身份。本文将对这个过程进行详细介绍。/*函数功能:构造json格式的认证ack请求消息函数参数:data:待发送数据函数返回值:成功:json格式的字符串失败:NULL*///将原始的authdata字节数据转换为十六进制的字符串//为json字符串申请空间
本文介绍了鸿蒙系统authmanager模块的设备认证处理流程,重点分析了wifi_auth_manager.c文件中数据接收和处理的核心代码。
CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。物理层支持HS(High Speed)和LP(Low Speed)两种工作模式。HS模式下采用低压差分信号,功耗较大,但数据传输速率可以很高(数据速率为80M~1Gbps
/启动引导服务,该服务由samgr使用,并由系统服务开发人员实现//定义功能最大数目//定义功能名的最大长度。
点击Connect,连接串口设备,这时HiBurn会打开串口设备,并尝试开始烧写,需要确保没有其他程序占用串口设备(烧写之前可能正在用超级终端或串口助手查看串口日志,需要确保其他软件已经关闭了当前使用的串口);等待输出框出现三个"=========================================="以及上方均出现successful,即说明烧录成功;事实上,这个文件.vsix文件是
coap_discover.c实现了基于coap的设备发现功能的细节。在之前说过coap_service.c在实现coap服务发现的前期工作中做了许多前期初始化功能和注册服务的工作,这些功能函数是调用nstackx_device.c提供的接口函数,而nstackx_common.c中的接口函数又调用coap_discover.c中提供的函数接口。所以在coap_discover.c中实现了具体的初
本文详细介绍了鸿蒙5.0系统中LCD、触摸屏(TP)和WLAN驱动的移植方法。
应用孵化器,负责接受应用程序框架的命令孵化应用进程.....
PWM(Pulse Width Modulation)即脉冲宽度调制,是一种对模拟信号电平进行数字编码并将其转换为脉冲的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。通常情况下,在使用马达控制、背光亮度调节时会用到PWM模块。PWM用于脉冲宽度调制,当驱动开发者需要将PWM设备适配到OpenHarmony时,需要进行PWM驱动适配。下文将介绍如何进行PWM驱动适配。
LCD驱动编程,通过对显示器上电、初始化显示器驱动IC内部寄存器等操作,使其可以正常工作。
为实现用户个人数据在多个终端设备间的安全传输,设备认证模块提供将多个设备安全连接起来的能力,通过设备间信任关系建立和设备通信时信任关系验证保证安全性。主控设备和配件设备基于PAKE协议完成认证会话密钥协商,并基于该会话密钥,安全的交换各自身份公钥。当建立过信任关系的主控设备与配件设备间进行通信时,双方将相互交换身份公钥,并通过检查本地是否存储对端身份信息的方式确认对端与本设备的信任关系。进一步地,