写点什么

“程”风破浪的开发者|OpenHarmony 开发环境搭建

作者:Geek_912cd6
  • 2022-10-26
    广东
  • 本文字数:4613 字

    阅读完需:约 15 分钟

“程”风破浪的开发者|OpenHarmony 开发环境搭建

OpenHarmony 源码的编译构建


需要工具


ubuntu 20.0.4


vm


windows


第一步,安装虚拟机,安装虚拟机注意的一个地方就是,硬盘建议 100G 以上


安装好之后,打开虚拟机,打开命令行工具,


安装网络工具


sudo apt-get install net-tools
复制代码


显示网络配置


ifconfig



安装 vim


sudo apt-get install vim
复制代码


将 Ubuntu Shell 环境修改为 bash


执行如下命令,确认输出结果为 bash。


ls -l /bin/sh
复制代码


结果发现不是,所以做个修改


sudo dpkg-reconfigure dash
复制代码


将 Ubuntu shell 由 dash 修改为 bash。选择 no



此时修改成功



安装远程工具


具有 SSH、远程登录、RDP、VNC 和 X11 的 MobaX 术语 X 服务器 - 家庭版 (mobatek.net)


连接 192.168.144.128


设置桥接模式


安装 ssh


sudo apt-get install ssh
复制代码


使用如下 apt-get 命令安装编译所需的必要的库和工具


sudo apt-get install gcc
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 gcc-arm-linux-gnueabi cpio device-tree-compiler
复制代码


关于 git


生成 key


 ssh-keygen -t rsa -C "852851198@qq.com"
复制代码


然后三次回车即可生成 ssh key,


查看你的 public key,


cat ~/.ssh/id_rsa.pub# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
复制代码


添加后,在终端(Terminal)中输入


ssh -T git@gitee.com
复制代码


若返回


Welcome to Gitee.com, yourname!
复制代码


则证明添加成功。


安装 git


sudo apt-get install git
sudo apt-get install git-lfs
复制代码


配置


git config --global user.name "徐建国" git config --global user.email "852851198@qq.com"git config --global credential.helper storegit config --global  --list
复制代码


安装 curl


sudo apt-get install curl
复制代码


curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo 
复制代码


sudo cp repo /usr/local/bin/repo 
复制代码


注意,如果没有权限,可下载至其他目录,并将其配置到环境变量中


sudo chmod a+x /usr/local/bin/repo 
复制代码


安装


sudo apt install python3-pip
复制代码


pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
复制代码

安装码云 repo 工具,可以执行如下命令。

curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo  
复制代码


注意,如果没有权限,可下载至其他目录,并将其配置到环境变量中


chmod a+x /usr/local/bin/repopip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
复制代码


查看目录


ls -a


下载代码


mkdir openharmony


cd openharmony


mkdir code


cd code


mkdir master


cd master


mkdir master0912


cd master0912

源码获取

方式一:通过 repo + ssh 下载(需注册公钥,请参考码云帮助中心)。

repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'
复制代码

方式二(个人推荐这个):通过 repo + https 下载。

 sudo ln -s /usr/bin/python3 /usr/bin/python
复制代码


repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'
复制代码

通过 repo 获取

建立软连接


 sudo ln -s /usr/bin/python3 /usr/bin/python
复制代码


方式一(推荐):通过 repo + ssh 下载(需注册公钥,请参考码云帮助中心)。


repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.0.1-LTS --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'
复制代码


方式二:通过 repo + https 下载。


repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.0.1-LTS --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'
复制代码


以下是主干代码的下载方式,但是主干代码可能会不稳定,不推荐大家使用,推荐大家使用 TLS 版本


安装 hb 在源码根目录下载运行如下命令安装 hb


python3 -m pip install build/lite
复制代码


设置环境变量


vim ~/.bashrc
复制代码


将以下命令拷贝到.bashrc 文件的最后一行,保存并退出。


export PATH=~/.local/bin:$PATH
复制代码


