Hi3861 OpenHarmony 运行Hello World

本文介绍了海思Hi3861的两种型号MCUWi-Fi芯片及其在不同应用场景下的使用,重点讲述了如何在OpenHarmony环境中搭建开发环境,配置Hi3861模块,并演示了从基础设置到烧录的完整流程,尽管非官方推荐,但仍为个人学习和实践提供了一份参考记录。
摘要由CSDN通过智能技术生成

海思 hi3861 有2个型号:

 Hi3861LV100 低功耗版
低功耗MCU Wi-Fi芯片,适用于智能门锁、智能猫眼等低功耗物联网智能产品。

Hi3861V100 标准版
MCU Wi-Fi芯片,适用于大小家电、电工照明等常电类物联网智能产品。

系统默认的是标准版,低功耗版好像是需要改下设置。越简单越好的原则我一直选用的都是标准版。

Hi3861V100 标准版 关键特性:
通用规格
• 1x1 2.4GHz 频段(ch1~ch14)
• PHY 支持 IEEE 802.11b/g/n MAC 支持 IEEE802.11 d/e/h/i/k/v/w
• 内置 PA 和 LNA,集成 TX/RX Switch、Balun 等
• 支持 STA 和 AP 形态,作为 AP 时最大支持 6 个 STA 接入
• 支持 WFA WPA/WPA2 personal、WPS2.0
• 支持与 BT/BLE 芯片共存的 2/3/4 线 PTA 方案
• 电源电压输入范围:2.3V~3.6V IO 电源电压支持 1.8V 和 3.3V
• 支持 RF 自校准方案
• 低功耗 在环境温度 25℃条件下测试: Ultra Deep Sleep 模式:3μA@3.3V 在环境温度 25℃、接收 RX 时间长度 1ms、芯片 BUCK 供电、屏蔽环境的条件下测试:
DTIM1:1.27mA@3.6V
DTIM3:0.523mA@3.6V
DTIM10:0.233mA@3.6V

PHY 特性
• 支持 IEEE802.11b/g/n 单天线所有的数据速率
• 支持最大速率:72.2Mbps@HT20 MCS7
• 支持标准 20MHz 带宽和 5M/10M 窄带宽
• 支持 STBC
• 支持 Short-GI

MAC 特性
• 支持 A-MPDU,A-MSDU
• 支持 Blk-ACK
• 支持 QoS,满足不同业务服务质量需求

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个便宜又通用的hi3861模块,正好能插进面包板。以前在淘宝买3861wifi模块挺多的,还很便宜,现在变的很少了,还涨价了,难道又被卡脖子吗?买了就珍惜吧。

OpenHarmony版本: OpenHarmony-v3.0.8-LTS,这个版本发布时间很长了,各种资源比较多,遇到问题比较好处理。

散装开发环境:

虚拟机下鸿蒙环境已经搭建完毕,下面搭建虚拟机和主机之间的联系。

1. 安装SSH的客户端和服务端
sudo apt-get install openssh-client
sudo apt-get install openssh-server

启动SSH服务
sudo /etc/init.d/ssh start

检查SSH服务是否已启动
ps -e | grep ssh

2. 安装samba
sudo apt-get install samba

samba --version

修改samba服务的配置文件

备份
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_back

sudo vi /etc/samba/smb.conf

在后面加入

[oh3]
   # 指定要共享的目录路径
   path = /home/ad/oh_code/
   # 可读可写
   read only = no
   # 可以匿名访问
   guest ok = yes

把鸿蒙源码目录权限改一下,否则无法写入。

sudo chmod -R 777 ~/oh_code/

重启 samba 

sudo samba restart

先在ubuntu命令终端下输入:

ip addr  查看ubuntu的ip地址

在windows主机下,右键点击我的电脑,选择“映射网络驱动器”。

输入ubuntu的ip,目录名就是samba设置的[oh3]。

点完成,等一下,如果没问题就会在我的电脑里多出1个网络磁盘。

如果有错误信息提示,那么就百度一下,会发现有很多人遇到一样的问题,并有很好的解决办法。

在oh3的磁盘里,写一个文本,并且修改内容,保存,再读取,看看有没有问题,出问题也是权限问题。

然后安装VS Code

打开文件夹,选择oh3磁盘。

VS Code 这里就是个代码编辑器,没有 DevEco Device Tool 功能那么丰富的功能。

然后建一个自己工作文件夹,我自己命名为hi3861,直接建在applications下,这个文件夹放的是应用文件。

然后写一个代码,这个代码可以从\\applications\sample\wifi-iot\app下复制一个,然后修改。

代码就打印一行 hello world

这段代码是修改至iothardware,只留下最基本的运行代码部分,其他都删除,具体含义以后再说。

然后修改2个构建文件。

一个构建文件是在代目录下,说明运行的代码,和外面访问名。

另一个构建文件是在hi3861这个工作目录下,是给外部访问用,说明要运行的代码,和对外接入名。

这还不能编译,还要修改 \\build\lite\components\applications.json文件,先备份一下,防止修改出错无法挽回。

