【开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频

已注销
发布于 2020-10-27 21:58
浏览
3收藏

本文将介绍Hi3861 WLAN模组的开发环境搭建、版本编译构建、烧录、源码修改、调试验证视频播放功能。通过学习,开发者会对Hi3861 WLAN模组、0.96 OLED屏模组开发流程有初步认识,并可上手业务开发。

 

一、开发板简介

 

Hi3861底板可以与其他模块连接,具有扩充自身的外设能力,可以接WLAM模组主板、接OLED屏板。

【开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频-鸿蒙开发者社区

Hi3861 WLAN模组是一片大约2cm*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,频率高波长短的5G信号,覆盖范围相对较小,穿过障碍物的能力不如2.4GHz,基带支持正交频分复用(OFDM)技术,并向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。

【开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频-鸿蒙开发者社区

集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路,射频集成电路是一种紧凑的电子电路,它使用有源器件来实现所谓射频(RF)范围内的信号频率,RF电路包括功率放大器PA(Power Amplifier)、低噪声放大器LNA(Low Noise Amplifier)、RF Balun、天线开关以及电源管理等模块;支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。

【开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频-鸿蒙开发者社区

Hi3861芯片集成高性能32bit微处理器、硬件安全引擎以及丰富的外设接口,外设接口包括SPI(Synchronous Peripheral Interface)、UART(Universal Asynchronous Receiver & Transmitter)、I2C(The Inter Integrated Circuit)、PWM(Pulse Width Modulation)、GPIO(General Purpose Input/Output)和多路ADC(Analog to Digital Converter),同时支持高速SDIO2.0(Secure Digital Input/Output)接口,最高时钟可达50MHz;芯片内置SRAM(Static Random Access Memory)和Flash,可独立运行,并支持在Flash上运行程序。支持HarmonyOS,并配套提供开放、易用的开发和调试运行环境。

 

Hi3861 WLAN模组资源十分有限,整板共2MB FLASH,可以理解成只读内存(Read-Only Memory,缩写:ROM),ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。352KB RAM随机存取存储器(Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。容量小的那个一定是内存RAM,容量大的一定是存储(闪存)ROM,在编写业务代码时,需注意资源使用效率。

 

二、搭建环境

 

Linux编译服务器使用的是Ubuntu16.04,需要检查以下环境。

 

1、Python版本

sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure --enable-optimizations && sudo make && sudo make install
python --version
which python3.8
cd /usr/bin && sudo rm python && sudo ln -s python3.8-path python && python --version

2、pip3版本及相关模块安装

sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
pip3 install setuptools -y
sudo pip3 install kconfiglib -y
sudo pip3 install pycryptodome -y
sudo pip3 install six --upgrade --ignore-installed six -y
sudo pip3 install ecdsa -y
sudo apt-get install scons -y
sudo apt-get install python-numpy -y
sudo apt-get install python-opencv -y
sudo pip install Pillow
sudo apt-get install --reinstall python3-pkg-resources
sudo apt install ffmpeg -y

3、安装编译工具

wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
tar -xvf gn.1523.tar -C ~/
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
tar -xvf ninja.1.9.0.tar -C ~/
wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/
vim ~/.bashrc
export PATH=~/gn:$PATH
export PATH=~/ninja:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
source ~/.bashrc
riscv32-unknown-elf-gcc -v

4、获取Hi3861源码编译检验环境

wget https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz
python build.py wifiiot

 编译结束后,如果出现“BUILD SUCCESS”字样,则证明构建成功。

【开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频-鸿蒙开发者社区三、编译鸿蒙OS在0.96寸OLED屏上播放视频 

git clone --recursive https://gitee.com/hihopeorg/harmonyos_oled_player.git
vim build/lite/product/wifiiot.json

//applications/sample/wifi-iot/app替换为//harmonyos_oled_player:app。

【开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频-鸿蒙开发者社区

进入harmonyos_oled_player目录下,找一个视频,命名为input.mp4,使用工具将帧率转为10fps,目前ssd1306库实测的最大帧率为10fps,使用video2bin将视频转为bin文件。

ffmpeg -i input.mp4 -r 10 output.mp4
./video2bin.py output.mp4 out.bin

进入harmonyos_oled_player/play目录下,根据热点信息(SSID,PSK)和PC(ubuntu)的IP地址,修改play/net_params.h文件中的相关参数。

【开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频-鸿蒙开发者社区

在openharmony源码顶层目录下执行编译,构建成功后,会在./out/wifiiot/路径中生成以下文件,编译构建流程结束。使用 HiBurn 烧写 .bin 文件到 Hi3861,记得勾选“Auto burn”,点击 Connect,连接串口设备,按下开发板的 RESET 按键,烧录成功后,需要手动点“Disconnect”断开串口连接,否则会提示“Wait connect success flag (hisilicon) overtime.”,在PC(ubuntu)harmonyos_oled_player目录下运行bin2stream,将会启动一个TCP服务器,默认监听5678端口,并复位设备,板子启动后,首先会连上热点,然后会连接PC上的TCP服务,就可以看到视频的在OLED屏播放了。

python build.py wifiiot
ls -l out/wifiiot
./bin2stream.py out.bin

【开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频-鸿蒙开发者社区

分类
已于2020-10-27 22:27:43修改
4
收藏 3
回复
举报
4条回复
按时间正序
/
按时间倒序
wx5f6d95f107fc8
wx5f6d95f107fc8

有没有源码fen x

回复
2020-10-28 07:52:17
码工许师傅
码工许师傅 回复了 wx5f6d95f107fc8
有没有源码fen x

https://gitee.com/hihopeorg/harmonyos_oled_player

回复
2020-10-28 12:57:30
knmb99
knmb99

播放貌似是测试视频这个咋回事呢?

回复
2020-10-29 18:26:01
knmb99
knmb99

[18:49:14.231]收←◆server :
 server_id : 172.16.30.254
 mask : 255.255.255.0, 1
 gw : 172.16.30.254
 T0 : 86400
 T1 : 43200
 T2 : 75600
clients <1> :
 mac_idx mac             addr            state   lease   tries   rto     
 0       b4c9b9af67db    172.16.30.151   8       0       1       1       
netifapi_netif_common: 0
lwip_connect failed!
frames: 0, time cost: 0.01

[18:49:14.762]收←◆+NOTICE:DISCONNECTED
OnWifiConnectionChanged 55, state = 0, info = 
bssid: 58:6A:B1:32:BA:70, rssi: 0, connState: 0, reason: 3, ssid: 
Disconnect: 0
UnRegisterWifiEvent: 0
RemoveDevice: 0
DisableWifi: 0

回复
2020-10-29 18:49:34
回复
    相关推荐