执行如下命令更新环境变量。


source ~/.bashrc
复制代码


执行"hb -h",界面打印以下信息即表示安装成功:


hb -h
复制代码


usage: hb
OHOS build system
positional arguments: {build,set,env,clean} build Build source code set OHOS build settings env Show OHOS build env clean Clean output
optional arguments: -h, --help show this help message and exit
复制代码

Hi3861 开发环境

最好参考官方文档:Hi3861开发环境这里做下记录


(1)安装编译依赖基础软件(仅 Ubuntu 20+需要)执行以下命令进行安装:


sudo apt-get install build-essential gcc g++ make zlib* libffi-dev
复制代码


(2)安装 Scons 运行如下命令,安装 SCons 安装包。


python3 -m pip install scons
复制代码


运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。


scons -v
复制代码



图 1 SCons 安装成功界面,版本要求 3.0.4 以上


(3)安装 python 模块运行如下命令,安装 python 模块 setuptools。


pip3 install setuptools
复制代码


(4)安装 GUI menuconfig 工具(Kconfiglib),建议安装 Kconfiglib 13.2.0+版本,任选如下一种方式。


命令行方式:


sudo pip3 install kconfiglib
复制代码


(5)安装 pycryptodome,任选如下一种方式。


安装升级文件签名依赖的 Python 组件包,包括:pycryptodome、six、ecdsa。安装 ecdsa 依赖 six,请先安装 six,再安装 ecdsa。


命令行方式:


sudo pip3 install pycryptodome
复制代码


(6)安装 six,任选如下一种方式。


命令行方式:


sudo pip3 install six --upgrade --ignore-installed six
复制代码


(7)安装 ecdsa,任选如下一种方式。


命令行方式:


sudo pip3 install ecdsa
复制代码


(8)安装 gcc_riscv32(WLAN 模组类编译工具链)下载以下交叉编译工具链:交叉编译工具链下载


安装 samba


sudo apt-get update
sudo apt-get install sambasudo apt-get install samba-common
复制代码


修改 samba 配置文件


sudo vim /etc/samba/smb.conf
复制代码


在最后加入如下内容:


[work]comment = samba home directorypath = /homepublic = yesbrowseable = yespublic = yeswriteable = yesread only = novalid users = hihope #用户名和你的主机一致create mask = 0777directory mask = 0777#force user = nobody#force group = nogroupavailable = yes
复制代码


用 tab 键


保存退出后,输入如下命令,设置 samba,建议 123456 即可


sudo smbpasswd -a hihope
复制代码


重启 samba 服务


sudo service smbd restart
复制代码



输入用户名密码登录


进入到 openharmony,创建 tools 文件夹


压缩包复制进来


请先执行以下命令将压缩包解压到根目录:


tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~vim ~/.bashrc
复制代码


将以下命令拷贝到.bashrc 文件的最后一行,保存并退出。


export PATH=~/gcc_riscv32/bin:$PATH
复制代码


生效环境变量。


source ~/.bashrc
复制代码


Shell 命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。


riscv32-unknown-elf-gcc -v
复制代码



源码目录 下载完代码后,大家可以进入代码目录


hb set
复制代码


这里我们选择 wifiiot_hispark_pegasus


之后输入:


hb build -f
复制代码


开始编译



编译后的固件


 ls out/hispark_pegasus/wifiiot_hispark_pegasus/
复制代码



烧录 3516

第一步:安装远程连接插件 Remote-SSH

点击弹出的 config 文件,如下图



kaifa


Remote-SSH


编译构建系统解读,BUILD.gn 分析


如何新建自己的应用并导入到编译中


/home/hihope/openharmony/code/master/master0912/applications/sample/wifi-iot/app/BUILD.gn


头文件找不到


#include <stdio.h>#include "iot_gpio.h"int my_app(void){    IoTGpioInit(LED_TEST_GPIO);    IoTGpioSetDir(LED_TEST_GPIO, IOT_GPIO_DIR_OUT);    printf("helloword\r\n");}SYS_RUN(my_app);
复制代码


