xucvai · 2021年11月24日

全志XR806开发板软件系统简介

XR806开发板官方支持轻量设备/L0级别 OpenHarmony/鸿蒙系统,系统相关介绍可参考官网
XR806 鸿蒙L0 SDK Gittee仓库链接:https://gitee.com/openharmony-sig/devboard_device_allwinner_xr806
临时仓库链接:https://gitee.com/moldy-potat...
如无法链接到gitee,请私信极术小姐姐(微信号:aijishu20)获取资料包.

系统框图

框图简介

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

XR806-OpenHarmony系统框图如下:

image.png

从下到上分别是:

内核层(Kernel)- 系统驱动层(System Driver)- 系统服务层(System Server)-用户层(User Space)

内核层(Kernel)

内核层使用的是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

系统驱动层(System Driver)

系统驱动层主要提供安全、存储、时钟、音频和接口等模块的框架和驱动,包括: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等

系统服务层(System Server)

系统服务层主要提供系统运行及用户层开发用到的基础系统框架、库和工具等。

作为核心功能,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中选择编译。

用户层(User Space)

用户层为可供开发者进行应用开发的用户空间,SDK中提供了Command、Player APP、Recorder APP、Event Framework、Network Control等基础应用服务。同时开发者可以天马行空,在应用层挥洒创意。

代码结构

XR806_OpenHarmony代码主要包括device和vendor两部分,其中:

device目录主要为芯片层驱动,负责承接Harmony系统和芯片驱动库,目录如下所示:

device/xradio/xr806
    ├── adapter             #Harmony接口适配
    ├── BUILD.gn            #gn编译脚本
    ├── build.sh            #编译脚本,用于搭桥Harmony与原生SDK
    ├── doc                 #指导文档
    ├── libcopy.py          #编译脚本,用于动态配置编译环境
    ├── liteos_m            #编译工具,编译选项设置
    ├── ohosdemo            #例程
    ├── os                  #rtos接口层,通过接口层方便后续移植其他rtos
    ├── target_config.h     #liteos系统裁剪
    └── xr_skylark          #芯片原生驱动

vendor目录只要为方案设置,Harmony主要特点之一为组件的插拔,通过vendor/config.json对方案进行裁剪。

vendor文件夹目录结构如下

vendor/xradio/xr806
    ├── BUILD.gn            #编译脚本
    ├── config.json         #方案裁剪
    └── hals                #系统信息

代码下载

mkdir xr806_openharmony
cd xr806_openharmony
repo init -u ssh://git@gitee.com/openharmony-sig/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify -m devboard_xr806.xml
repo sync -c
repo forall -c 'git lfs pull'   #下载部分大容量二进制文件

环境配置

环境配置请参考教程

资料参考:
https://xr806.docs.aw-ol.com/
资料版权及解释权由全志科技所有。
推荐阅读
关注数
2123
内容数
20
全志科技芯片方案学习专栏,欢迎关注。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息