登录社区云,与社区用户共同成长
邀请您加入社区
此外,大会上多家企业代表分享实践成果,为行业伙伴提供全流程支撑,助力生态规模化商用提速。OpenHarmony芯片模组使能共建仪式上,华为、龙芯中科、海思、触觉智能等企业,围绕芯片适配、模组研发、系统优化等关键环节深化协同,未来将共同完善OpenHarmony底层硬件支撑体系,推动国产“芯片+操作系统”生态发展进入快车道。未来,深圳触觉智能将持续深耕OpenHarmony芯片模组领域,迭代硬件与软
Windows系统Hi3861开发板编译报错解决方案摘要 当在Windows系统使用Hi3861开发板时,安装HUAWEI DevEco Device Tool过程中出现UnicodeDecodeError编译报错,表现为UTF-8解码失败。该问题根源在于Windows默认使用GBK编码(代码页936),而现代开发工具链倾向使用UTF-8编码,导致冲突。 解决方法: 打开控制面板→时钟和区域→区域
本文系统性地介绍了操作系统中断机制的核心概念,包括中断源、中断控制器和CPU的协同工作,以及中断处理流程中的关键环节。通过生动的"海公公"比喻,阐释了中断控制器作为CPU与外设之间仲裁者的重要作用。文章详细讲解了中断的硬件架构、中断源分类(外部/内部)、中断类型(PPI/SGI/SPI)以及中断处理过程中的优先级管理、中断请求触发机制等核心概念。最后提及中断向量表作为中断服务程
本文详细介绍了在Niobe WiFi IoT开发板上使用CMSIS 2.0接口实现信号量开发的完整过程。文章首先分析了osThreadNew()、osSemaphoreNew()、osSemaphoreRelease()和osSemaphoreAcquire()等核心API的功能参数,然后通过Thread_Semp1和Thread_Semp2两个线程的交互示例,展示了信号量的创建、释放和获取操作。
鸿蒙系统调用全流程解析:从用户态到内核态的七段代码追踪 本文通过一张流程图和七段代码详细剖析了鸿蒙操作系统从用户态到内核态的系统调用全过程。关键环节包括: 应用程序通过mq_open发起系统调用 库函数将调用号存入R7寄存器,参数存入R0-R3 SVC指令触发模式切换至内核态 汇编处理程序_osExceptSwiHdl保存用户现场 内核根据调用号执行注册函数SysMqOpen 处理完成后恢复用户现
本文介绍了鸿蒙内核的时间管理机制,系统以Tick为基本时间单位,通过g_sysClock系统时钟提供服务。核心内容包括: 时间单位转换 用户使用秒/毫秒计时 系统以Tick为单位,默认每秒100Tick(10ms/Tick) 提供LOS_MS2Tick/LOS_Tick2MS进行毫秒-Tick转换 时钟层级 时钟周期(Cycle):硬件晶振决定的最小计时单位 Tick周期:操作系统基本时间单位,用
测试任务Example_TaskEntry创建一个信号量,锁任务调度,创建两个任务Example_SemTask1、Example_SemTask2,Example_SemTask2优先级高于Example_SemTask1,两个任务中申请同一信号量,解锁任务调度后两任务阻塞,测试任务Example_TaskEntry释放信号量。Example_SemTask2得到信号量,被调度,然后任务休眠20
本文介绍了鸿蒙系统基于ARMv6架构LDREX和STREX指令实现的原子操作机制。通过汇编指令确保对共享内存的"读取-修改-写入"操作具有原子性,防止多任务访问导致的数据不一致问题。文章详细解析了LOS_AtomicAdd和LOS_AtomicSub等关键函数的实现原理,包括C语言内嵌汇编代码的运作过程,以及volatile关键字在保证内存访问一致性中的作用。这些原子操作接口为
本文介绍了鸿蒙开发中GPIO中断接口的使用案例,通过按键控制LED灯的开关效果。案例详细解析了GPIO中断函数IoTGpioRegisterIsrFunc的使用方法,并提供了包含软件防抖机制的中断回调函数实现代码。文章还指导了如何修改BUILD.gn文件进行编译调试,以及运行结果的预期效果。特别提示了开发板使用前需要短接核心板引脚的操作注意事项。该案例是鸿蒙设备开发中GPIO中断应用的典型示例,具
本文介绍了OpenHarmony芯片解决方案的编译环境搭建与开发流程。主要内容包括:1. 编译环境配置,涵盖llvm和gcc工具链安装;2. 新建芯片解决方案的步骤,详细说明目录结构规则和配置文件编写;3. 开发板编译选项配置方法,重点解析config.gni关键参数;4. 编译脚本编写示例,以hispark_taurus开发板为例展示BUILD.gn文件;5. 最后介绍通过hb命令启动编译的调试
本文介绍了在鸿蒙Niobe Wifi IoT开发板上使用CMSIS 2.0接口进行定时器开发的方法。文章首先分析了osTimerNew()和osTimerStart()两个核心API的功能和使用要点,然后详细讲解了软件设计思路:通过创建两个周期性定时器(1秒和3秒间隔),分别触发对应的回调函数打印日志。编译调试部分说明了如何修改BUILD.gn文件将示例代码加入编译,最后展示了运行结果:定时器1每
本文核心内容:详细解析如何在Niobe WiFi IoT开发板上使用CMSIS 2.0接口实现多线程开发,包括osThreadNew()函数原理、代码实现及调试方法;
CPU工作模式解析:鸿蒙内核中的特权与异常处理 摘要:本文深入剖析了CPU的七种工作模式(用户模式、快速中断、普通中断、管理、终止、系统和未定义模式),揭示了鸿蒙内核如何通过特权等级和异常处理机制构建安全稳定的系统环境。重点分析了三种核心技术实现: 栈空间分配方案:每种模式独立分配栈空间(如管理模式8K),并支持多核扩展; 异常入口机制:遵循ARM架构的固定入口地址表,建立从开机代码到各类异常处理
这篇文章介绍了鸿蒙全栈开发中的GPIO接口使用指南。主要内容包括: GPIO接口概述:定义了操作GPIO管脚的标准方法集合,如设置方向、读写电平、中断配置等。 接口分类说明:详细列出了初始化、方向配置、读写操作、中断配置等各类接口的功能描述。 使用指导: 提供了GPIO使用流程图 强调需要结合开发板电路图确定GPIO管脚号 包含开发板电路原理图示例 注意事项: 方向暂不支持高阻态 电平值可为低电平
本文包含两部分内容:鸿蒙开发系列文章推荐和内核技术要点解析。 鸿蒙开发系列文章探讨了移动开发行业前景、鸿蒙应用与系统开发比较、嵌入式开发转型、大前端开发者转鸿蒙等问题,并提供了鸿蒙全栈学习笔记。 内核技术解析重点讲述了: 任务(线程)是CPU执行指令的基本单位,内核通过任务调度管理CPU资源 多线程的实现机制,包括main函数和新线程的入口处理 定时器是通过高优先级系统任务实现的 Percpu结构
鸿蒙内核互斥锁机制解析 本文深入剖析了鸿蒙内核中的互斥锁实现机制。互斥锁主要用于解决线程间共享内存竞争问题,与自旋锁形成互补。鸿蒙默认采用递归锁设计,允许同一线程多次加锁。文章详细解读了互斥锁的数据结构、初始化流程和三种申请模式(无阻塞、永久阻塞、定时阻塞),并重点分析了核心函数OsMuxPendOp的实现逻辑。当高优先级任务等待低优先级任务释放锁时,系统会临时提升低优先级任务的优先级,确保锁能及
本文介绍了鸿蒙设备认证模块中服务端处理认证请求的过程。源码分析显示,服务端首先通过parse_auth_start_request函数解析客户端发送的认证start请求,获取操作码、挑战值、公钥等关键信息;然后调用build_sts_server_object创建STS服务端对象,该对象通过获取协议参数并验证有效性后,最终构建出包含密钥长度和认证ID的STS服务端结构体。代码中展现了鸿蒙安全认证的
本文通过拆解一个简单C程序的汇编代码,帮助读者理解鸿蒙内核汇编语言的基本原理。文章首先强调汇编语言的本质是数据搬运,主要发生在内存和寄存器之间。然后以square、fp和main三个函数为例,详细分析其对应的汇编指令执行过程,包括栈空间分配、参数传递、函数调用和循环控制等核心概念。通过对比C代码和汇编代码,展示了高级语言到机器指令的转换过程,为后续理解鸿蒙系统的6个核心汇编文件打下基础。文章指出,
本文主要分析了鸿蒙设备认证模块中客户端接收PAKE协议end响应的处理流程。首先通过parse_pake_server_confirm函数解析响应消息负载,提取kcfData字段;然后receive_pake_end_response函数接收响应并验证消息有效性;最后parse_end_response_data函数完成验证对端proof数据并生成服务密钥的关键操作。整个流程涉及JSON解析、状态
鸿蒙内核任务(Task)结构深度解析 鸿蒙内核中线程(Thread)与任务(Task)概念等价,任务结构体LosTaskCB包含丰富的控制信息: 核心字段:栈指针、状态标志、优先级(0-31)、调度策略、时间片、任务ID和入口函数 同步机制:支持信号量、互斥锁、事件等待等多种同步方式 多核优化:包含CPU亲和性掩码(支持16核)、上次运行核记录等SMP相关字段 扩展功能:信号处理、死锁检测、调度统
鸿蒙内核调度机制解析 本文探讨了鸿蒙操作系统内核中的任务调度机制,重点分析了: Task与线程概念:广义相同但管理体系不同,Task是调度单元而线程是进程层面概念 状态迁移过程:详细说明了进程和线程在Init→Ready、Pend→Ready等状态间的转换条件 调度触发机制:四种主要触发方式包括时钟中断(Tick)、硬件中断、程序主动中断和进程创建时抢占式调度 调度实现细节:通过源码分析展示了fo
本文深入分析了OpenHarmony设备认证中PAKE协议的服务端响应流程,主要包含以下内容: 源码解析重点: 服务端通过parse_pake_request函数解析客户端请求 详细处理操作码、版本号、256位模运算支持等关键字段 采用JSON解析和内存管理机制确保数据安全 版本号处理: 通过parse_version函数解析当前版本和支持的最低版本 使用内存分配和字符串分割技术处理版本信息 安全
本文重点分析了鸿蒙系统HiChain模块中的消息处理阶段,特别是构建HiChain子对象的关键函数build_object。该函数通过对象映射表动态创建不同类型的子对象(如PAKE客户端/服务端、STS客户端/服务端等),并执行严格的互斥检查和依赖验证。源码分析展示了如何根据模块类型和角色(客户端/服务端)获取并初始化相应对象,确保系统安全性和功能完整性。文章还提供了完整的鸿蒙开发学习资源链接,涵
那就是个奴才们能把主子给活活踩死, 想想主奴不分,吃喝拉撒睡都在一起,称兄道弟的想干啥? 没规矩不成方圆嘛,这事业肯定搞不大,单片机时代就是这种情况. 裸机编程,指针可以随便乱飞,数据可以随意覆盖,没有划定边界,没有明确职责,没有特权指令,没有地址保护,你还想像java开发一样,只管new内存,不去释放,应用可以随便崩但系统跑的妥妥的?想的美! 直接系统死机,甚至开机都开不了,主板直接报废了. 所
鸿蒙内核采用段页式物理内存管理机制,核心结构包括: VmPhysSeg:物理段描述符,管理内存段信息 包含段起始地址、大小、页框数组 使用伙伴算法(freeList)和LRU页面置换算法(lruList) 支持最多32个内存段 VmPage:物理页框描述符 记录页框物理地址、引用计数、所属段ID等 通过双向链表管理页框 引用计数机制类似Java内存回收 初始化过程: 首先配置物理内存区域(默认1个
本文介绍了鸿蒙(HarmonyOS)设备认证中PAKE协议启动过程的源码分析。重点剖析了start_pake函数启动PAKE模块的流程,包括参数检查、构建PAKE客户端对象等关键步骤。文章展示了如何通过build_object函数构建HiChain子对象,并深入解析了build_pake_client_object函数的具体实现,涉及PIN码验证、参数有效性检查等安全机制。该过程标志着协议状态从P
本文分析了OpenHarmony设备认证中PAKE协议的服务端响应流程。重点解读了服务端处理PAKE_START请求的源码实现,包括proc_pake_request_message消息分发函数、send_pake_start_response响应构造函数等关键环节。通过状态检查、参数验证、消息解析等步骤,服务端完成对客户端PAKE_START请求的响应处理。该机制为OpenHarmony设备间安
本文提供了丰富的鸿蒙开发学习资源,包含北向/南向开发知识点、职业发展分析和面试经验等多篇推文链接。在技术层面,重点分析了HiChain接收数据后的错误通知处理流程: 错误处理逻辑:接收数据时若出现错误,会进入inform阶段,通过encap_inform_message函数封装错误码到消息负载 消息构造机制:build_send_data_by_struct函数根据消息类型调用相应的构造方法,包括
本文介绍了OpenHarmony编译子系统的架构与使用方法。编译子系统基于GN和Ninja构建,提供部件化抽象功能,支持轻量、小型、标准三种系统版本构建。系统架构分为模块、部件、子系统、产品四个层级,通过配置文件实现编译和打包。编译流程包括hb设置产品和hb编译两步,环境配置需安装相关软件包。文章还详细说明了命令行和hb两种编译方式的操作命令,并指出产品、部件等配置需遵循的规则。整体呈现了Open
本文深入解析鸿蒙内核中的核心数据结构LOS_DL_LIST双向链表,它是系统运行的关键基础。文章通过生动的比喻(将指针比作"触手")和清晰的图示,展示了双向链表在鸿蒙系统中的广泛运用和精妙设计。作者详细讲解了双向链表的基本概念、功能接口(包括初始化、插入、删除等操作)以及强大的宏支持,强调理解这一数据结构对掌握鸿蒙内核至关重要。文中还提供了实用的工具建议(如Source Ins
文章系统介绍了HarmonyOS分布式应用框架的核心技术。该框架通过分布式调度、数据管理和硬件虚拟化等能力,实现多设备协同、跨端迁移和硬件自动跟随等创新功能。架构分为五层,从底层软件到应用接口,为开发者提供统一编程模型。关键特性包括:3+1组件开发模式(PageAbility/DataAbility/ServiceAbility+AbilityForm)、多端协同框架(跨设备组件启动/数据传递/状