【XR806开发板试用】系列之一 - Linux环境下Ubuntu完全开发流程

前言

为了让极术社区开发者体验搭载安谋科技STAR-MC1处理器的面向IoT领域的全志XR806开发板,极术社区联合全志在线开发者社区共同推出XR806开发板免费试用活动。

极术社区特准备了200块XR806开发板作为2022年社区新年活动,申请的人数有600多,手快有手慢无,有幸申请到一块XR806开发板。该开发板目前支持鸿蒙L0轻量级设备(OpenHarmony-v1.1.2-LTS),之前没有接触过,值得开发体验一番。

环境准备

系统:Ubuntu 20.04.3 LTS

Python: Python 3.8.10

编译链:gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2

串口调试工具:

CuteCom - http://cutecom.sourceforge.net/

或在安装好Wine环境下,可以使用在Windows上的串口调试工具,如经典的putty等

开发流程

官方参考:https://xr806.docs.aw-ol.com/study/soft_inx/,本文将完全在Ubuntu环境下开发,基本流程和官方一致。

一. 代码下载

mkdir xr806

cd xr806

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 -j8

repo forall -c 'git lfs pull'

二. 环境配置

1.OpenHarmony相关工具

Ubuntu环境配置可参考OpenHarmony官方:获取源码及Ubuntu编译环境准备,因XR806主要采用gcc编译,环境配置重点关注下安装Python3和安装hb(暂可以不安装llvm)。

注:在下载完成代码后,可以在项目根目录下,执行以下命令安装OpenHarmony编译系统工具 - hb(也可参考OpenHarmony官方):

shell 复制代码
pip3 install build/lite

2.GCC编译链安装

解压环境准备小节中下载的gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2

默认解压到~/tools目录

shell 复制代码
mkdir -p ~/tools
tar -jxvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 ~/tools

注:~表示你的/home/用户名目录,

项目编译链配置默认~/tools目录下,可以不用修改编译链路径,当然在也可以解压到其他目录

三. 固件编译

请详见官方参考:https://xr806.docs.aw-ol.com/study/soft_compile

  1. 首次编译工程,需要对原生库进行配置,否则无法编译通过,配置步骤如下:
shell 复制代码
cd device/xradio/xr806/xr_skylark
cp project/demo/audio_demo/gcc/defconfig .config
make menuconfig
make build_clean
make lib -j
cd -
hb set
hb build -f

注:首次编译可能会遇到异常,请参考官方固件编译说明

四. 固件下载

固件下载请参考:https://xr806.docs.aw-ol.com/study/soft_flash/,Ubuntu环境下,与Windows相同,

编译生成的固件在device/xradio/xr806/xr_skylark/out,名称为xr_system.img

1.设备识别

将XR806开发板,插入PC的USB接口,用lsusb命令查看,会多出一个设备,设备标识:ID 10c4:ea60 Silicon Labs CP210x UART Bridge,如下图所示:

shell 复制代码
algo@algoideas:~/openharmony/xr806$ lsusb 
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 006: ID 138a:0017 Validity Sensors, Inc. VFS 5011 fingerprint sensor
Bus 003 Device 002: ID 1ea7:0064 SHARKOON Technologies GmbH 2.4G Mouse
Bus 003 Device 008: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
Bus 003 Device 005: ID 5986:0268 Acer, Inc Integrated Camera
Bus 003 Device 004: ID 8087:07dc Intel Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
algo@algoideas:~/openharmony/xr806$ ls /dev/ttyUSB*
/dev/ttyUSB0

新增加的设备节点名称为:ttyUSB0

2.工具配置

Linux下烧录工具文件位于device/xradio/xr806/xr_skylark/tools下,工具名为phoenixMC,工具配置文件为settings.ini,如下图所示:

主要修改:strComDev iBaud 和 strImagePath

[comm]
strComDev = /dev/ttyUSB0
iBaud = 3000000

[log]
strLogFile = ./log/log.txt

[firmware]
strImagePath = ../out/xr_system.img
strEtfImagePath = xr_system_etf.img

3.固件烧录

执行以下命令便可以烧录:

shell 复制代码
cd device/xradio/xr806/xr_skylark/tools
./phoenixMC

烧录部分过程如下:

注:Linux下烧录,固件路径长度有限制,使用路径时,目前使用的是相对路径,或如用其他路径,请拷贝固件到其他路径长度较短的目录下

五. 串口调试

打开CuteCom工具,设置好波特率为115200,及相关参数,并点击Open,此时按下开发板的Reset键即可,看到XR806的串口日志输出,当然也可以输入命令进行交互。

串口设置及XR806日志输出如图所示:

问题与总结

作为一名开发者,XR806在Linux环境下Ubuntu开发,整个开发的流程很顺利,本文未涉及到应用程序,仅涉及到固件相关开发,应用开发烧录一致,应用开发将在下一篇文章介绍,或参考官方相关文章。

Linux环境下开发,主要遇到以下问题:

Linux下烧录波特率非实际配置的3000000,对比Windows环境下,固件烧录慢很多,烧录提示如下:

Baud should be one of the values below:
110 300 600 1200 2400 4800 9600 19200 38400 57600 115200 230400 460800 921600

参考资料:

https://xr806.docs.aw-ol.com/

https://aijishu.com/a/1060000000256653

相关推荐
。puppy12 分钟前
HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,OSPF(静态路由,环回,缺省,空接口),NAT
运维·服务器
颇有几分姿色22 分钟前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
光芒再现dev39 分钟前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
AndyFrank1 小时前
mac crontab 不能使用问题简记
linux·运维·macos
筱源源1 小时前
Kafka-linux环境部署
linux·kafka
成都古河云2 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
算法与编程之美2 小时前
文件的写入与读取
linux·运维·服务器
xianwu5432 小时前
反向代理模块
linux·开发语言·网络·git
Amelio_Ming2 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh
心灵彼岸-诗和远方2 小时前
Devops业务价值流:软件研发最佳实践
运维·产品经理·devops