OpenHarmony轻量系统--BearPi-Nano开发板网络程序测试

发布于:2025-05-15 ⋅ 阅读:(17) ⋅ 点赞:(0)

本文介绍RISC-V架构海思Hi3861开发板,通过Linux开发环境运行OpenHarmony轻量化系统,下载测试网络例程的过程与步骤。

OpenHarmony操作系统分类

  • 轻量系统(mini system)

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

  • 小型系统(small system)

    面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为1MiB,可以提供更高的安全能力、标准的图形框架、视频编解码的多媒体能力。可支撑的产品如智能家居领域的IP Camera、电子猫眼、路由器以及智慧出行领域的行车记录仪等。

  • 标准系统(standard system)

    面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为128MiB,可以提供增强的交互能力、3D GPU以及硬件合成能力、更多控件以及动效更丰富的图形能力、完整的应用框架。可支撑的产品如高端的冰箱显示屏。

BearPi-HM_Nano开发板 

BearPi-HM_Nano开发板是一块专门为HarmonyOS设计的HarmonyOS开发板,板载高度集成的2.4GHz WLAN SoC芯片Hi3861,并板载NFC电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。

规格类型

规格清单

CPU子系统

  • 高性能 32bit微处理器,最大工作频率160MHz

  • 内嵌SRAM 352KB、ROM 288KB

  • 内嵌 2MB Flash

外围接口

  • 1个SDIO接口、2个SPI接口、2个I2C接口、3个UART接口、15个GPIO接口、7路ADC输入、6路PWM、1个I2S接口(注:上述接口通过复用实现)

  • 外部主晶体频率40M或24M

1、开发环境

  • Linux编译服务器(可以使用windows虚拟机)

  • Windows工作台(主机电脑)

  • BearPi-HM_Nano开发板

  • USB Type-C线(Windows工作台通过USB与BearPi-HM_Nano开发板组连接)

开发工具软件可以小熊源官方网盘下载:https://pan.baidu.com/s/1vSpPWvIhL8wCVGnEOjXS7g?pwd=1234

Linux开发工具

开发工具

用途

获取途径

交叉编译器gcc_riscv32

交叉编译工具

https://pan.baidu.com/s/1vSpPWvIhL8wCVGnEOjXS7g?pwd=1234 提取码:1234

Python3.7+

编译构建工具

https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz

SCons3.0.4+

编译构建工具

通过互联网获取

bash

命令处理器

通过互联网获取

build-essential

编译依赖的基础软件包

通过互联网获取

gn

产生ninja编译脚本

https://pan.baidu.com/s/1vSpPWvIhL8wCVGnEOjXS7g?pwd=1234 提取码:1234

ninja

执行ninja编译脚本

https://pan.baidu.com/s/1vSpPWvIhL8wCVGnEOjXS7g?pwd=1234 提取码:1234

Windows开发工具

开发工具

用途

获取途径

Visual Studio Code

代码编辑工具。

https://code.visualstudio.com/

MobaXterm、PuTTY或其他超级终端(选其一)

远程连接Linux编译服务器,连接模组串口工具。

