找回密码
 立即注册
搜索
0赞
赞赏
手机版
扫码打开手机版
把文字装进口袋

在HarmonyOS点亮LED步骤

刘moon 2022-8-7 02:30:58
Hi3861 模组的介绍
        ①外观和基本功能
        Hi3861 开发板模组大小约 2cm*5cm,是一款高度集成的 2.4GHz WLAN SoC。
        Hi3861 芯片集成高性能 32bit 微处理器、拥有丰富的外设接口,芯片内置 SRAM(Static Random Access Memory)和 Flash,并支持在 Flash 上运行程序。
        Hi3861 模组有 2MB FLASH,352KB RAM。但我们编写代码时,要注意对有限资源的合理利用。
        Hi3861 可以说是麻雀虽小,五脏俱全。Hi3861 的外设接口包括(外部主晶振为 40M 或者 24M):
        2 个 SPI(Synchronous Peripheral Interface)
        3 个 UART(Universal Asynchronous Receiver & Transmitter)
        2 个 I2C(The Inter-Integrated Circuit)
        6 路 PWM(Pulse Width Modulation)
        15 个 GPIO(General Purpose Input/Output)
        7 路 ADC(Analog to Digital Converter)
        1 个 I2S 接口
        1 个高速 SDIO2.0(Secure Digital Input/Output)接口,最高时钟可达 50MHz
        Hi3861 主控功能框架图:
       

        Hi3861 原理图:
       

       

        Hi3861 开发环境的搭建
        因为截至本文发布,Linux 平台下的开发工具不支持 Hi3861 的烧录(且 Windows 平台中的编译环境比较难搭建),所以我们得使用 Windows 的工具来烧录,Linux 平台编译。
        Ubuntu20.04 来编译源码,Windows10 通过网络从 Ubuntu 中下载二进制文件,并烧录二进制文件到 Hi3861 中。
        ①Ubuntu20.04 开发环境的搭建
        可以在 Windows10 中使用 virtual box 虚拟机软件来安装一个下载好的 Ubuntu20.04 镜像,从而拥有 Ubuntu20.04 基本的开发环境。这里忽略。
        假设:
        已有 Ubuntu20.04 系统
        可以联网
        可以使用 ssh 连接
        其空闲存储空间(推荐)在 30G 以上
        执行以下命令来搭建 Ubuntu20.04 的环境:
        // Ubuntu20+
        sudo apt update
        sudo apt install -y vim gcc g++ flex bison texinfo make zlib* libffi-dev git git-lfs iputils-ping iproute2 net-tools
        sudo apt install -y build-essential python3 python3-pip python3.8-venv scons python3-testresources
        pip3 install scons ; scons -v
        pip3 install kconfiglib
        pip3 install pycryptodome
        pip3 install six --upgrade --ignore-installed six
        pip3 install ecdsa
        // 安装hb
        python3 -m pip install --user ohos-build
        // 安装编译链gcc_riscv32整合包, // 或者自行下载gcc_riscv32各个组件 并且编译, N/A
        wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
        // 使用~/.bashrc来配置环境变量
        export PATH=$PATH:~/work/tools/gcc_riscv32/binsource ~/.bashrc
        //检查编译链是否安装好
        $ riscv32-unknown-elf-gcc -v
        。..
        gcc version 7.3.0 (GCC)
        // downloads devicetool-linux-tool
        wget https://contentcenter-vali-drcn.dbankcdn.com/pvt_2/DeveloperAlliance_package_901_9/50/v3/3iXerz92RfqKxMyzEXHblg/devicetool-linux-tool-2.1.0.0.zip?HW-CC-KV=V1&HW-CC-Date=20210531T110021Z&HW-CC-Expire=315360000&HW-CC-Sign=24AFCA46B37541ED3A936186EEDF627CFD397B7C202FFEEF564D820897F75822
        //install vscode, install node.js & hpm
        N/A
        // unzip & install the tool
        bash deveco-device-tool-2.2.0+285431.76f4090e.run
        // 最后可能有个warning信息,我们按照提示来安装一个软件即可
        sudo apt install authbind
        。..
        // downloads the source codes
        wget https://repo.huaweicloud.com/harmonyos/os/1.1.2/code-v1.1.2-LTS.tar.gz
        tar -xvf code-v1.1.2-LTS.tar.gz
        进入源代码根路径,进行配置和编译,“build success” 就意味着编译环境搭建成功。
        $ cd code-v1.1.2-LTS
        $ hb set
        [OHOS INFO] Input code path: 。
        OHOS Which product do you need? wifiiot_hispark_pegasus
        $ hb build
        。..
        [OHOS INFO] wifiiot_hispark_pegasus build success
        [OHOS INFO] cost time: 0:00:37
        $ ls out/hispark_pegasus/wifiiot_hispark_pegasus/ -alh
        total 31M
        drwxrwxr-x 7 henry henry 4.0K 9月 2 14:52 。
        drwxrwxr-x 3 henry henry 4.0K 9月 2 14:51 。.
        -rw-rw-r-- 1 henry henry 462 9月 2 14:51 args.gn
        -rw-rw-r-- 1 henry henry 47K 9月 2 14:52 build.log
        -rw-rw-r-- 1 henry henry 26K 9月 2 14:51 build.ninja
        -rw-rw-r-- 1 henry henry 5.3K 9月 2 14:51 build.ninja.d
        drwxrwxr-x 3 henry henry 4.0K 9月 2 14:51 gen
        -rw-rw-r-- 1 henry henry 24K 9月 2 14:52 Hi3861_boot_signed_B.bin
        -rw-rw-r-- 1 henry henry 24K 9月 2 14:52 Hi3861_boot_signed.bin
        -rw-rw-r-- 1 henry henry 15K 9月 2 14:52 Hi3861_loader_signed.bin
        -rw-rw-r-- 1 henry henry 1.2M 9月 2 14:52 Hi3861_wifiiot_app_allinone.bin
        -rw-rw-r-- 1 henry henry 22M 9月 2 14:52 Hi3861_wifiiot_app.asm
        -rw-rw-r-- 1 henry henry 1.2M 9月 2 14:52 Hi3861_wifiiot_app_burn.bin
        -rw-rw-r-- 1 henry henry 25K 9月 2 14:52 Hi3861_wifiiot_app_flash_boot_ota.bin
        -rw-rw-r-- 1 henry henry 3.5M 9月 2 14:52 Hi3861_wifiiot_app.map
        -rw-rw-r-- 1 henry henry 570K 9月 2 14:52 Hi3861_wifiiot_app_ota.bin
        -rwxrwxr-x 1 henry henry 2.2M 9月 2 14:52 Hi3861_wifiiot_app.out
        -rw-rw-r-- 1 henry henry 8 9月 2 14:52 Hi3861_wifiiot_app_vercfg.bin
        drwxrwxr-x 2 henry henry 4.0K 9月 2 14:51 libs
        -rw-rw-r-- 1 henry henry 37K 9月 2 14:52 .ninja_log
        drwxrwxr-x 4 henry henry 4.0K 9月 2 14:51 NOTICE_FILE
        drwx------ 12 henry henry 4.0K 9月 2 14:51 obj
        drwxrwxr-x 3 henry henry 4.0K 9月 2 14:51 suites
        -rw-rw-r-- 1 henry henry 34K 9月 2 14:51 toolchain.ninja
        ②Windows10 开发环境的搭建
        如下表:
        安装 hpm:
        // 建议将npm源配置为国内镜像,例如设置为华为云镜像源。
        npm config set registry https://repo.huaweicloud.com/repository/npm/// 打开命令行工具,执行如下命令安装最新版本hpm。
        npm install -g @ohos/hpm-cli
        //如果已安装hpm,可以执行命令升级hpm至最新版本。
        npm update -g @ohos/hpm-cli
        问题:DevEco Device Tool安装失败:
        “[Errno 13] Permission denied: ‘xxx.deveco-device-toolcoretool_openlogic_openjdk_jrejrebinucrtbase.dll’”
        解决:
        退出了 360 安全卫士,关闭杀毒软件和所有其他不相关软件:vscode,OpenJDK…
        手动删除 C:Users《xxx》AppDataLocaldeveco-device-tool-installer 和 C:Users《xxx》.deveco-device-tool 这两个目录
        重新安装
        重启 vscode 后,在左侧功能图标中有 deveco 的图标出现,即表示 deveco 安装成功
        点亮 Hi3861 的 LED
        Hi3861 的 gpio 功能列表如下图:
        ①首先我们应该找到 Hi3861 的原理图,LED1 对应的是 GPIO09
        根据这个原理图,我们只要保持 J3 的跳冒是连接的,从 CPU 引过来的 GPIO09 保持低电平,那么 LED1 就会点亮了。
        HarmonyOS 的 gpio 操作流程为:
        因为我们不是操作 gpio 来获取/控制/响应 gpio 的中断,所以只需要关心读写 gpio 的流程即可。
        ②HarmonyOS 中提供了 LED 的 demo,可以供我们使用
        代码如下:
        code-v1.1.2-LTS/applications/sample/wifi-iot/app/iothardware/led_example.c
        我们需要修改配置文件:app/BUILD.gn,添加相对路径“iothardware”下的库“led_example”,中间以“:”分隔开。
        修改好后,我们就可以到源码的根目录中使用“hb build”来编译了。
        注:“led_example”库名称是由 iothardware/BUILD.gn 来指定的。
        烧录二进制文件到 Hi3861
        ①下载 Ubuntu 中的源码二进制文件到 Windows10 中
        所有的生成文件在:code-v1.1.2-LTS/out 目录中。
        我们使用 mobaxterm 工具:
        https://mobaxterm.mobatek.net/download.html
        ssh 访问到我们的 Ubuntu20.04 后,就可以用其 sftp 功能下载 out 目录到我们的 win10 的 download 目录中。
        ②在 Windows10 中已经安装好 deveco 工具的 vscode 打开
        一定要打开包含 out 目录的上一级目录:如我们的下载目录 downloads 文件夹。
        直接可以作为一个项目打开,选择 framework 为:hb,平台为:hi3861。
        ③配置项目的下载信息
        连接好自己的 hi3861 模组,如果电脑没有装 ch340 串口驱动,一定别忘了装。
        ④点击烧录
        烧录的过程中,会在 vscode 的终端提示重启开始烧录,请按下 hi3861 的 reset 键开始烧录。
        烧录成功后,重新上电即可立即运行:
        责任编辑:haq

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

使用道具 举报

您需要登录后才可以回帖 立即登录
不错
2022-8-7 03:00:29
太赞了
2022-8-7 22:18:39
支持!!!!前排!!!!
2022-8-8 18:30:16
感觉不错
2022-8-9 14:41:53
支持!!!!!!
2022-8-11 03:55:54
抢楼了,前排第一次啊
2022-8-12 17:09:54
学习一下!十分感谢
2022-8-15 16:06:26
支持一下,期待更多东西
2022-8-18 15:02:58
2022-8-19 18:33:28
123下一页
返回顶部