之前


static_library("my_app") {    #源代码    sources = [        "hello_word.c"    ]#头文件路径    include_dirs = [        "//utils/native/lite/include",        "//kernel/liteos_m/kal/cmsis",        ]}
复制代码


之后


static_library("my_app") {    #源代码    sources = [        "hello_word.c"    ]#头文件路径    include_dirs = [        "//utils/native/lite/include",        "//kernel/liteos_m/kal/cmsis",        "//base/iot_hardware/peripheral/interfaces/kits",    ]}
复制代码


find . -name iot_gpio.h


hihope@ubuntu:~/openharmony/code/master/master0912$ find . -name iot_gpio.h./base/iot_hardware/peripheral/interfaces/kits/iot_gpio.hhihope@ubuntu:~/openharmony/code/master/master0912$
复制代码


#include <stdio.h>#include "iot_gpio.h"#define LED_INTERVAL_TIME_US 300000#define LED_TASK_STACK_SIZE 512#define LED_TASK_PRIO 25#define LED_TEST_GPIO 9 // for hispark_pegasusenum LedState {    LED_ON = 0,    LED_OFF,    LED_SPARK,};int my_app(void){    IoTGpioInit(LED_TEST_GPIO);    IoTGpioSetDir(LED_TEST_GPIO, IOT_GPIO_DIR_OUT);    printf("helloword\r\n");}SYS_RUN(my_app);
复制代码


tab 键


static_library("my_app") {    #源代码    sources = [        "hello_word.c"    ]#头文件路径    include_dirs = [        "//utils/native/lite/include",        "//kernel/liteos_m/kal/cmsis",        "//base/iot_hardware/peripheral/interfaces/kits",    ]}
复制代码


如何引用第三方组件


/home/hihope/openharmony/code/master/master0912/third_party/JSON-C/BUILD.gn


static_library("my_app") {    #源代码    sources = [        "hello_word.c"    ]#头文件路径    include_dirs = [        "//utils/native/lite/include",        "//kernel/liteos_m/kal/cmsis",        "//base/iot_hardware/peripheral/interfaces/kits",    ]    deps=[        "//third_party/JSON-C:json-c_static"    ]}
复制代码


如何自己添加第三方组件


仿照 jsonc


static_library("my_app") {    #源代码    sources = [        "hello_word.c"    ]#头文件路径    include_dirs = [        "//utils/native/lite/include",        "//kernel/liteos_m/kal/cmsis",        "//base/iot_hardware/peripheral/interfaces/kits",    ]    deps=[        "//third_party/JSON-C:json-c_static",        "//third_party/my_party:my_first_party_static"    ]}
复制代码


static_library("my_first_party_static") {  sources = ["01.c"]  output_name = "json-c"  public_configs = [ ":json_c_config" ]  defines = [    "HAVE_CONFIG_H",    "_GNU_SOURCE",    "_REENTRANT",  ]  cflags_c = [    "-Wall",    "-Os",    "-g",    "-Wcast-qual",    "-Wextra",    "-Wno-unused-parameter",    "-Wno-error=deprecated-declarations",    "-ffunction-sections",    "-fdata-sections",  ]  ldflags = [    "-Wl",    "--gc-sections",  ]}
复制代码


void test_01(void){    printf("____________>>>>>>>>test_01");}
复制代码


如何连接开发板为 PA 模式


、Hi3861 上面有一个 user 按键,用户可以按下这个按钮,Hi3861 会进入 AP 模式


HI3861 启动流程._鸿蒙系统设备开发_设备开发视频-51CTO学堂

发布于: 刚刚阅读数: 5
用户头像

Geek_912cd6

关注

还未添加个人签名 2022-10-26 加入

还未添加个人简介

评论

发布
暂无评论
“程”风破浪的开发者|OpenHarmony 开发环境搭建_OpenHarmony_Geek_912cd6_InfoQ写作社区