【鴻蒙開發(fā)板試用報告】鴻蒙 OS Hi3861 OLED 屏上播放視頻
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
本文將介紹Hi3861 WLAN模組的開發(fā)環(huán)境搭建、版本編譯構(gòu)建、燒錄、源碼修改、調(diào)試驗證視頻播放功能。通過學(xué)習(xí),開發(fā)者會對Hi3861 WLAN模組、0.96 OLED屏模組開發(fā)流程有初步認(rèn)識,并可上手業(yè)務(wù)開發(fā)。
一、開發(fā)板簡介
Hi3861底板可以與其他模塊連接,具有擴(kuò)充自身的外設(shè)能力,可以接WLAM模組主板、接OLED屏板。
 Hi3861 WLAN模組是一片大約2cm*5cm大小的開發(fā)板,是一款高度集成的2.4GHz WLAN SoC芯片,頻率高波長短的5G信號,覆蓋范圍相對較小,穿過障礙物的能力不如2.4GHz,基帶支持正交頻分復(fù)用(OFDM)技術(shù),并向下兼容直接序列擴(kuò)頻(DSSS)和補(bǔ)碼鍵控(CCK)技術(shù),支持IEEE 802.11 b/g/n協(xié)議的各種數(shù)據(jù)速率。

集成IEEE 802.11b/g/n基帶和RF(Radio Frequency)電路,射頻集成電路是一種緊湊的電子電路,它使用有源器件來實現(xiàn)所謂射頻(RF)范圍內(nèi)的信號頻率,RF電路包括功率放大器PA(Power Amplifier)、低噪聲放大器LNA(Low Noise Amplifier)、RF Balun、天線開關(guān)以及電源管理等模塊;支持20MHz標(biāo)準(zhǔn)帶寬和5MHz/10MHz窄帶寬,提供最大72.2Mbit/s物理層速率。
 Hi3861芯片集成高性能32bit微處理器、硬件安全引擎以及豐富的外設(shè)接口,外設(shè)接口包括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)接口,最高時鐘可達(dá)50MHz;芯片內(nèi)置SRAM(Static Random Access Memory)和Flash,可獨(dú)立運(yùn)行,并支持在Flash上運(yùn)行程序。支持HarmonyOS,并配套提供開放、易用的開發(fā)和調(diào)試運(yùn)行環(huán)境。
Hi3861 WLAN模組資源十分有限,整板共2MB FLASH,可以理解成只讀內(nèi)存(Read-Only Memory,縮寫:ROM),ROM所存數(shù)據(jù),一般是裝入整機(jī)前事先寫好的,整機(jī)工作過程中只能讀出,而不像隨機(jī)存儲器那樣能快速地、方便地加以改寫。352KB RAM隨機(jī)存取存儲器(Random Access Memory,縮寫:RAM),也叫主存,是與CPU直接交換數(shù)據(jù)的內(nèi)部存儲器。容量小的那個一定是內(nèi)存RAM,容量大的一定是存儲(閃存)ROM,在編寫業(yè)務(wù)代碼時,需注意資源使用效率。
二、搭建環(huán)境
Linux編譯服務(wù)器使用的是Ubuntu16.04,需要檢查以下環(huán)境。
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版本及相關(guān)模塊安裝
- 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源碼編譯檢驗環(huán)境
- wget https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz
 - python build.py wifiiot
 
編譯結(jié)束后,如果出現(xiàn)“BUILD SUCCESS”字樣,則證明構(gòu)建成功。
  三、編譯鴻蒙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。
 進(jìn)入harmonyos_oled_player目錄下,找一個視頻,命名為input.mp4,使用工具將幀率轉(zhuǎn)為10fps,目前ssd1306庫實測的最大幀率為10fps,使用video2bin將視頻轉(zhuǎn)為bin文件。
- ffmpeg -i input.mp4 -r 10 output.mp4
 - ./video2bin.py output.mp4 out.bin
 
進(jìn)入harmonyos_oled_player/play目錄下,根據(jù)熱點(diǎn)信息(SSID,PSK)和PC(ubuntu)的IP地址,修改play/net_params.h文件中的相關(guān)參數(shù)。
 在openharmony源碼頂層目錄下執(zhí)行編譯,構(gòu)建成功后,會在./out/wifiiot/路徑中生成以下文件,編譯構(gòu)建流程結(jié)束。使用 HiBurn 燒寫 .bin 文件到 Hi3861,記得勾選“Auto burn”,點(diǎn)擊 Connect,連接串口設(shè)備,按下開發(fā)板的 RESET 按鍵,燒錄成功后,需要手動點(diǎn)“Disconnect”斷開串口連接,否則會提示“Wait connect success flag (hisilicon) overtime.”,在PC(ubuntu)harmonyos_oled_player目錄下運(yùn)行bin2stream,將會啟動一個TCP服務(wù)器,默認(rèn)監(jiān)聽5678端口,并復(fù)位設(shè)備,板子啟動后,首先會連上熱點(diǎn),然后會連接PC上的TCP服務(wù),就可以看到視頻的在OLED屏播放了。
- python build.py wifiiot
 - ls -l out/wifiiot
 - ./bin2stream.py out.bin
 
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
















 
 
 





 
 
 
 