OpenHarmony南向嵌入式:【XR806开发板指导文档】

2024-04-14 04:12

本文主要是介绍OpenHarmony南向嵌入式:【XR806开发板指导文档】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 简介

芯片介绍

XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持OpenHarmony轻量设置系统。具有集成度高、硬件设计简单、BOM成本低、安全可靠等优点。可广泛满足 智能家居、智慧楼宇、工业互联、儿童玩具、电子竞赛、极客DIY等领域的无线连接需求。

开发板介绍

XR806_OpenHarmony开发板是基于XR806芯片设计开发的参考评估,板身集成了XR806芯片、WiFi/BT双天线、供电系统、按钮及LED等,并引出了所有可用引脚,可供开发者进行方案评估、DIY或小规模产品研发使用。以下为开发板外观图(更多硬件资料地址

二. 快速上手

1. 环境搭建

开发基础环境由windows 工作台和Linux编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。

搜狗高速浏览器截图20240326151344.png

安装编译依赖基础软件
sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev
安装和配置Python
  1. 打开Linux编译服务器终端。

  2. 输入如下命令,查看python版本号,需使用python3.7以上版本。

    python3 --version
     

    如果低于python3.7版本,不建议直接升级,请按照如下步骤重新安装。以python3.8为例,按照以下步骤安装python。

    1. 运行如下命令,查看Ubuntu版本:

      cat /etc/issue

    2. 根据Ubuntu不同版本,安装python。

      • 如果Ubuntu 版本为18+,运行如下命令。

        sudo apt-get install python3.8

      • 如果Ubuntu版本为16。

        a. 安装依赖包

        sudo apt update && sudo apt install software-properties-common

        b. 添加deadsnakes PPA 源,然后按回车键确认安装。

        sudo add-apt-repository ppa:deadsnakes/ppa

        c. 安装python3.8

        sudo apt upgrade && sudo apt install python3.8

  3. 设置python和python3软链接为python3.8。

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

  4. 安装并升级Python包管理工具(pip3),任选如下一种方式。

    • 命令行方式:

      sudo apt-get install python3-setuptools python3-pip -y
      sudo pip3 install --upgrade pip

    • 安装包方式:

      curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
      python get-pip.py

安装gn
  1. 打开Linux编译服务器终端。

  2. 在根目录下创建gn文件夹。

    mkdir ~/gn

  3. 解压gn安装包至~/gn路径下。

    tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn

  4. 设置环境变量。

    vim ~/.bashrc

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/gn:$PATH

  5. 生效环境变量。

source ~/.bashrc
安装ninja
  1. 打开Linux编译服务器终端。

  2. 解压ninja安装包至~/ninja路径下。

    tar -xvf ninja.1.9.0.tar -C ~/

  3. 设置环境变量。

    vim ~/.bashrc

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/ninja:$PATH

  4. 生效环境变量。

    source ~/.bashrc

安装工具链
  • 编译链工具推荐gcc-arm-none-eabi-10-2020-q4-major。

  • 将gcc-arm-none-eabi-10-2020-q4-major包解压到~/tools目录下

    tar -zxvf gcc-arm-none-eabi-10-2020-q4-major.tar.gz -C ~/tools/

2. 获取源码
安装码云repo工具
cd ~/
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo
chmod a+x ./repo
sudo mv ./repo /usr/local/bin/
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
代码下载
  1. OpenHarmony代码下载,以OpenHarmony 3.1 Beta版本为例,下载方式如下:
mkdir ~/openharmony
cd ~/openharmonyrepo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
  1. 下载板级soc模块

    soc下面是包含芯片SDK和驱动代码、第三方库适配等接口层代码。下载方法如下:

    mkdir ~/xradio
    cd ~/xradio
    git clone git@gitee.com:openharmony-sig/device_soc_allwinner.git

    因为最新的代码未在适配相应的HDF驱动,所以需要将代码回退到指定版本:d5d336941a1ba1ba3b84aebab1d7173d20968ccd

    cd device_soc_allwinner
    git reset --hard d5d336941a1ba1ba3b84aebab1d7173d20968ccd

    将此代码拷贝到soc下并重新命名为allwinner

    cp -raf device_soc_allwinner ~/openharmony/device/soc/allwinner

  2. 下载板级board模块

    board主要存放板级配置,下载方法:

    git clone git@gitee.com:openharmony-sig/device_board_allwinner.git

    将此代码拷贝到board下并重新命名为allwinner

    cp -raf device_board_allwinner ~/openharmony/device/board/allwinner

  3. 下载vendor模块

    vendor存放的都是一些基于XRMCU开发的WiFi模组代码样例,下载方法:

    git clone git@gitee.com:openharmony-sig/vendor_allwinner.git

    将此代码拷贝到vendor下并重新命名为allwinner

cp -raf vendor_allwinner_xr806 ~/openharmony/vendor/allwinner
安装hb
cd ~/openharmony
pip3 install build/lite	# 此语句需要在SDK根目录下执行。
3. 编写自己的hello word

​ 在vendor/allwinner/xradio_wifi_demo创建demo_hello_world文件夹

cd vendor/allwinner/xradio_wifi_demo/
mkdir demo_hello_world

​ 然后创建hello_world.c 以及BUILD.gn

cd demo_hello_world
touch hello_world.c
touch BUILD.gn

在hello_world.c中添加以下代码

#include <stdio.h>
#include <string.h>#include "ohos_init.h"int DemoMain(int argc, char **argv)
{printf("\r\nhello world!\r\n\r\n");return 0;
}SYS_RUN(DemoMain);

在BUILD.gn中添加以下代码

source_set("hello_world"){sources = ["hello_world.c"]
}

将helloworld添加到编译中,在 device/soc/allwinner/xradio/xr806/BUILD.gn中添加以下依赖:

module_group(module_name) {modules = ["src","project","include",]configs = [":SdkLdCconfig",]deps = [ "//vendor/allwinner/xradio_wifi_demo/demo_hello_world:hello_world" ]
}
4. 编译
  • hb set 选择demo指令,具体命令如下:

hb set -root # 通过键盘选择 xradio_wifi_demo

  • 修改编译工具链地址

    cd kernel/liteos_m
    make menuconfig

    然后选择Compiler->Compiler type(GCC),然后选择路径一行,按回车会弹出路径的输入框,此时输入实际的工具链地址。按ESC返回,最后退出并保存配置即可。

  • 修改配置文件中的工具链路径

    device/board/allwinner/xradio/liteos_m/config.gni

    device/soc/allwinner/xradio/xr806/build/Makefile

  • hb build 全量编译命令

hb build -f

如果编译中出现如下错误:

需要修改device/soc/allwinner/xradio/osal/include/target_config.h

// #define OS_SYS_CLOCK (SystemCoreClock)
#define OS_SYS_CLOCK 160000000
5. 烧录 && 运行
  • 固件和烧录软件位置
  1. 编译生成的固件保存在out/xradio/xradio_wifi_demo目录下,文件名固定为xr_system.img。
  2. 烧录软件保存在device/soc/allwinner/xradio/xr806/tools下,名称为phoenixMC_xxxx.exe。
  • 烧录软件界面

  • 操作步骤

  1. PC安装CP2102驱动。

  2. 串口连接:通过USB-typeC数据线连接开发板和PC。

  3. 串口设置:点击左上角的“刷新”按钮可刷新已连接串口设备列表,勾选开发板对应的COM口。串口波特率最大支持3000000,波特率越高,烧录速度越快。如果高波特率下容易出现烧录失败,可检查串口线、串口驱动是否稳定支持该波特率;或者降低波特率进行尝试。为了避免烧录速度过慢,建议波特率选择3000000。

  4. 固件选择:点击“选择固件”按钮选择需要烧录的固件文件(xr_system.img),固件信息栏会显示出当前固件的详细信息。另外,通过拖拽方式将固件直接拖入工具界面也可以达到同样的效果。

  5. 开启一键烧录功能:点击“设置”按钮调出设置界面,如下图勾选“硬件复位烧写模式”.

  6. 启动烧录:点击“升级固件”按钮启动固件烧录。烧录状态栏显示当前选定串口对应设备的烧录进度和状态。当烧录成功时,进度条会达到100%的进度并显示为绿色;当烧录失败时,进度条显示为红色并报告错误。

  7. 复位设备:固件烧录成功后,开启PC串口调试工具(115200,N,8,1),硬件复位开发板(按下复位按钮),程序将运行且看到以下打印输出。

鸿蒙Next核心技术分享

1、鸿蒙基础知识←《鸿蒙NEXT星河版开发学习文档》

2、鸿蒙ArkUI←《鸿蒙NEXT星河版开发学习文档》

3、鸿蒙进阶技术←《鸿蒙NEXT星河版开发学习文档》

 4、鸿蒙就业高级技能←《鸿蒙NEXT星河版开发学习文档》 

 5、鸿蒙多媒体技术←《鸿蒙NEXT星河版开发学习文档》 

6、鸿蒙南向驱动开发←《鸿蒙NEXT星河版开发学习文档》  

7、鸿蒙南向内核设备开发←《鸿蒙NEXT星河版开发学习文档》  

 8、鸿蒙系统裁剪与移植←《鸿蒙NEXT星河版开发学习文档》  

这篇关于OpenHarmony南向嵌入式:【XR806开发板指导文档】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/902045

相关文章

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre