[文章]

HarmonyOS智能设备开发极速入门教程【三、四、五、六、七部分】

2021-7-26 11:45:20  408 HarmonyOS 智能设备开发 入门教程
分享
4
本帖最后由 李洋水蛟龙 于 2021-7-26 16:47 编辑

第三部分:编译环境安装
一、配置编译环境
A. 下载安装ubuntu虚拟机;(具体过程第四部分说明)
B. 安装python
1. 查看Ubuntu自带python版本;
python3 –version
2. 如果版本低于python3.7,请按照如下步骤重新安装。
Ubuntu 18.0环境下:
sudo apt-get install python3.8
Ubuntu 20.0环境下:
a) 安装依赖包
sudo apt update && sudo apt install software-properties-common
b) 添加deadsnakes PPA 源。
sudo add-apt-repository ppa:deadsnakes/ppa
c) 安装python3.8
sudo apt upgrade && sudo apt install python3.8
3. 设置pythonpython3软链接为python3.8
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
4. 安装并升级Python包管理工具(pip3),任选如下一种方式。
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
5. 安装gn
   下载地址:https://repo.huaweicloud.com/HarmonyOS/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
    解压:
mkdir ~/gn
tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn
6. 安装ninja
  下载地址:https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
解压:
tar -xvf ninja.1.9.0.tar -C ~/
7. 安装llvn
  下载地址:
https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gz
解压:
tar -zxvf llvm.tar.gz -C ~/
8. hb
A. python3 -m pip install --user ohos-build
B. 配置环境
打开配置文件:
vim ~/.bashrc
进行修改,在最后一行后面加入:
export PATH=~/ninja:$PATH
export PATH=~/llvm/bin:$PATH
export PATH=~/.local/bin:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
按下Esc,输入:wq!按下回车保存并退出;
执行如下命令更新环境变量。
source ~/.bashrc
9. apt安装全部依赖的工具
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwaRF-dev u-boot-tools mtd-utils
二、安装编译工具
1. 安编译依赖基础软件(仅Ubuntu 20+需要)
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev
2. 安装Scons
a) 输入命令:
python3 -m pip install scons
b) 查看是否安装成功(显示正确版本号即成功):
scons -v
3. 安装python模块
4. 安装python模块setuptools
pip3 install setuptools
5. 安装GUI menuconfig工具(Kconfiglib
sudo pip3 install kconfiglib
6. 安装pycryptodome
sudo pip3 install pycryptodome
7. 安装six
sudo pip3 install six --upgrade --ignore-instalLED six
a) 安装ecdsa
   sudo pip3 install ecdsa
8. 安装编译链工具
   下载地址: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=~/gcc_riscv32/bin:$PATH
保存退出后执行命令使变量生效:source ~/.bashrc
查看是否安装成功:riscv32-unknown-elf-gcc -v
、将vscode代码编写、烧录环境和ubuntu编译环境结合
1、 构建共享文件夹:
a 配置共享文件夹路径
图片1.png
b 安装VMware tool工具

开机过程中点击安装VMware tool
图片2.png

DVD中获取压缩包解压到主目录下:
图片3.png

打开文件夹进入终端输入:sudo  ./vmware-install.pl
图片4.png
图片5.png

根据提示第一个输入yes,其他回车即可安装成功
图片6.png
图片7.png

c打开计算机下的mnt/hfg可以看到共享文件夹
图片8.png
图片9.png
2、 vscode使用ssh连接ubuntu
a 在虚拟机终端上输入:service ssh start 开启ssh远程连接;
bvscode下的终端输入ssh user@ip 其中user表示虚拟机用户名,ip表示虚拟机ip地址,如:ssh jltf@127.0.0.1

c 连接成功后可以在vscode终端控制虚拟机,不必频繁切换环境;
、安装串口工具(用于连接开发板)
下载地址:http://www.hihope.org/download/download.aspx?mtt=8
下载后点击安装包即可。
第四部分:虚拟机安装流程
一、下载
VMware下载地址:https://www.vmware.com/products/workstation-pro.html
Ubuntu镜像:http://mirrors.aliyun.com/ubuntu-releases/16.04/ubuntu-16.04.6-desktop-i386.iso
二、安装VMware
1、打开VMware安装包

2、点击下一步
图片10.png

3、点击接受许可->下一步
图片11.png
图片12.png

4、修改安装路径,点击下一步
图片13.png
图片14.png
图片15.png
安装过程出错参考:
https://jingyan.baidu.com/article/27fa7326b487e646f8271fc2.html
三、添加虚拟机
1、打开VMware

2、选择创建性新的虚拟机
图片16.png

3、选择自定义,点击下一步
图片17.png
图片18.png

4、选择稍后安装操作系统,点击下一步;
图片19.png

5、选择Linux系统的Ubuntu,之后一直点击下一步即可;
图片20.png

6、选择安装操作系统的路径
图片21.png
图片22.png
图片23.png
图片24.png
图片25.png
图片26.png
图片27.png
图片28.png
图片29.png
四、安装操作系统

1、选择虚拟机的CD/DVD为下载的Ubuntu路径;
图片30.png
2、点击运行,打开虚拟

3、选择语言,点击安装系统;
图片31.png

4、选择键盘类型;
图片32.png

5、点击继续;
图片33.png

6、点击现在安装;
图片34.png

7、选择时区,点击继续;
图片35.png

8、填写计算机信息,点击继续进行安装,等待一段时间即可;
图片36.png
9、重新打开虚拟机便进入操作桌面,第一次打开时间会有点长。

第五部分:开发板编译烧录过程

前提:安装好开发板编译环境(ubuntu)和烧录环境(vsCode+devEco tool;
第一步:获取源码;
下载地址:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md
建议不用使用镜像方式获取,因为获得的压缩包解压后有可能丢失文件,导致编译如图错误

code-2.0-canary\device\hisilicon\hispark_pegasus\sdk_liteos\third_party\u-boot-v2019.07\u-boot-v2019.07\lib下的SConscript文件丢失;
图片37.png
第二步:使用tools插件打开源码并配置项目参数;

1 打开对应得文件夹
图片38.png
图片39.png

2 配置开发板类型(hi861)和源码来源(hb);
图片40.png

3 配置项目参数Upload_port(根据自己的串口填写),开发板类型upload_protocol(hi861),协议upload_partitions(partition:hi3861_app),用于之后的烧录;
图片41.png
图片42.png
第三步:编译;
使用ssh连接或者直接到ubuntu下编译,如图顺序输入命令
hb set
.
hb build

显示成功即可。
图片43.png
图片44.png
第三步:烧录;

点击tools下的烧录按钮;
图片45.png

终端显示如图画面时,按下开发板上的RST键复位;
图片46.png

如图表示烧录成功
图片47.png

第六部分 跑第一个程序

一、 修改文件解决代码不能正确检索跳转问题

刚刚打开的项目.c文件会出现如图错误,虽然不会影响项目正确性,但为了可以方便正确编写代码,可以进行以下配置
图片48.png

修改以下三个文件:
图片49.png
修改.vscode/c_cpp_properties.json:
{
    "configurations": [
        {
            "name": "!!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT"
        },
        {
            "name": "Win32-debug",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "path": [
                    "${workspaceFolder}/**"
            },
            "defines": [
                ""
            ],
            "intelliSenseMode": "clang-x64",
            "compilerArgs": [
                ""
        }
    ],
    "version": 4
}
.vscode/extensions.json:
{
}
.vscode/settings.json
{
    "C_Cpp.default.browse.path": [
        "${workspaceFolder}/**"
    ],
    "C_Cpp.default.includePath": [
        "${workspaceFolder}/**"
    ],
}
等待一段时间,等系统检索报错便会消失。
二、 编写代码

./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
图片50.png
hello.c中添加内容
#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"

void HelloWorld(void)
{
    printf("[DEMO] Hello world.\n");
}
SYS_RUN(HelloWorld);//说明执行那个函数

my_first_app下的BIULD.gn中填写编译所需信息(目标、源文件、头文件路径

static_library("myapp") {//目标
    sources = [
        "hello.c"//源文件
    include_dirs = [
        "//utils/native/lite/include"//头文件路径
}
填写my_first_app同级目录下的BIULD.gn

import("//build/lite/config/component/lite_component.gni")

lite_component("app") {
    features = [
       "my_first_app:myapp",
}
三、 执行
依次执行编译、烧录,最后通过调试按钮查看串口信息,显示成功。
图片51.png

第七部分:后续练习提示
基于Hi3861开发板的具体功能实现,已经有很多前辈有详细教程和很多可以直接使用的代码,我们认为在遵循开源使用协议的情况下,后续的相关练习可以直接使用和引用网上公开的相关代码,会比自己重头去摸索效率高很多,我们很早前也有一些基于Hi3861练习的作品和文档可以供参考。
由于IDE工具版本、OpenHarmony版本的变化升级等,早期的入门流程或者一些教材不一定适用;本教程是根据HarmonyOS官方指导文档,于20217月上旬、中旬全流程团队亲测的过程,可以供后续学习者直接引用或者参考。
模仿练习和体验是学习成长最快的方式,我们相信开发者只要完成本流程,全面体验南向开发的IDE各项功能,并参照原有的Hi3861已经实现的各项功能去进行练习,很快可以进入独立创新练习与开发阶段。

本文档教程,有不完善和不对的地方,欢迎指正。
dianzi 2021-7-26 11:54:11
老师,图全挂了啊
1回复

举报

李洋水蛟龙 2021-7-26 14:42:31
https://bbs.elecfans.com/jishu_2129426_1_1.html 把第一、第二部分放到一起,方便沟通。
回复

举报

李洋水蛟龙 2021-7-26 14:42:39
https://bbs.elecfans.com/jishu_2129426_1_1.html 把第一、第二部分放到一起,方便沟通。
回复

举报

评论

您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发文章
快速回复
扫一扫分享
返回顶部 返回列表