然后修改系统默认项:

    {
      "component": "wifi_iot_sample_app",
      "description": "Wifi iot samples.",
      "optional": "true",
      "dirs": [
        "applications/sample/wifi-iot/app"
      ],
      "targets": [
        "//applications/sample/wifi-iot/app"
      ],
      "rom": "",
      "ram": "",
      "output": [],
      "adapted_board": [ "hi3861v100" ],
      "adapted_kernel": [ "liteos_m" ],
      "features": [],
      "deps": {
          "components": [
            "utils_base"
        ]
      }
    },

修改成我们自己的目录

    {
      "component": "hi3861",
      "description": "hi3861 app.",
      "optional": "true",
      "dirs": [
        "applications/hi3861"
      ],
      "targets": [
        "//applications/hi3861:app"
      ],
      "rom": "",
      "ram": "",
      "output": [],
      "adapted_board": [ "hi3861v100" ],
      "adapted_kernel": [ "liteos_m" ],
      "features": [],
      "deps": {
          "components": [
            "utils_base"
        ]
      }
    },

然后再继续修改下面\\vendor\hisilicon\hispark_pegasus\config.json

原来是这样的

      {
        "subsystem": "applications",
        "components": [
          { "component": "wifi_iot_sample_app", "features":[] }
        ]
      },

改成我们自己的

      {
        "subsystem": "applications",
        "components": [
          { "component": "hi3861", "features":[] }
        ]
      },

OK! 设置完了。

打开看看根目录下\\ohos_config.json文件,这是hb开始set设置生成的。

然后回到 ubuntu 命令终端下,看看hb是执行命令。

ad@ub:~$ hb -h
usage: hb [-h] [-v] {build,set,env,clean,deps} ...

OHOS Build System version 0.4.3                // OHOS构建系统版本0.4.3

positional arguments:
  {build,set,env,clean,deps}            // {生成、设置、环境、清理、deps}
    build               Build source code    // 生成源代码
    set                 OHOS build settings    // 设置OHOS生成设置
    env                 Show OHOS build env    // 显示OHOS构建env
    clean               Clean output        // 清洁输出
    deps                OHOS components deps    // OHOS组件deps

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit

ad@ub:~/oh_code$ hb build -h
usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]]
                [--dmverity] [--tee] [-p PRODUCT] [-f] [-n]
                [-T [TARGET [TARGET ...]]] [-v] [-shs] [--patch]
                [--gn-args GN_ARGS]
                [component [component ...]]

positional arguments:
  component             name of the component

optional arguments:
  -h, --help            show this help message and exit

  -b BUILD_TYPE, --build_type BUILD_TYPE
                        release or debug version    // 发布 或 调试 版本

  -c COMPILER, --compiler COMPILER
                        specify compiler        // 指定编译器

  -t [TEST [TEST ...]], --test [TEST [TEST ...]]
                        compile test suit        // 编译适合测试
      --dmverity            Enable dmverity
      --tee                 Enable tee

  -p PRODUCT, --product PRODUCT
                        build a specified product with    // 使用生成指定的产品
                        {product_name}@{company}, eg: camera@huawei

  -f, --full            full code compilation        // 完整代码编译

  -n, --ndk             compile ndk            // 编译ndk 原生开发工具包

  -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]]
                        Compile single target        // 编译单个目标

  -v, --verbose         show all command lines while building

      -shs, --sign_haps_by_server
                        sign haps by server
      --patch               apply product patch before compiling
      --gn-args GN_ARGS     specifies gn build arguments, eg: --gn-args="foo="bar"
                        enable=true blah=7"

ad@ub:~$ hb clean -h
usage: hb clean [-h] [out_path]

positional arguments:            // 位置参数:
  out_path    clean a specified path.    // out_path 清除指定的路径。

optional arguments:
  -h, --help  show this help message and exit

然后总结这个几个命令

hb clean
hb build -b debug -f
hb build -b release -f
hb build -f

但是,我们这么做release模式没有用,怎么编辑最后都是完全编译。再进入\\vendor\hisilicon\hispark_pegasus\config.json 把test测试组件删除,不进入测试项。

      {
       "subsystem": "test",
       "components": [
         { "component": "xts_acts", "features":[] },
         { "component": "xts_tools", "features":[] }
        ]
      }

最后这个2个编译命令就行了。

hb clean

hb build -f

在ubuntu命令终端,进入源码目录,输入这2个命令。没有测试代码,少编译了100多行。

烧录

要把串口驱动先装好。打开HiBurn,设置-烧写设置,波特率选2000000,这个速度比较稳定也够快,否这默认速度太慢了。

选好串口,自动烧写选中,打开“选择文件”,选择影响盘里 、\out\hispark_pegasus\wifiiot_hispark_pegasus\Hi3861_wifiiot_app_allinone.bin

然后点连接,提示Execution Successful,断开连接。

然后打开串口助手,打开串口,重启模块。

显示 Hello World

过程太碎了,写得也挺水的,以后具体问题再详细写吧。

现在这个模式不是官方推荐的,甚至是老版本也都建议用DevEco Device Tool完成。做个记录吧,也许以后随着版本的迭代这个方式会被最终终止。

相关工具

都能网上下载。

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值