通过互联网获取(如:https://mobaxterm.mobatek.net/

CH341SER.EXE

USB转串口驱动。

http://www.wch.cn/search?q=ch340g&t=downloads

Hiburn烧录工具

代码烧录工具。

https://pan.baidu.com/s/1vSpPWvIhL8wCVGnEOjXS7g?pwd=1234密码:1234

2、Linux开发环境安装


安装Python环境

输入命令“python3 --version”,查看Python版本号。需使用python3.7以上版本,否则请按以下步骤执行,以python3.7为例:

sudo apt-get install python3.7
cd /usr/bin && sudo rm python && sudo ln -s /usr/bin/python3.7 python && python --version

sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install setuptools
sudo pip3 install kconfiglib
sudo pip3 install pycryptodome
sudo pip3 install six --upgrade --ignore-installed six
sudo pip3 install ecdsa
安装scons
sudo apt-get install scons -y
安装gn
  1. 打开Linux编译服务器终端。

  2. 下载gn工具:https://pan.baidu.com/s/1vSpPWvIhL8wCVGnEOjXS7g?pwd=1234 提取码:1234

  3. 解压gn安装包至~/gn路径下:"tar -xvf gn.1523.tar -C ~/"。

  4. 设置环境变量:"vim ~/.bashrc", 新增:"export PATH=~/gn:$PATH"。

  5. 生效环境变量:"source ~/.bashrc"。

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

  2. 下载ninja工具:https://pan.baidu.com/s/1vSpPWvIhL8wCVGnEOjXS7g?pwd=1234 提取码:1234

  3. 解压ninja安装包至~/ninja路径下:"tar -xvf ninja.1.9.0.tar -C ~/"。

  4. 设置环境变量:"vim ~/.bashrc", 新增:"export PATH=~/ninja:$PATH"。

  5. 生效环境变量:"source ~/.bashrc"。

安装gcc_riscv32(WLAN模组类编译工具链)

须知: Hi3861平台仅支持使用libgcc运行时库的静态链接,不建议开发者使用libgcc运行时库的动态链接,会导致商业分发时被GPL V3污染。

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

  2. 下载gcc_riscv32工具:https://pan.baidu.com/s/1vSpPWvIhL8wCVGnEOjXS7g?pwd=1234 提取码:1234

  3. 解压gcc_riscv32安装包至/opt/gcc_riscv32路径下:"tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/"。

  4. 设置环境变量:"vim ~/.bashrc",新增:"export PATH=~/gcc_riscv32/bin:$PATH"。

  5. 生效环境变量:"source ~/.bashrc"。

  6. Shell命令行中输入“riscv32-unknown-elf-gcc -v”,如果能正确显示编译器版本号,表明编译器安装成功。

3、下载源码

git clone https://gitee.com/bearpi/bearpi-hm_nano.git -b master

 

topolo@topolo-PC:~/hi3861-OH_dev$ tree -L 2
.
└── bearpi-hm_nano
    ├── applications
    ├── base
    ├── build
    ├── build.py -> build/lite/build.py
    ├── bundle.json
    ├── domains
    ├── drivers
    ├── foundation
    ├── kernel
    ├── LICENSE
    ├── out
    ├── prebuilts
    ├── README.md
    ├── test
    ├── third_party
    ├── utils
    └── vendor

4、编译程序

这里以板卡官方的TCP-Server服务器示例程序为编译对象进行测试。

修改bearpi-hm_nano/applications/BearPi/BearPi-HM_Nano/sample/D4_iot_tcp_server目录下的 tcp_server_demo.c文件。

  //连接Wifi

        WifiConnect("wifi-name", "wifi-password");//修改wifi名称与密码

修改 applications\BearPi\BearPi-HM_Nano\sample 路径下 BUILD.gn 文件,指定 tcp_server 参与编译。

tony@tony-VirtualBox:~/lite-os-dev/bearpi-hm_nano/applications/BearPi/BearPi-HM_Nano/sample$ vim BUILD.gn 

修改内容如下:

  ...
        #"D1_iot_wifi_ap:wifi_ap",

        #"D2_iot_wifi_sta_connect:wifi_sta_connect",        

        #"D3_iot_udp_client:udp_client",

        "D4_iot_tcp_server:tcp_server",

        #"D5_iot_mqtt:iot_mqtt",        

        #"D6_iot_cloud_oc:oc_mqtt",
...

返回到bearpi-hm_nano源码的根目录进行编译。编译程序后,复制bin文件到windows系统进行下载。

python build.py BearPi-HM_Nano

sudo cp out/BearPi-HM_Nano/Hi3861_wifiiot_app_allinone.bin ~/win_dir/

编译输出结果:

-------------output/bin/Hi3861_wifiiot_app_ota.bin image info print end--------------
< ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >
                              BUILD SUCCESS                              
< ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >
See build log from: /home/tony/lite-os-dev/bearpi-hm_nano/vendor/hisi/hi3861/hi3861/build/build_tmp/logs/build_kernel.log
[199/199] STAMP obj/vendor/hisi/hi3861/hi3861/run_wifiiot_scons.stamp
ohos BearPi-HM_Nano build success!

5、下载程序

开发板通过type-c线连接电脑,设备管理器中会出现USB串口设备USB-SERIAL CH340(COM6),需要在电脑中先安装ch340的驱动程序。

 

打开下载HiBurn下载软件,通过下述步骤烧录代码。

1、选择串口com6(要根据自已电脑串口号选择),点击"connect"连接

2、"Select file"选择电脑中的Hi3861_wifiiot_app_allinone.bin下载文件,选择好后文件列表中会出现3个下载文件

3、勾选"Select all","Auto burn"选项

4、按下开发板上的"reset"按键,开始下载程序(约1-2分钟)

5、下载完成后,点击"disconnect"连接,断开串口

6、再按下开发板上的"reset"按键,重启开发板运行新程序

7、通过串口调试程序连接开发板,可查看开发板运行调试信息

HiBurn串口设置:

HiBurn下载bin文件:

 

6、运行程序

示例代码编译烧录代码后,按下开发板的RESET按键,通过串口助手查看日志,会打印模块的本地IP,并开始准备获取客户端的请求链接。

BearPi串口调试输出信息:

Windows网络调试工具,连接到bearPi板卡分配的wifi地址IP 192.168.199.142。在发送区输入发送字符,串口端就会显示服务器程序接收到的内容。


网站公告

今日签到

点亮在社区的每一天
去签到