XR806支持的OpenHarmony属于 轻量系统(mini system)
轻量系统是面向MCU类处理器例如Arm Cortex-M、RISC-V 32位的设备,硬件资源极其有限,支持的设备最小内存为128KiB,可以提供多种轻量级网络协议,轻量级的图形框架,以及丰富的IOT总线读写部件等。可支撑的产品如智能家居领域的连接类模组、传感器设备、穿戴类设备等。
XR806-OpenHarmony系统框图如下:
从下到上分别是:
内核层(Kernel)- 系统驱动层(System Driver)- 系统服务层(System Server)-用户层(User Space)

内核层使用的是OpenHarmony的LiteOS-M。LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点。其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等。OpenHarmony LiteOS-M内核架构包含硬件相关层以及硬件无关层,其中硬件相关层按不同编译工具链、芯片架构分类,提供统一的HAL(Hardware Abstraction Layer)接口,提升了硬件易适配性,满足AIoT类型丰富的硬件和编译工具链的拓展;其他模块属于硬件无关层,其中基础内核模块提供基础能力,扩展模块提供网络、文件系统等组件能力,还提供错误处理、调测等能力。
详见:https://www.openharmony.cn/#/documents/device-dev-kernel/device-dev-kernel-1/kernel-mini-overview
系统驱动层主要提供安全、存储、时钟、音频和接口等模块的框架和驱动,包括:NOR Flash、Trust Zone、Flash Crypto、CE、EFUSE、PSRAM、CCM、PRCM、NVIC、Timer、RTC、WDG、XIP、DMA、Cache、Audio Codec、Smart Card、Cmsis Core、UART、PWM、I2C、I2S、GPIO、IR、SPI、GPADC等
系统驱动层主要提供系统运行及用户层开发用到的基础系统框架、库和工具等。
作为核心功能,XR806 OpenHarmony SDK提供了完善的BLE协议栈和WiFi协议栈。
BLE部分包括BLE Controller、Link Layer/PHY Driver等。
WiFi部分包括WLAN Control、LMAC driver、UMAC、Supplicant、Hostpad等。
基于WiFi协议栈之上,对常用的网络服务进行了封装和支持,包括:TCP/IP Stack、Web Socket、MQTT、DNS、Mebed
TLS、HTTP Client、HTTP Server、iPerf、SNTP、DHCP、Ping、OTA等。
除此之外,还提供了Audio Manager、EFPG、FDCM、CedarX、Reverb、ATCMD、Console、Voice Print、Secure Boot、CJson、PKG等。
在文件系统方面,可以支持FATFS、LittleFS、SPIFS三种不同的文件系统,可以在编译前在make menuconfig中选择编译。
用户层为可供开发者进行应用开发的用户空间,SDK中提供了Command、Player APP、Recorder APP、Event Framework、Network Control等基础应用服务。同时开发者可以天马行空,在应用层挥洒创意。
原贴链接:https://bbs.aw-ol.com/topic/505/
全志在线开发者交流企鹅群(客服机器人24小时在线解答):498263967
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com/
全志及开发者最新动态可以关注全志在线微信公众号
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
“架设一个亿级高并发系统,是多数程序员、架构师的工作目标。许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。”开篇要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。一.什么是领域驱动设计(DDD)首先要知道DDD是一种开发理念,核心是维护一个反应领域概
本篇适用于初学者开发准备:一台windows电脑、一块开发板(基于Hi3861)(本篇使用小熊派HM-Nano)开发板淘宝有卖:小熊派鸿蒙季BearPi-HM_Nano鸿蒙OpenHarmonyOS系统Hi3861开发板-淘宝网(taobao.com)搭建设备开发需要Linux+windows配合使用,Windows用来写代码,Linux用来编译,本教程使用Ubuntu20.04+Windows1064位。Ubuntu繁琐的配置步骤我都替你做完了,直接将镜像导入虚拟机即可。一、搭建Linux开发环境先获取虚拟机,这个直接网站下载,很快。网址:https://download.virtualbo
一鸿蒙简介HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。HarmonyOS提供了支持多种开发语言的API,供开发者进行应用开发。支持的开发语言包括Java、XML(ExtensibleMarkupLanguage)、C/C++、JS(JavaScript)、CSS(CascadingStyleSheets)和HML(HarmonyOSMarkupLan
1.跑ChatGPT体量模型,从此只需一块GPU在发展技术,让大模型掌握更多能力的同时,也有人在尝试降低AI所需的算力资源。最近,一种名为FlexGen的技术因为「一块RTX3090跑ChatGPT体量模型」而获得了人们的关注。虽然FlexGen加速后的大模型看起来仍然很慢——跑1750亿参数的语言模型时每秒1个token,但令人印象深刻的是,它已经把不可能变成了可能。传统上,大型语言模型(LLM)推理的高计算和内存要求使人们必须使用多个高端AI加速器进行训练。本研究探索了如何将LLM推理的要求降低到一个消费级GPU并实现实用性能。链接:https://mp.weixin.qq.com/s/Z
由于我从昨天开始学习Golang:)我对编译后的文件有疑问。假设我编译我的项目。它在/bin文件夹中生成一个.exec文件。现在我的问题是,既然该文件是在基于IntelCPU的Mac上编译的,那么如果我想将它公开发布,它是否应该在其他操作系统和其他CPU架构(如AMD、ARM等)上编译?如果我在服务器上运行GOlang作为我的后端,我想这应该不是问题。但是,如果我发布我的.exec文件会发生什么,比方说在AWS上,有很多实例会根据负载自动增加/减少?有问题吗?编辑:对于那些正在寻找Go交叉编译工具的人来说,这是一个很好的解决方案https://github.com/mitchellh/
目录一、通用五层协议体系5.应用层4.运输层3.网络层2.数据链路层1.物理层二、各层之间的传递过程三、TCP/IP体系结构四、网络协议大全(各种属于哪一层)五、举例:RTSP一、通用五层协议体系5.应用层应用进程间通信和交互的规则。通过应用进程间的交互来完成因特网络应用,协议有很多,比如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等,我们把应用层交互的数据单元称为报文(message)。4.运输层负责向两台主机进程之间的通信提供通用的数据传输服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能,复用就是指多个应用层进程可同时使用下面运输层的服务,分
原文链接:全新适配鸿蒙生态,Cocos引擎助力3D应用开发,点击链接查看更多技术内容;一、适配HarmonyOS背景HarmonyOS3.1版本自发布以来,备受广大开发者的好评,同时也吸引了鸿蒙生态众多伙伴的青睐。鸿蒙生态所强调的智慧全场景、多端联动与跨设备流转等能力,与Cocos所具有的跨平台、低功耗、高性能三大核心特点不谋而合。Cocos作为内容开发工具,将在鸿蒙生态中焕发出强劲的生命力。CocosCreator编辑器二、产品创新体验Cocos作为国内拥有自主知识产权的行业主流3D引擎,近十年服务了全球160万开发者。本次,Cocos带来了全新适配API9的3D引擎的CocosCreato
系统中哪个类的哪些方法提供有关我当前系统是32位还是64位的信息?我想确定在系统上保存对象后交付的内存,例如,对于我当前的IntelDualCore32位XP操作系统,每个4KB 最佳答案 您可以使用Environment.Is64BitOperatingSystem确定您的系统架构,但不清楚“对象保存在系统上后交付的内存”是什么意思。如果您谈论的是何时将数据保存在硬盘上,那么您指的是硬盘的block大小(顺便说一下,如您所描述的,4096B或4K是WindowsNTFS卷的默认block大小)。如果是这种情况,那么这与您的处理器没
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion这可能是一个微不足道的问题,但我很难向我的弟弟解释,即使两个操作系统都在同一台机器上运行,Windows二进制文件也不会在另一个不同的操作系统(如Linux)中运行。如果二进制文件(操作码)必须相同才能在相同的底层架构(比如Intel32位)中执行,那么Windows和Linux(甚至Ubuntu和RadHatLinux)的二进制文件之间有什么区别?在处理器执行之前,是否在指令级别对二进制文件进