diff --git a/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001119755646.png b/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001119755646.png new file mode 100644 index 0000000000000000000000000000000000000000..49e517a76ad01d207f50374b9599e702e7f7d51c Binary files /dev/null and b/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001119755646.png differ diff --git a/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001119915556.png b/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001119915556.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f1a0a961887f540f67e2550c03bc39f5bbcb6a Binary files /dev/null and b/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001119915556.png differ diff --git a/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001166715379.png b/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001166715379.png new file mode 100644 index 0000000000000000000000000000000000000000..6dea0571ab21041f89fbb47f9fa49a7a6da5aee3 Binary files /dev/null and b/zh-cn/device-dev/get-code/figures/zh-cn_image_0000001166715379.png differ diff --git "a/zh-cn/device-dev/get-code/\346\272\220\347\240\201\350\216\267\345\217\226.md" "b/zh-cn/device-dev/get-code/\346\272\220\347\240\201\350\216\267\345\217\226.md" index e23b8a0bdd5e3b3138441b80ce4fc4c57f4e3fce..f28d683ae63b1ac82974c3794adfe9492d715ef1 100755 --- "a/zh-cn/device-dev/get-code/\346\272\220\347\240\201\350\216\267\345\217\226.md" +++ "b/zh-cn/device-dev/get-code/\346\272\220\347\240\201\350\216\267\345\217\226.md" @@ -2,22 +2,22 @@ - [OpenHarmony介绍](#section6370143622110) - [源码获取概述](#section12763342204) -- [获取方式1:从镜像站点获取](#section1186691118430) +- [获取方式1:从代码仓库获取](#section537312010229) + - [适用场景](#section10881513459) + - [前提条件](#section102871547153314) + - [操作步骤](#section429012478331) + - [获取方式2:从HPM(包管理器)组件式获取](#section463013147412) - [适用场景](#section26661067443) - - [前提条件](#section1254674354310) - - [操作步骤](#section44161731194418) - -- [获取方式3:从代码仓库获取](#section537312010229) - - [适用场景](#section10881513459) - - [准备](#section10938122310459) - - [操作](#section151644112456) + - [前提条件](#section17544943123315) + - [操作步骤](#section954619433333) +- [获取方式3:从镜像站点获取](#section1186691118430) - [源码目录简介](#section1072115612811) ## OpenHarmony介绍 -OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。 +OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。 开源代码仓库地址:[https://openharmony.gitee.com](https://openharmony.gitee.com) @@ -28,11 +28,193 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 本文档将介绍如何获取OpenHarmony源码并说明OpenHarmony的源码目录结构。OpenHarmony的代码以[组件](../bundles/概述.md)的形式开放,开发者可以通过如下其中一种方式获取: -- **获取方式1**:从镜像站点下载归档后的发行版压缩文件。如果要获取旧版本的源码,也可通过此方式获取(推荐)。 +- **获取方式1**:从代码仓库获取。通过repo或git工具从代码仓库中下载,此方式可获取最新代码。 - **获取方式2**:通过HPM包管理器获取。在[HPM](https://hpm.harmonyos.com)网站,查找满足需求的开源发行版,直接下载(或者定制后下载),再通过hpm-cli命令工具将所需的组件及工具链下载、安装到本地。 -- **获取方式3**:从代码仓库获取。通过repo或git工具从代码仓库中下载。 +- **获取方式3**:从镜像站点下载归档后的发行版压缩文件。如果要获取旧版本的源码,也可通过此方式获取,此方式下载速度较快。 + +## 获取方式1:从代码仓库获取 + +### 适用场景 + +- 基于OpenHarmony的稳定分支建立自己的基线,分发下游客户。 + +- 已经完成自身软件与OpenHarmony的对接,需要进行OpenHarmony官方认证。 + +- 芯片/模组/app通过OpenHarmony官方认证后,贡献代码到OpenHarmony社区。 + +- 修复OpenHarmony的问题。 + +- 学习OpenHarmony的源码。 + + +### 前提条件 + +1. 注册码云gitee账号。 +2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4181)。 +3. 安装[git客户端](http://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)和[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)并配置用户信息。 + + ``` + git config --global user.name "yourname" + git config --global user.email "your-email-address" + git config --global credential.helper store + ``` + +4. 安装码云repo工具,可以执行如下命令。 + + ``` + curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 + chmod a+x /usr/local/bin/repo + pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests + ``` + + +### 操作步骤 + +**获取轻量系统/小型系统源码** + +>![](public_sys-resources/icon-note.gif) **说明:** +>主干代码为开发分支,开发者可通过主干代码获取最新特性。release分支代码相对比较稳定,开发者可基于release分支代码进行商用功能开发。 + +- **OpenHarmony主干代码获取** + + 方式一(推荐):通过repo下载 + + ``` + repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + + 方式二:通过git clone单个代码仓库 + + 进入[代码仓库主页](https://gitee.com/openharmony),选择需要克隆的代码仓库,执行命令,如: + + ``` + git clone https://gitee.com/openharmony/manifest.git -b master + ``` + + +- **OpenHarmony release 分支代码获取** + + 通过repo下载 + + ``` + repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + +- **OpenHarmony** 其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md)。 + +**获取标准系统源码(2.0 Canary)** + +1. 创建并切换到OpenHarmony工作目录。 + + ``` + mkdir OpenHarmony + cd OpenHarmony + ``` + +2. repo初始化。 + + ``` + repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify + ``` + +3. 更新代码。 + + ``` + repo sync -c + ``` + +4. 更新二进制。 + + ``` + repo forall -c 'git lfs pull' + ``` + + +## 获取方式2:从HPM(包管理器)组件式获取 + +### 适用场景 + +对于刚接触OpenHarmony的新用户,希望能够参考一些示例解决方案从而进行快速开发。可以在[HPM](https://hpm.harmonyos.com)网站获取下载开源发行版,也可以在开源发行版的基础上定制(添加或删除组件)。然后通过包管理器命令行工具(hpm-cli)将需要的组件及相关的编译工具链全部下载、安装到本地。 + +### 前提条件 + +先要在本地安装Node.js和hpm命令行工具,安装步骤如下: + +1. 安装Node.js。 + + 官网下载并在本地安装Node.js. + + 推荐安装 [Node.js](https://nodejs.org/) 12.x \(包含 npm 6.14.4\)或更高版本 \(推荐 12.13.0+\)。 + +2. 通过Node.js自带的npm安装hpm命令行工具。 + + 打开CMD,执行以下命令: + + ``` + npm install -g @ohos/hpm-cli + ``` + +3. 安装完成后执行如下命令,显示hpm版本,即安装成功。 + + ``` + hpm -V 或 hpm --version + ``` + +4. 如果升级hpm的版本,请执行如下命令: + + ``` + npm update -g @ohos/hpm-cli + ``` + + +### 操作步骤 + +1. 查找发行版。 + 1. 打开包管理页面[HPM](https://hpm.harmonyOS.com),设定搜索的对象为“发行版“,如下图所示。 + 2. 在搜索框输入关键字搜索,如“摄像头”。 + 3. 结果中显示与关键字匹配的发行版,可以进一步根据组件类别等过滤条件(如:适配的开发板,内核)精确筛选。 + 4. 查找合适的发行版,点击查看发行版的详情介绍。 + + **图 1** 包管理 + + + ![](figures/zh-cn_image_0000001119915556.png) + + +2. 了解发行版详情。 + + 1. 仔细阅读发行版的说明信息,以了解使用场景、特性、组件构成、使用方法以及如何进行定制化,如下图所示。 + 2. 点击「直接下载」,将发行版下载到本地。 + 3. 点击「定制组件」,将对发行版包含的组件进行定制(添加/删除)。 + + **图 2** 发行版示例 + + + ![](figures/zh-cn_image_0000001119755646.png) + +3. 定制组件。 + 1. 进入发行版的定制页面,如下图所示。 + 2. 通过关闭开关移除可选组件,或者通过“添加组件”增加新的组件。 + 3. 在右边填写您的项目基本信息,包括名称、版本、描述等信息。 + 4. 点击“下载“,系统会根据您的选择,生成相应的OpenHarmony代码结构文件\(如my\_cust\_dist.zip\),保存至本地文件。 + + **图 3** 组件定制 + + + ![](figures/zh-cn_image_0000001166715379.png) + + +4. 下载安装组件。 + 1. 解压下载的压缩文件,用命令行工具CMD(Linux下的Shell终端) + 2. 在解压后的文件目录下执行hpm install指令 + 3. 下载的组件存在工程目录下的ohos\_bundles文件夹中(部分组件安装后会将源码复制到指定目录下)。 + -## 获取方式1:从镜像站点获取 +## 获取方式3:从镜像站点获取 为了获得更好的下载性能,您可以选择从以下站点的镜像库获取源码或者对应的解决方案。 @@ -52,7 +234,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及

SHA256校验码

-

全量代码

+

全量代码(轻量和小型系统)

1.1.0

@@ -106,7 +288,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及

SHA256校验码

-

全量代码

+

全量代码(标准系统)

2.0 Canary

@@ -115,7 +297,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及

SHA256校验码

-

全量代码

+

全量代码(轻量和小型系统)

1.0(不再维护)

@@ -181,193 +363,6 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 -## 获取方式2:从HPM(包管理器)组件式获取 - -### 适用场景 - -对于刚接触OpenHarmony的新用户,希望能够参考一些示例解决方案从而进行快速开发。可以在[HPM](https://hpm.harmonyos.com)网站获取下载开源发行版,也可以在开源发行版的基础上定制(添加或删除组件)。然后通过包管理器命令行工具(hpm-cli)将需要的组件及相关的编译工具链全部下载、安装到本地。 - -### 前提条件 - -先要在本地安装Node.js和hpm命令行工具,安装步骤如下: - -1. 安装Node.js。 - - 官网下载并在本地安装Node.js. - - 推荐安装 [Node.js](https://nodejs.org/) 12.x \(包含 npm 6.14.4\)或更高版本 \(推荐 12.13.0+\)。 - -2. 通过Node.js自带的npm安装hpm命令行工具。 - - 打开CMD,执行以下命令: - - ``` - npm install -g @ohos/hpm-cli - ``` - -3. 安装完成后执行如下命令,显示hpm版本,即安装成功。 - - ``` - hpm -V 或 hpm --version - ``` - -4. 如果升级hpm的版本,请执行如下命令: - - ``` - npm update -g @ohos/hpm-cli - ``` - - -### 操作步骤 - -1. 查找发行版。 - 1. 打开包管理页面[HPM](https://hpm.harmonyOS.com),设定搜索的对象为“发行版“,如下图所示。 - 2. 在搜索框输入关键字搜索,如“摄像头”。 - 3. 结果中显示与关键字匹配的发行版,可以进一步根据组件类别等过滤条件(如:适配的开发板,内核)精确筛选。 - 4. 查找合适的发行版,点击查看发行版的详情介绍。 - - **图 1** 包管理 - - - ![](figures/zh-cn_image_0000001160590725.png) - - -2. 了解发行版详情。 - - 1. 仔细阅读发行版的说明信息,以了解使用场景、特性、组件构成、使用方法以及如何进行定制化,如下图所示。 - 2. 点击「直接下载」,将发行版下载到本地。 - 3. 点击「定制组件」,将对发行版包含的组件进行定制(添加/删除)。 - - **图 2** 发行版示例 - - - ![](figures/zh-cn_image_0000001114070816.png) - -3. 定制组件。 - 1. 进入发行版的定制页面,如下图所示。 - 2. 通过关闭开关移除可选组件,或者通过“添加组件”增加新的组件。 - 3. 在右边填写您的项目基本信息,包括名称、版本、描述等信息。 - 4. 点击“下载“,系统会根据您的选择,生成相应的OpenHarmony代码结构文件\(如my\_cust\_dist.zip\),保存至本地文件。 - - **图 3** 组件定制 - - - ![](figures/zh-cn_image_0000001113910924.png) - - -4. 下载安装组件。 - 1. 解压下载的压缩文件,用命令行工具CMD(Linux下的Shell终端) - 2. 在解压后的文件目录下执行hpm install指令 - 3. 下载的组件存在工程目录下的ohos\_bundles文件夹中(部分组件安装后会将源码复制到指定目录下)。 - - -## 获取方式3:从代码仓库获取 - -### 适用场景 - -- 基于OpenHarmony的稳定分支建立自己的基线,分发下游客户。 - -- 已经完成自身软件与OpenHarmony的对接,需要进行OpenHarmony官方认证。 - -- 芯片/模组/app通过OpenHarmony官方认证后,贡献代码到OpenHarmony社区。 - -- 修复OpenHarmony的问题。 - -- 学习OpenHarmony的源码。 - - -### 准备 - -1. 注册码云gitee账号。 -2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4181)。 -3. 安装[git客户端](http://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)和[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading))并配置用户信息。 - - ``` - git config --global user.name "yourname" - git config --global user.email "your-email-address" - git config --global credential.helper store - ``` - -4. 安装码云repo工具,可以执行如下命令。 - - ``` - curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 - chmod a+x /usr/local/bin/repo - pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests - ``` - - -### 操作 - -**获取轻量系统/小型系统源码** - ->![](public_sys-resources/icon-note.gif) **说明:** ->主干代码为开发分支,开发者可通过主干代码获取最新特性。release分支代码相对比较稳定,开发者可基于release分支代码进行商用功能开发。 - -- **OpenHarmony主干代码获取** - - 方式一(推荐):通过repo下载 - - ``` - repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify - repo sync -c - repo forall -c 'git lfs pull' - ``` - - 方式二:通过git clone单个代码仓库 - - 进入[代码仓库主页](https://gitee.com/openharmony),选择需要克隆的代码仓库,执行命令,如: - - ``` - git clone https://gitee.com/openharmony/manifest.git -b master - ``` - - -- **OpenHarmony release 分支代码获取** - - 通过repo下载 - - ``` - repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify - repo sync -c - repo forall -c 'git lfs pull' - ``` - -- **OpenHarmony** 其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md)。 - -**获取标准系统源码(2.0 Canary)** - -1. 创建OpenHarmony工作目录。 - - ``` - mkdir OpenHarmony - ``` - -2. 切换到OpenHarmony工作目录。 - - ``` - cd OpenHarmony - ``` - -3. repo初始化。 - - ``` - repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify - ``` - -4. 更新代码。 - - ``` - repo sync -c - ``` - -5. 更新二进制。 - - ``` - repo forall -c 'git lfs pull' - ``` - - ## 源码目录简介 下表是OpenHarmony源码的目录及简单说明: diff --git "a/zh-cn/device-dev/get-code/\350\216\267\345\217\226\345\267\245\345\205\267.md" "b/zh-cn/device-dev/get-code/\350\216\267\345\217\226\345\267\245\345\205\267.md" index a665a3e078ea73e298760b482e74b37c3daeb048..a67fe6edb6964fd1122e03fab1d1efe1a0075d7f 100755 --- "a/zh-cn/device-dev/get-code/\350\216\267\345\217\226\345\267\245\345\205\267.md" +++ "b/zh-cn/device-dev/get-code/\350\216\267\345\217\226\345\267\245\345\205\267.md" @@ -36,7 +36,7 @@ OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完

swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker

-

0.0.3

+

0.0.4

已经预安装OpenHarmony版本的编译环境,支持轻量系统类设备(参考内存≥128KB)小型系统类设备(参考内存≥1MB)的版本构建。

@@ -123,8 +123,7 @@ docker\_dist是一个[HPM](https://hpm.harmonyos.com/)系统中的模板组件 ``` # 拉取镜像 - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3 - # linux环境下的编译 + docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.4# linux环境下的编译 hpm run distWithDocker solution={product} # windows下的编译,需要配置gitbash hpm config set shellPath "gitbash路径" @@ -143,13 +142,13 @@ OpenHarmony的Docker镜像托管在[HuaweiCloud SWR](https://console.huaweicloud 1. 获取Docker镜像。 ``` - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3 + docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.4 ``` 2. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。 ``` - docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3 + docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.4 ``` @@ -171,7 +170,7 @@ OpenHarmony的Docker镜像托管在[HuaweiCloud SWR](https://console.huaweicloud 3. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。 ``` - docker run -it -v $(pwd):/home/openharmony openharmony-docker:0.0.3 + docker run -it -v $(pwd):/home/openharmony openharmony-docker:0.0.4 ``` diff --git "a/zh-cn/device-dev/guide/\347\234\237\346\234\272\350\277\220\350\241\214-9.md" "b/zh-cn/device-dev/guide/\347\234\237\346\234\272\350\277\220\350\241\214-9.md" index 901c911bb292aea6f871015e83eed25bcc393110..73d86f901ad6943fd5b1d6d75178e0ef7e4ed936 100644 --- "a/zh-cn/device-dev/guide/\347\234\237\346\234\272\350\277\220\350\241\214-9.md" +++ "b/zh-cn/device-dev/guide/\347\234\237\346\234\272\350\277\220\350\241\214-9.md" @@ -1,6 +1,6 @@ # 真机运行 -应用签名打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony系统烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[标准系统Hi3516快速入门](../quick-start/开发步骤-11.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载应用。 +应用签名打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony系统烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[标准系统Hi3516快速入门](../quick-start/开发步骤-12.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载应用。 1. 从开发者工具代码仓路径中获取hdc客户端。 diff --git a/zh-cn/device-dev/porting/Readme-CN.md b/zh-cn/device-dev/porting/Readme-CN.md index d804dea12bef9077753243f32e13b57edf5d73d7..0dca00c895f6172ce990465be705745d7b8965db 100755 --- a/zh-cn/device-dev/porting/Readme-CN.md +++ b/zh-cn/device-dev/porting/Readme-CN.md @@ -1,4 +1,4 @@ -# 移植适配 +# 移植指南 - [三方库移植指导](三方库移植指导.md) - [概述](概述.md) @@ -20,6 +20,7 @@ - [板级驱动适配](板级驱动适配.md) - [HAL层实现](HAL层实现.md) - [系统组件调用](系统组件调用.md) + - [三方组件适配](三方组件适配.md) - [XTS认证](XTS认证.md) - [常见问题](常见问题.md) diff --git "a/zh-cn/device-dev/porting/\344\270\211\346\226\271\347\273\204\344\273\266\351\200\202\351\205\215.md" "b/zh-cn/device-dev/porting/\344\270\211\346\226\271\347\273\204\344\273\266\351\200\202\351\205\215.md" new file mode 100644 index 0000000000000000000000000000000000000000..0999f32a530ac987759134af1fd23344c25eeb86 --- /dev/null +++ "b/zh-cn/device-dev/porting/\344\270\211\346\226\271\347\273\204\344\273\266\351\200\202\351\205\215.md" @@ -0,0 +1,57 @@ +# 三方组件适配 + +如果需要使用third\_party目录下与产品相关的三方组件,可能需要对三方组件进行适配,下面以比较常用的mbedtls为例,介绍下适配步骤,注意本小节中仅介绍如何将适配的代码与OpenHarmony的编译框架融合,不会详细介绍mbedtls本身的原理和适配代码的具体逻辑,这些内容请参考mbedtls官方网站上的适配指南。 + +1. 编写适配层代码 + + 根据mbedtls官网的适配指南,编写需要的适配层代码,以适配硬件随机数举例,下面的路径都是相对third\_party/mbedtls的路径: + + 1. 拷贝include/mbedtls/config.h到ports目录下,并修改打开MBEDTLS\_ENTROPY\_HARDWARE\_ALT开关。 + 2. 在ports目录下创建entropy\_poll\_alt.c文件include并实现entropy\_poll.h中的硬件随机数接口 + 3. 在BUILD.gn中的mbedtls\_sources中增加刚才适配的entropy\_poll\_alt.c的路径 + 4. 在BIULD.gn中的lite\_library\("mbedtls\_static"\)中增加一行MBEDTLS\_CONFIG\_FILE指定新配置文件的位置 + + ``` + lite_library("mbedtks_static") { + ... + defines += ["MBEDTLS_CONFIG_FILE=<../port/config.h>"] + ... + } + ``` + + + 注意,上面的修改最好都新建一个config或者新建一个xxx\_alt.c文件来修改,不要直接在原先的代码中修改,侵入式的修改会导致后续版本升级出现大量零散冲突,增加升级维护成本。 + +2. 制作patch + + 由于上面的适配是硬件相关的,上库代码时,不能直接放到通用的third\_party/mbedtls目录中,因此需要将上面的修改制作成patch,在编译之前通过打patch的方式注入到代码中。 + + 1. 首先增加设备的patch配置文件device///patch.yml + 2. 编辑device///patch.yml,增加要打的patch的信息: + + ``` + # 需要打patch的路径,路径均为相对代码根目录的路径 + third_party/mbedtls: + # 该路径下需要打的patch存放路径 + - device///third_party/mbedtls/adapter.patch + third_party/wpa_supplicant: + # 当一个路径下有多个patch的时候会依次执行patch + - device///third_party/wpa_supplicant/xxxxx.patch + - device///third_party/wpa_supplicant/yyyyy.patch + ... + ``` + + 3. 制作上述**步骤1**修改的patch并放到对应的目录即可 + +3. 使用带patch的编译 + + 想要在编译的时候带上patch,其他步骤不变,仅需要在触发编译的时候加上 --patch,例如全编译的命令编程 + + ``` + hb build -f --patch + ``` + + >![](public_sys-resources/icon-caution.gif) **注意:** + >最后一次打patch的产品信息会被记录,在进行下一次编译操作时,会对上一次的patch进行回退(即执行\`patch -p1 -R < xxx\`),回退patch失败或新增patch失败均会终止编译过程,请解决patch冲突后再次尝试编译。 + + diff --git "a/zh-cn/device-dev/porting/\346\235\277\347\272\247\347\263\273\347\273\237\347\247\273\346\244\215.md" "b/zh-cn/device-dev/porting/\346\235\277\347\272\247\347\263\273\347\273\237\347\247\273\346\244\215.md" index d94c24a7fd28f56cc37d240c501a77887ca021f0..3029464912dea8f0226d3636d6d1a3652832dbca 100755 --- "a/zh-cn/device-dev/porting/\346\235\277\347\272\247\347\263\273\347\273\237\347\247\273\346\244\215.md" +++ "b/zh-cn/device-dev/porting/\346\235\277\347\272\247\347\263\273\347\273\237\347\247\273\346\244\215.md" @@ -8,6 +8,8 @@ - **[系统组件调用](系统组件调用.md)** +- **[三方组件适配](三方组件适配.md)** + - **[XTS认证](XTS认证.md)** diff --git "a/zh-cn/device-dev/quick-start/Hi3516\345\274\200\345\217\221\346\235\277.md" "b/zh-cn/device-dev/quick-start/Hi3516\345\274\200\345\217\221\346\235\277.md" index 8418e8c20cfdf7891e790a4fe8581ed6282a69cc..28c01f99cccb6b99b4d9673b691af7d1da0bc0b5 100755 --- "a/zh-cn/device-dev/quick-start/Hi3516\345\274\200\345\217\221\346\235\277.md" +++ "b/zh-cn/device-dev/quick-start/Hi3516\345\274\200\345\217\221\346\235\277.md" @@ -1,11 +1,11 @@ # Hi3516开发板 -- **[安装开发板环境](安装开发板环境-1.md)** +- **[安装开发板环境](安装开发板环境-2.md)** - **[运行Hello OHOS](运行Hello-OHOS.md)** - **[驱动开发示例](驱动开发示例.md)** -- **[常见问题](常见问题-2.md)** +- **[常见问题](常见问题-3.md)** diff --git "a/zh-cn/device-dev/quick-start/Hi3518\345\274\200\345\217\221\346\235\277.md" "b/zh-cn/device-dev/quick-start/Hi3518\345\274\200\345\217\221\346\235\277.md" index c9d8bc1401bea8f24c3258c058bc4b408453e83f..c7a3daa41bb69758c22f0820179b0bccbc0eeef3 100755 --- "a/zh-cn/device-dev/quick-start/Hi3518\345\274\200\345\217\221\346\235\277.md" +++ "b/zh-cn/device-dev/quick-start/Hi3518\345\274\200\345\217\221\346\235\277.md" @@ -1,9 +1,9 @@ # Hi3518开发板 -- **[安装开发板环境](安装开发板环境-3.md)** +- **[安装开发板环境](安装开发板环境-4.md)** -- **[运行Hello OHOS](运行Hello-OHOS-4.md)** +- **[运行Hello OHOS](运行Hello-OHOS-5.md)** -- **[常见问题](常见问题-5.md)** +- **[常见问题](常见问题-6.md)** diff --git "a/zh-cn/device-dev/quick-start/Hi3861\345\274\200\345\217\221\346\235\277.md" "b/zh-cn/device-dev/quick-start/Hi3861\345\274\200\345\217\221\346\235\277.md" index 7168f553755707b397fe4a75bf7e85a05d2d8146..5fa74713ecf8339f75070e2e112e47c7ae0d8d02 100755 --- "a/zh-cn/device-dev/quick-start/Hi3861\345\274\200\345\217\221\346\235\277.md" +++ "b/zh-cn/device-dev/quick-start/Hi3861\345\274\200\345\217\221\346\235\277.md" @@ -6,6 +6,6 @@ - **[运行Hello World](运行Hello-World.md)** -- **[常见问题](常见问题-0.md)** +- **[常见问题](常见问题-1.md)** diff --git "a/zh-cn/device-dev/quick-start/Hi3861\345\274\200\345\217\221\346\235\277\344\273\213\347\273\215.md" "b/zh-cn/device-dev/quick-start/Hi3861\345\274\200\345\217\221\346\235\277\344\273\213\347\273\215.md" index 4e3fa5e206853899808f7106ab3e007e51e23ccd..8eb13ecf8baf6e8918989e2755517997bc81f4bb 100755 --- "a/zh-cn/device-dev/quick-start/Hi3861\345\274\200\345\217\221\346\235\277\344\273\213\347\273\215.md" +++ "b/zh-cn/device-dev/quick-start/Hi3861\345\274\200\345\217\221\346\235\277\344\273\213\347\273\215.md" @@ -19,7 +19,7 @@ Hi3861 WLAN模组是一片大约2cm\*5cm大小的开发板,是一款高度集 **图 2** Hi3861底板外观图 -![](figures/3861背面.png) +![](figures/zh-cn_image_0000001119945810.png) - RF电路包括功率放大器PA(Power Amplifier)、低噪声放大器LNA(Low Noise Amplifier)、RF Balun、天线开关以及电源管理等模块;支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。 - Hi3861 WLAN基带支持正交频分复用(OFDM)技术,并向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。 diff --git a/zh-cn/device-dev/quick-start/Readme-CN.md b/zh-cn/device-dev/quick-start/Readme-CN.md index e6b748c47e61875e19503469d70a06eeebe198b3..90dd84f1a6ac1b95caa0a28881d016960f73828c 100644 --- a/zh-cn/device-dev/quick-start/Readme-CN.md +++ b/zh-cn/device-dev/quick-start/Readme-CN.md @@ -1,5 +1,6 @@ # 快速入门 +- [导读](导读.md) - [轻量和小型系统入门](轻量和小型系统入门.md) - [概述](概述.md) - [了解开发板](了解开发板.md) @@ -8,6 +9,7 @@ - [Hi3518开发板介绍](Hi3518开发板介绍.md) - [搭建系统环境](搭建系统环境.md) + - [概述](概述-0.md) - [Windows开发环境准备](Windows开发环境准备.md) - [Ubuntu编译环境准备](Ubuntu编译环境准备.md) - [常见问题](常见问题.md) @@ -17,26 +19,26 @@ - [安装开发板环境](安装开发板环境.md) - [WLAN联网](WLAN联网.md) - [运行Hello World](运行Hello-World.md) - - [常见问题](常见问题-0.md) + - [常见问题](常见问题-1.md) - [Hi3516开发板](Hi3516开发板.md) - - [安装开发板环境](安装开发板环境-1.md) + - [安装开发板环境](安装开发板环境-2.md) - [运行Hello OHOS](运行Hello-OHOS.md) - [驱动开发示例](驱动开发示例.md) - - [常见问题](常见问题-2.md) + - [常见问题](常见问题-3.md) - [Hi3518开发板](Hi3518开发板.md) - - [安装开发板环境](安装开发板环境-3.md) - - [运行Hello OHOS](运行Hello-OHOS-4.md) - - [常见问题](常见问题-5.md) + - [安装开发板环境](安装开发板环境-4.md) + - [运行Hello OHOS](运行Hello-OHOS-5.md) + - [常见问题](常见问题-6.md) - [标准系统入门](标准系统入门.md) - - [概述](概述-6.md) + - [概述](概述-7.md) - [环境搭建](环境搭建.md) - - [概述](概述-7.md) - - [Windows开发环境准备](Windows开发环境准备-8.md) - - [Ubuntu编译环境准备](Ubuntu编译环境准备-9.md) - - [常见问题](常见问题-10.md) + - [概述](概述-8.md) + - [Windows开发环境准备](Windows开发环境准备-9.md) + - [Ubuntu编译环境准备](Ubuntu编译环境准备-10.md) + - [常见问题](常见问题-11.md) - - [开发步骤](开发步骤-11.md) + - [开发步骤](开发步骤-12.md) diff --git "a/zh-cn/device-dev/quick-start/Ubuntu\347\274\226\350\257\221\347\216\257\345\242\203\345\207\206\345\244\207-10.md" "b/zh-cn/device-dev/quick-start/Ubuntu\347\274\226\350\257\221\347\216\257\345\242\203\345\207\206\345\244\207-10.md" new file mode 100644 index 0000000000000000000000000000000000000000..2b16b47d47554cc3a8f9b155054eb4523c37489a --- /dev/null +++ "b/zh-cn/device-dev/quick-start/Ubuntu\347\274\226\350\257\221\347\216\257\345\242\203\345\207\206\345\244\207-10.md" @@ -0,0 +1,69 @@ +# Ubuntu编译环境准备 + +- [方式一:Docker方式准备Ubuntu编译环境](#section1643363843714) + - [获取标准系统源码](#section58448331029) + - [Docker环境安装使用](#section22916211916) + +- [方式二:安装包方式准备Ubuntu编译环境](#section25961010189) + - [安装依赖工具](#section109262032104819) + - [获取标准系统源码](#section6325556113718) + - [获取prebuilts](#section16453104219209) + + +OpenHarmony为开发者提供了Docker和安装包两种方式来搭建Ubuntu编译环境。接下来将分别针对这两种方式进行介绍。 + +## 方式一:Docker方式准备Ubuntu编译环境 + +OpenHarmony标准系统为开发者提供的Docker环境已经将对应的编译工具链进行了封装,开发者可省略对应工具的安装。具体Docker使用分为如下几步: + +1. 获取标准系统源码。 +2. Docker环境安装使用。 + +### 获取标准系统源码 + +获取[标准系统源码](https://repo.huaweicloud.com/harmonyos/os/2.0/code-2.0-canary.tar.gz)。此处获取的源码为静态打包代码,如想获取码云社区最新源码,请采用[repo方式获取](../get-code/源码获取.md)。 + +### Docker环境安装使用 + +具体Docker环境的安装和使用请参考[Docker环境安装使用指导](../get-code/获取工具.md)。 + +## 方式二:安装包方式准备Ubuntu编译环境 + +安装包方式具体操作分为如下几步: + +1. 安装依赖工具。 +2. 获取标准系统源码。 +3. 获取prebuilts。 + +### 安装依赖工具 + +安装命令如下: + +``` +sudo apt-get install binutils git-core git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 +``` + +>![](public_sys-resources/icon-caution.gif) **注意:** +>以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。如果是Ubuntu18.04以上版本需要安装python2.7 和 python-minimal。 + +### 获取标准系统源码 + +获取[标准系统源码](https://repo.huaweicloud.com/harmonyos/os/2.0/code-2.0-canary.tar.gz)。此处获取的源码为静态打包代码,如想获取码云社区最新源码,请采用[repo方式获取](../get-code/源码获取.md)。 + +### 获取prebuilts + +1. 切换到OpenHarmony工作目录。 + + ``` + cd OpenHarmony + ``` + +2. 执行脚本。 + + ``` + build/prebuilts_download.sh + ``` + + 下载的prebuilts二进制默认存放在与OpenHarmony同目录下的OpenHarmony\_2.0\_canary\_prebuilts下。 + + diff --git "a/zh-cn/device-dev/quick-start/WLAN\350\201\224\347\275\221.md" "b/zh-cn/device-dev/quick-start/WLAN\350\201\224\347\275\221.md" index 45fb82e3057bc598541183aa538485f57bf0b4a2..a0cacdf965403e4beff4fcdfa9e57e6a04adbffe 100755 --- "a/zh-cn/device-dev/quick-start/WLAN\350\201\224\347\275\221.md" +++ "b/zh-cn/device-dev/quick-start/WLAN\350\201\224\347\275\221.md" @@ -87,8 +87,6 @@ Hi3861 WLAN模组的镜像烧录可以通过OpenHarmony IDE工具DevEco完成, 6. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 7. 打开工程文件,在DevEco Device Tool界面的“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。 - ![](figures/zh-cn_image_0000001120802383.png) - ![](figures/zh-cn_image_0000001163569275.png) 8. 启动烧录后,显示如下提示信息时,请按开发板上的RST按钮重启开发板。 diff --git "a/zh-cn/device-dev/quick-start/Windows\345\274\200\345\217\221\347\216\257\345\242\203\345\207\206\345\244\207-9.md" "b/zh-cn/device-dev/quick-start/Windows\345\274\200\345\217\221\347\216\257\345\242\203\345\207\206\345\244\207-9.md" new file mode 100644 index 0000000000000000000000000000000000000000..b2830340c58b305413650332a0338abb0897cc6c --- /dev/null +++ "b/zh-cn/device-dev/quick-start/Windows\345\274\200\345\217\221\347\216\257\345\242\203\345\207\206\345\244\207-9.md" @@ -0,0 +1,182 @@ +# Windows开发环境准备 + +- [获取软件](#zh-cn_topic_0000001058091994_section1483143015558) +- [安装Visual Studio Code](#zh-cn_topic_0000001058091994_section71401018163318) +- [安装Python](#zh-cn_topic_0000001058091994_section16266553175320) +- [安装Node.js](#zh-cn_topic_0000001058091994_section5353233124511) +- [安装hpm](#zh-cn_topic_0000001058091994_section173054793610) +- [安装DevEco Device Tool插件](#zh-cn_topic_0000001058091994_section4336315185716) + +系统要求:Windows 10 64位系统。 + +DevEco Device Tool以插件方式提供,基于Visual Studio Code进行扩展,安装分为如下几步: + +1. 安装Visual Studio Code +2. 安装Python +3. 安装Node.js +4. 安装hpm +5. 安装DevEco Device Tool插件 + +## 获取软件 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

工具名称

+

用途说明

+

版本要求

+

获取渠道

+

Visual Studio Code

+

代码编辑工具

+

V1.53及以上 64位版本。

+

https://code.visualstudio.com/Download

+

Python

+

编译构建工具

+

3.7.4-3.8.x 64位版本

+

https://www.python.org/downloads/

+

Node.js

+

提供npm环境

+

v12.0.0及以上 64位版本

+

https://nodejs.org/zh-cn/download/

+

hpm

+

包管理工具

+

最新版

+

请参考安装hpm

+

DevEco Device Tool

+

OpenHarmony源码的编译、烧录、调试插件工具

+

v2.2 Beta1

+

https://device.harmonyos.com/cn/ide#download

+

下载前,请使用华为开发者帐号登录,如未注册,请先注册华为开发者帐号

+
+ +## 安装Visual Studio Code + +>![](public_sys-resources/icon-note.gif) **说明:** +>如果已安装Visual Studio Code,打开命令行工具,输入**code --version**命令,检查版本号是否为1.53及以上版本;可以正常返回版本号,说明环境变量设置也正确。 + +1. 双击Visual Studio Code软件包进行安装。安装过程中,请勾选“添加到PATH(重启后生效)”。 + + ![](figures/zh-cn_image_0000001057335403.png) + +2. 安装完成后,重启计算机,使Visual Studio Code的环境变量生效。 +3. 打开命令行工具,输入**code --version**命令,可以正常显示版本号说明安装成功。 + +## 安装Python + +1. 双击Python安装包进行安装,勾选“**Add Python xx to PATH**”,然后点击**Install Now**开始安装。 + + ![](figures/zh-cn_image_0000001096154076.png) + +2. 等待安装完成后,点击**Close**。 + + ![](figures/zh-cn_image_0000001142794291.png) + +3. 打开命令行工具,输入python --version,检查安装结果。 + + ![](figures/zh-cn_image_0000001143154485.png) + +4. 在命令行工具中,分别执行如下命令设置pip源,用于后续安装DevEco Device Tool过程中下载依赖的组件包。 + + ``` + pip config set global.trusted-host repo.huaweicloud.com + pip config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple + pip config set global.timeout 120 + ``` + + +## 安装Node.js + +>![](public_sys-resources/icon-note.gif) **说明:** +>如果已安装Node.js,打开命令行工具,输入**node -v**命令,检查版本号是否为12.0.0及以上版本。 + +1. 点击下载后的软件包进行安装,全部按照默认设置点击**Next**,直至**Finish**。安装过程中,Node.js会自动在系统的path环境变量中配置node.exe的目录路径。 +2. 重新打开命令行工具,输入“node -v“命令,能正常查询Node.js的版本号,说明Node.js安装成功。 + + ![](figures/zh-cn_image_0000001056814287.png) + + +## 安装hpm + +该方式需先确保**Node.js**安装成功。 + +在安装hpm前,请检查网络连接状态,如果网络不能直接访问Internet,则需要通过代理服务器才可以访问。这种情况下,需要先[设置npm代理](https://device.harmonyos.com/cn/docs/ide/user-guides/npm_proxy-0000001054491032),才能安装hpm。 + +>![](public_sys-resources/icon-note.gif) **说明:** +>如果已安装hpm,可以执行**npm update -g @ohos/hpm-cli**命令升级hpm至最新版本。 + +1. 建议将npm源配置为国内镜像,例如设置为华为云镜像源。 + + ``` + npm config set registry https://repo.huaweicloud.com/repository/npm/ + ``` + +2. 打开命令行工具,执行如下命令安装最新版本hpm。 + + ``` + npm install -g @ohos/hpm-cli + ``` + + ![](figures/zh-cn_image_0000001073840162.png) + +3. 安装完成后,执行如下命令(V为大写字母)检查hpm安装结果。 + + ``` + hpm -V + ``` + + ![](figures/zh-cn_image_0000001100641602.png) + + +## 安装DevEco Device Tool插件 + +安装DevEco Device Tool插件,**主机的用户名不能包含中文字符**,否则可能导致运行出现错误。 + +DevEco Device Tool正常运行需要依赖于C/C++和CodeLLDB插件,在安装完DevEco Device Tool后,会自动从Visual Studio Code的插件市场安装C/C++和CodeLLDB插件。因此,在安装DevEco Device Tool前,请检查Visual Studio Code的网络连接状态,如果网络不能直接访问Internet,则需要通过代理服务器才可以访问,请先[Visual Studio Code代理设置](https://device.harmonyos.com/cn/docs/ide/user-guides/vscode_proxy-0000001074231144)。 + +>![](public_sys-resources/icon-note.gif) **说明:** +>安装DevEco Device Tool时,请先关闭Visual Studio Code。 + +1. 解压DevEco Device Tool插件压缩包,双击安装包程序进行安装。 +2. 安装过程中,会自动安装DevEco Device Tool所需的依赖文件(如C/C++和CodeLLDB插件)和执行程序。 + + ![](figures/zh-cn_image_0000001072468991.png) + +3. 安装完成后,会自动关闭命令行工具窗口。 +4. 启动Visual Studio Code,点击左侧的![](figures/zh-cn_image_0000001072757874.png)按钮,检查INSTALLED中,是否已成功安装C/C++、CodeLLDB和DevEco Device Tool。 + + >![](public_sys-resources/icon-note.gif) **说明:** + >如果C/C++和CodeLLDB插件安装不成功,则DevEco Device Tool不能正常运行,解决方法,详细请参考:[离线安装C/C++和CodeLLDB插件](https://device.harmonyos.com/cn/docs/ide/user-guides/offline_plugin_install-0000001074376846)。 + + ![](figures/zh-cn_image_0000001142802505.png) + + diff --git "a/zh-cn/device-dev/quick-start/Windows\345\274\200\345\217\221\347\216\257\345\242\203\345\207\206\345\244\207.md" "b/zh-cn/device-dev/quick-start/Windows\345\274\200\345\217\221\347\216\257\345\242\203\345\207\206\345\244\207.md" index c6d662c8aea1e564aad4cc8721f17ce643bd9289..55970ca67aa696dfcf62c512273367775a7cf5ee 100755 --- "a/zh-cn/device-dev/quick-start/Windows\345\274\200\345\217\221\347\216\257\345\242\203\345\207\206\345\244\207.md" +++ "b/zh-cn/device-dev/quick-start/Windows\345\274\200\345\217\221\347\216\257\345\242\203\345\207\206\345\244\207.md" @@ -63,8 +63,7 @@ DevEco Device Tool以插件方式提供,基于Visual Studio Code进行扩展

最新版

-

执行如下npm命令进行安装,npm自动下载最新版本

-
npm install -g @ohos/hpm-cli
+

请参考安装hpm

DevEco Device Tool

diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001117463460.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001117463460.png new file mode 100644 index 0000000000000000000000000000000000000000..72dd05e3ae1eb91156df98cb1915b6264b3bbe5a Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001117463460.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001119945810.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001119945810.png new file mode 100644 index 0000000000000000000000000000000000000000..c846be0d2767953df4a3ac78408963f252af040d Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001119945810.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160529355.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160529355.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5ca0c7b10d63470e689a618b6f29efcdcb1852 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160529355.png differ diff --git "a/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203-2.md" "b/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203-2.md" new file mode 100644 index 0000000000000000000000000000000000000000..2348c6d97e09b0e333f325bf17ae29b129e59f10 --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203-2.md" @@ -0,0 +1,151 @@ +# 安装开发板环境 + +- [Hi3516工具要求](#section179175261196) + - [硬件要求](#section5840424125014) + - [软件要求](#section965634210501) + +- [安装Linux服务器工具](#section182916865219) + - [将Linux shell改为bash](#section1715027152617) + - [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251) + - [安装文件打包工具](#section1969111820270) + - [安装Java 虚拟机环境](#section1692618112713) + + +## Hi3516工具要求 + +### 硬件要求 + +- Hi3516DV300 IoT Camera开发板 +- USB转串口线、网线(Windows工作台通过USB转串口线、网线与Hi3516DV300 开发板连接) + +各硬件连接关系如下图所示。 + +**图 1** 硬件连线图 + + +![](figures/矩形备份-292.png) + +### 软件要求 + +>![](public_sys-resources/icon-notice.gif) **须知:** +>本节描述安装包方式搭建编译环境的操作步骤。如果是Docker方式安装编译环境,请跳过此章节以及下述[安装Linux服务器工具](#section182916865219)章节。 + +Hi3516开发板对Linux服务器通用环境配置需要的工具及其获取途径如下表所示。 + +**表 1** Linux服务器开发工具及获取途径 + + + + + + + + + + + + + + + + + + + + + + + + +

开发工具

+

用途

+

获取途径

+

bash

+

命令行处理工具

+

系统配置

+

编译基础软件包(仅ubuntu 20+需要)

+

编译依赖的基础软件包

+

通过互联网获取

+

dosfstools、mtools、mtd-utils

+

文件打包工具

+

通过apt-get install安装

+

Java 虚拟机环境

+

编译、调试和运行Java程序

+

通过apt-get install安装

+
+ +## 安装Linux服务器工具 + +>![](public_sys-resources/icon-notice.gif) **须知:** +>- 如果通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装LLVM、hc-gen编译工具。 +>- (推荐)如果通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装hc-gen编译工具。安装hc-gen编译工具时,请确保编译工具的环境变量路径唯一。 + +### 将Linux shell改为bash + +查看shell是否为bash,在终端运行如下命令 + +``` +ls -l /bin/sh +``` + +如果显示为“/bin/sh -\> bash”则为正常,否则请按以下方式修改: + +**方法一**:在终端运行如下命令,然后选择 no。 + +``` +sudo dpkg-reconfigure dash +``` + +**方法二**:先删除sh,再创建软链接。 + +``` +sudo rm -rf /bin/sh +sudo ln -s /bin/bash /bin/sh +``` + +### 安装编译依赖基础软件(仅Ubuntu 20+需要) + +执行以下命令进行安装: + +``` +sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev +``` + +### 安装文件打包工具 + +1. 打开Linux编译服务器终端。 +2. 运行如下命令,安装dosfstools。 + + ``` + sudo apt-get install dosfstools + ``` + +3. 运行如下命令,安装mtools。 + + ``` + sudo apt-get install mtools + ``` + +4. 运行如下命令,安装mtd-utils。 + + ``` + sudo apt-get install mtd-utils + ``` + + +### 安装Java 虚拟机环境 + +1. 打开Linux编译服务器终端。 +2. 安装Java运行时环境(JRE)。 + + ``` + sudo apt-get install default-jre + ``` + +3. 安装Java sdk开发工具包。 + + ``` + sudo apt-get install default-jdk + ``` + + diff --git "a/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203-4.md" "b/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203-4.md" new file mode 100644 index 0000000000000000000000000000000000000000..bf59854a1d551fdbcbb26a8b726653d64d72c5bb --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203-4.md" @@ -0,0 +1,156 @@ +# 安装开发板环境 + +- [Hi3518环境搭建](#section1724111409282) + - [硬件要求](#section487353718276) + - [软件要求](#section17315193935817) + +- [安装Linux服务器工具](#section8831868501) + - [将Linux shell改为bash](#section1715027152617) + - [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251) + - [安装文件打包工具](#section1686964015274) + - [安装hc-gen](#section18706403274) + + +## Hi3518环境搭建 + +### 硬件要求 + +- Hi3518EV300 IoT Camera开发板 +- USB转串口线、网线(Windows工作台通过USB转串口线、网线与开发板连接) + + 各硬件连接关系如下图所示。 + + +**图 1** 硬件连线图 +![](figures/硬件连线图-3.png "硬件连线图-3") + +### 软件要求 + +>![](public_sys-resources/icon-notice.gif) **须知:** +>本节描述安装包方式搭建编译环境的操作步骤。如果是Docker方式安装编译环境,请跳过此章节以及下述[安装Linux服务器工具](#section8831868501)章节。 + +Hi3518开发板对Linux服务器通用环境配置需要的工具及其获取途径如下表所示。 + +**表 1** Linux服务器开发工具及获取途径 + + + + + + + + + + + + + + + + + + + + +

开发工具

+

用途

+

获取途径

+

bash

+

命令行处理工具

+

系统配置

+

编译基础软件包(仅ubuntu 20+需要)

+

编译依赖的基础软件包

+

通过互联网获取

+

dosfstools、mtools、mtd-utils

+

文件打包工具

+

通过apt-get install安装

+
+ +## 安装Linux服务器工具 + +>![](public_sys-resources/icon-notice.gif) **须知:** +>- 如果通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装hc-gen编译工具。 +>- (推荐)如果通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装hc-gen编译工具。安装hc-gen编译工具时,请确保编译工具的环境变量路径唯一。 + +### 将Linux shell改为bash + +查看shell是否为bash,在终端运行如下命令 + +``` +ls -l /bin/sh +``` + +如果显示为“/bin/sh -\> bash”则为正常,否则请按以下方式修改: + +**方法一**:在终端运行如下命令,然后选择 no。 + +``` +sudo dpkg-reconfigure dash +``` + +**方法二**:先删除sh,再创建软链接。 + +``` +sudo rm -rf /bin/sh +sudo ln -s /bin/bash /bin/sh +``` + +### 安装编译依赖基础软件(仅Ubuntu 20+需要) + +执行以下命令进行安装: + +``` +sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev +``` + +### 安装文件打包工具 + +1. 打开Linux编译服务器终端。 +2. 运行如下命令,安装dosfstools。 + + ``` + sudo apt-get install dosfstools + ``` + +3. 运行如下命令,安装mtools。 + + ``` + sudo apt-get install mtools + ``` + +4. 运行如下命令,安装mtd-utils。 + + ``` + sudo apt-get install mtd-utils + ``` + + +### 安装hc-gen + +1. 打开Linux编译服务器终端。 +2. [下载hc-gen工具](https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar)。 +3. 解压hc-gen安装包到Linux服务器\~/hc-gen路径下。 + + ``` + tar -xvf hc-gen-0.65-linux.tar -C ~/ + ``` + +4. 设置环境变量。 + + ``` + vim ~/.bashrc + ``` + + 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 + + ``` + export PATH=~/hc-gen:$PATH + ``` + +5. 生效环境变量。 + + ``` + source ~/.bashrc + ``` + + diff --git "a/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203.md" "b/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203.md" index a199f12307105162eae65f92772e7c15bf29bff6..d452dae04dcb06d03fc73da36146d64f6c61aad4 100644 --- "a/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203.md" +++ "b/zh-cn/device-dev/quick-start/\345\256\211\350\243\205\345\274\200\345\217\221\346\235\277\347\216\257\345\242\203.md" @@ -328,7 +328,7 @@ sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get > ``` >3. 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 > ``` - > export PATH=/opt/gcc_riscv32/bin:$PATH + > export PATH=~/gcc_riscv32/bin:$PATH > ``` ``` @@ -338,7 +338,7 @@ sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 ``` - export PATH=/opt/gcc_riscv32/bin:$PATH + export PATH=~/gcc_riscv32/bin:$PATH ``` 17. 生效环境变量。 diff --git "a/zh-cn/device-dev/quick-start/\345\257\274\350\257\273.md" "b/zh-cn/device-dev/quick-start/\345\257\274\350\257\273.md" index 19d7fb3ef5bf1172b58702fd1eaabc5fdd0baa10..fc7a62eb0250d1ce0e51c4eadce1ea1f8436eaa1 100755 --- "a/zh-cn/device-dev/quick-start/\345\257\274\350\257\273.md" +++ "b/zh-cn/device-dev/quick-start/\345\257\274\350\257\273.md" @@ -59,7 +59,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按

快速熟悉OpenHarmony环境搭建、编译、烧录、调测、运行。

- +

基础能力使用

diff --git "a/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-1.md" "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-1.md" new file mode 100644 index 0000000000000000000000000000000000000000..de74ac1a07c009703075f5ac3e5b067bbd463052 --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-1.md" @@ -0,0 +1,292 @@ +# 常见问题 + +- [安装python3过程中,提示“configure: error: no acceptable C compiler found in $PATH”](#section1221016541119) +- [安装python3过程中,提示“-bash: make: command not found”](#section1913477181213) +- [安装python3过程中,提示“zlib not available”](#section108211415131210) +- [安装python3过程中,提示“No module named '\_ctypes'”](#section2062268124) +- [编译构建过程中,提示“No module named 'Crypto'”](#section982315398121) +- [编译构建过程中,提示“No module named 'ecdsa'”](#section102035451216) +- [编译构建过程中,提示“Could not find a version that satisfies the requirement six\>=1.9.0”](#section4498158162320) +- [编译构建过程中,提示找不到“-lgcc”](#section11181036112615) +- [编译构建过程中,提示找不到“python”](#section1571810194619) +- [安装 kconfiglib时,遇到lsb\_release错误](#section691681635814) + +## 安装python3过程中,提示“configure: error: no acceptable C compiler found in $PATH” + +- **现象描述** + + 安装python3过程中出现以下错误: + + ``` + configure: error: no acceptable C compiler found in $PATH. See 'config.log' for more details + ``` + +- **可能原因** + + 环境中未安装“gcc”。 + +- **解决办法** + + 1、通过命令“apt-get install gcc”在线安装。 + + 2、完成后,重新安装python3。 + + +## 安装python3过程中,提示“-bash: make: command not found” + +- **现象描述** + + 安装python3过程中出现以下错误: + + ``` + -bash: make: command not found + ``` + +- **可能原因** + + 环境中未安装“make”。 + +- **解决办法** + + 1、通过命令“apt-get install make”在线安装。 + + 2、完成后,重新安装python3。 + + +## 安装python3过程中,提示“zlib not available” + +- **现象描述** + + 安装python3过程中出现以下错误: + + ``` + zipimport.ZipImportError: can't decompress data; zlib not avaliable + ``` + +- **可能原因** + + 环境中未安装“zlib”。 + +- **解决办法** + + 方法1:通过命令“apt-get install zlib”在线安装。 + + 方法2:如果软件源中没有该软件,请从“www.zlib.net”下载版本代码,并离线安装。 + + ![](figures/10.png) + + 完成下载后,通过以下命令安装: + + ``` + # tar xvf zlib-1.2.11.tar.gz + # cd zlib-1.2.11 + # ./configure + # make && make install + ``` + + 完成后,重新安装python3。 + + +## 安装python3过程中,提示“No module named '\_ctypes'” + +- **现象描述** + + 安装python3过程中出现以下错误: + + ``` + ModuleNotFoundError:No module named ‘_ctypes’ + ``` + + +- **可能原因** + + 环境中未安装“libffi”和“libffi-devel”。 + + +- **解决办法** + + 1、通过命令“apt-get install libffi\* -y”,在线安装。 + + 2、完成后,重新安装python3。 + + +## 编译构建过程中,提示“No module named 'Crypto'” + +- **现象描述** + + 编译构建过程中出现以下错误: + + ``` + ModuleNotFoundError: No module named 'Crypto' + ``` + + +- **可能原因** + + 环境中未安装“Crypto”。 + + +- **解决办法** + + 方法1:通过命令“pip3 install Crypto”,在线安装。 + + 方法2:离线安装 + + 通过网页[https://pypi.org/project/pycrypto/\#files](https://pypi.org/project/pycrypto/#files),下载源码。 + + ![](figures/zh-cn_image_0000001151976061.png) + + 将源码放置在Linux服务器中,解压,并安装“python3 setup.py install”。 + + 完成上述安装后,重新构建。 + + +## 编译构建过程中,提示“No module named 'ecdsa'” + +- **现象描述** + + 编译构建过程中出现以下错误: + + ``` + ModuleNotFoundError:No module named 'ecdsa' + ``` + + +- **可能原因** + + 环境中未安装“ecdsa”。 + + +- **解决办法** + + 方法1:通过命令“pip3 install ecdsa”,在线安装。 + + 方法2:离线安装 + + 通过网页[https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files),下载安装包。 + + ![](figures/zh-cn_image_0000001152176131.png) + + 将安装包放置Linux服务器中,并安装“pip3 install ecdsa-0.15-py2.py3-none-any.whl”。 + + 完成上述安装后,重新构建。 + + +## 编译构建过程中,提示“Could not find a version that satisfies the requirement six\>=1.9.0” + +- **现象描述** + + 编译构建过程中出现以下错误: + + ``` + Could not find a version that satisfies the requirement six>=1.9.0 + ``` + + +- **可能原因** + + 环境中未安装合适的“six”。 + + +- **解决办法** + + 方法1:通过命令“pip3 install six”,在线安装。 + + 方法2:离线安装 + + 通过网页[https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files),下载安装包。 + + ![](figures/zh-cn_image_0000001152056191.png) + + 将源码放置在Linux服务器中,并安装“pip3 install six-1.14.0-py2.py3-none-any.whl”。 + + 完成上述安装后,重新构建。 + + +## 编译构建过程中,提示找不到“-lgcc” + +- **现象描述** + + 编译构建过程中出现以下错误: + + ``` + riscv32-unknown-elf-ld: cannot find -lgcc + ``` + + +- **可能原因** + + 交叉编译器gcc\_riscv32的PATH添加错误,如下,在"bin"后多添加了一个“/”,应该删除。 + + ``` + ~/gcc_riscv32/bin/:/data/toolchain/ + ``` + + +- **解决办法** + + 重新修改gcc\_riscv32的PATH,将多余的“/”删除。 + + ``` + ~/gcc_riscv32/bin:/data/toolchain/ + ``` + + +## 编译构建过程中,提示找不到“python” + +- **现象描述** + + 编译构建过程中出现以下错误: + + ``` + -bash: /usr/bin/python: No such file or directory + ``` + + +- **可能原因**1 + + 没有装python。 + +- **解决办法** + + 请按照 [安装Python环境](../quick-start/Ubuntu编译环境准备.md) + +- **可能原因2** + + ![](figures/zh-cn_image_0000001105376252.png) + +- **解决办法** + + usr/bin目录下没有python软链接,请运行以下命令添加软链接: + + ``` + # cd /usr/bin/ + # which python3 + # ln -s /usr/local/bin/python3 python + # python --version + ``` + + 例: + + ![](figures/zh-cn_image_0000001105216296.png) + + +## 安装 kconfiglib时,遇到lsb\_release错误 + +- **现象描述** + + 安装kconfiglib过程中遇到如下错误打印: + + ``` + subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1. + ``` + +- **可能原因** + + lsb\_release模块基于的python版本与现有python版本不一致 + +- **解决办法** + + 执行"find / -name lsb\_release",找到lsb\_release位置并删除,如:"sudo rm -rf /usr/bin/lsb\_release" + + diff --git "a/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-11.md" "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-11.md" new file mode 100644 index 0000000000000000000000000000000000000000..7f7e7a76538ce683098105b3e6bda42bae97df74 --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-11.md" @@ -0,0 +1,21 @@ +# 常见问题 + +- **现象描述** + + Linux编译服务器终端输入不识别的命令时,提示"ImportError: No module named apt\_pkg" + + +- **可能原因** + + python3 apt安装兼容性问题。 + +- **解决办法** + + 执行如下命令重新安装python3-apt。 + + ``` + sudo apt-get remove python3-apt + sudo apt-get install python3-apt + ``` + + diff --git "a/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-3.md" "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-3.md" new file mode 100644 index 0000000000000000000000000000000000000000..1dade41bc1a1fd59f0cd3e366899d314ced4f6a9 --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-3.md" @@ -0,0 +1,175 @@ +# 常见问题 + +- [烧写选择串口后提示失败](#section627268185113) +- [Windows电脑与单板网络连接失败](#section195391036568) +- [烧写失败](#section571164016565) +- [编译构建过程中,提示找不到“python”](#section1039835245619) +- [串口无回显](#section14871149155911) + +## 烧写选择串口后提示失败 + +- **现象描述** + + 点击烧写并选择串口后,出现Error: Opening COMxx: Access denied。 + + **图 1** 打开串口失败图 + ![](figures/打开串口失败图.png "打开串口失败图") + +- **可能原因** + + 串口已经被占用。 + +- **解决办法** + +1. 按图依次选择下拉框,查找带有serial-xx的终端 + + **图 2** 查找是否存在占用串口的终端 + ![](figures/查找是否存在占用串口的终端.png "查找是否存在占用串口的终端") + +2. 点击标号中的垃圾桶图标,关闭串口。 + + **图 3** 关闭串口终端 + ![](figures/关闭串口终端.png "关闭串口终端") + +3. 重新点击烧写,选择串口并开始烧写程序 + + **图 4** 重新启动烧写任务 + + + ![](figures/changjian1.png) + + +## Windows电脑与单板网络连接失败 + +- **现象描述** + + 点击烧写并选择串口后,无法获取文件。 + + **图 5** 网络不通,单板无法获取文件图 + ![](figures/网络不通-单板无法获取文件图.png "网络不通-单板无法获取文件图") + +- **可能原因** + + 单板网络与Windows电脑不联通。 + + Windows电脑防火墙未允许Visual Studio Code联网。 + +- **解决方法** + +1. 检查网线是否连接。 +2. 点击Windows防火墙。 + + **图 6** 网络防火墙设置图 + ![](figures/网络防火墙设置图.png "网络防火墙设置图") + +3. 点击“允许应用通过防火墙”。 + + **图 7** 防火墙和网络保护界面图 + ![](figures/防火墙和网络保护界面图.png "防火墙和网络保护界面图") + +4. 查找Visual Studio Code应用。 + + **图 8** 查找Visual Studio Code应用图 + ![](figures/查找Visual-Studio-Code应用图.png "查找Visual-Studio-Code应用图") + +5. 勾选Visual Studio Code的专用和公用网络的访问权限。 + + **图 9** 允许Visual Studio Code应用访问网络 + ![](figures/允许Visual-Studio-Code应用访问网络.png "允许Visual-Studio-Code应用访问网络") + + +## 烧写失败 + +- **现象描述** + + 点击烧写并选择串口后,出现无法烧写的情况。 + +- **可能原因** + + 安装IDE插件DevEco后未重启。 + +- **解决方法** + + 重启IDE。 + + +## 编译构建过程中,提示找不到“python” + +- **现象描述** + + ![](figures/zh-cn_image_0000001105056492.png) + + +- **可能原因1** + + 没有装python。 + +- **解决办法** + + 请按照[安装python](../quick-start/Ubuntu编译环境准备.md)。 + +- **可能原因2** + + ![](figures/zh-cn_image_0000001151976069.png) + +- **解决办法** + + usr/bin目录下没有python软链接,请运行以下命令: + + ``` + # cd /usr/bin/ + # which python3 + # ln -s /usr/local/bin/python3 python + # python --version + ``` + + 例: + + ![](figures/zh-cn_image_0000001152176139.png) + + +## 串口无回显 + +- **现象描述** + + 串口显示已连接,重启单板后,回车无任何回显。 + +- **可能原因1** + + 串口连接错误。 + +- **解决办法** + + 修改串口号。 + + 请查看设备管理器,确认连接单板的串口与终端中连接串口是否一致,若不一致,请按镜像运行内[步骤1](../quick-start/运行Hello-OHOS.md)修改串口号。 + + +- **可能原因2** + + 单板U-boot被损坏。 + +- **解决办法** + + 烧写U-boot。 + + 若上述步骤依旧无法连接串口,可能由于单板U-boot损坏,按下述步骤烧写U-boot。 + + +1. 获取引导文件U-boot。 + + >![](public_sys-resources/icon-notice.gif) **须知:** + >单板的U-boot文件请在开源包中获取: + >Hi3516DV300:device\\hisilicon\\hispark\_taurus\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3516dv300.bin + >Hi3518EV300:device\\hisilicon\\hispark\_aries\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3518ev300.bin + +2. 根据USB烧写步骤烧写U-boot文件。 + + 按照[Hi3516系列USB烧写步骤](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_upload-0000001052148681)/[Hi3518系列USB烧写步骤](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3518_upload-0000001057313128)中描述的USB烧写方法,选择对应单板的U-boot文件进行烧写。 + +3. 烧写完成后,登录串口如下图所示。 + + **图 10** U-boot烧写完成串口显示图 + ![](figures/U-boot烧写完成串口显示图.png "U-boot烧写完成串口显示图") + + diff --git "a/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-6.md" "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-6.md" new file mode 100644 index 0000000000000000000000000000000000000000..1bff88b102de828e19eda72d4a376dcec7ea9a01 --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230-6.md" @@ -0,0 +1,174 @@ +# 常见问题 + +- [烧写选择串口后提示失败](#section1498892119619) +- [Windows电脑与单板网络连接失败](#section8512971816) +- [烧写失败](#section1767804111198) +- [编译构建过程中,提示找不到“python”](#zh-cn_topic_0000001053466255_section1039835245619) +- [串口无回显](#zh-cn_topic_0000001053466255_section14871149155911) + +## 烧写选择串口后提示失败 + +- **现象描述** + + 点击烧写并选择串口后,出现Error: Opening COMxx: Access denied。 + + **图 1** 打开串口失败图 + ![](figures/打开串口失败图-7.png "打开串口失败图-7") + +- **可能原因** + + 串口已经被占用。 + +- **解决办法** + +1. 按图依次选择下拉框,查找带有serial-xx的终端 + + **图 2** 查找是否存在占用串口的终端 + ![](figures/查找是否存在占用串口的终端-8.png "查找是否存在占用串口的终端-8") + +2. 点击标号中的垃圾桶图标,关闭串口。 + + **图 3** 关闭串口终端 + ![](figures/关闭串口终端-9.png "关闭串口终端-9") + +3. 重新点击烧写,选择串口并开始烧写程序 + + **图 4** 重新启动烧写任务 + + + ![](figures/changjian1-10.png) + + +## Windows电脑与单板网络连接失败 + +- **现象描述** + + 点击烧写并选择串口后,无法获取文件。 + + **图 5** 网络不通,单板无法获取文件图 + ![](figures/网络不通-单板无法获取文件图-11.png "网络不通-单板无法获取文件图-11") + +- **可能原因** + + 单板网络与Windows电脑不联通。 + + Windows电脑防火墙未允许Visual Studio Code联网。 + +- **解决方法** + +1. 检查网线是否连接。 +2. 点击Windows防火墙。 + + **图 6** 网络防火墙设置图 + ![](figures/网络防火墙设置图-12.png "网络防火墙设置图-12") + +3. 点击“允许应用通过防火墙”。 + + **图 7** 防火墙和网络保护界面图 + ![](figures/防火墙和网络保护界面图-13.png "防火墙和网络保护界面图-13") + +4. 查找Visual Studio Code应用。 + + **图 8** 查找Visual Studio Code应用图 + ![](figures/查找Visual-Studio-Code应用图-14.png "查找Visual-Studio-Code应用图-14") + +5. 勾选Visual Studio Code的专用和公用网络的访问权限。 + + **图 9** 允许Visual Studio Code应用访问网络 + ![](figures/允许Visual-Studio-Code应用访问网络-15.png "允许Visual-Studio-Code应用访问网络-15") + + +## 烧写失败 + +- **现象描述** + + 点击烧写并选择串口后,出现无法烧写的情况。 + +- **可能原因** + + 安装IDE插件DevEco后未重启。 + +- **解决方法** + + 重启IDE。 + + +## 编译构建过程中,提示找不到“python” + +- **现象描述** + + ![](figures/zh-cn_image_0000001105376260.png) + + +- **可能原因1** + + 没有装python。 + +- **解决办法** + + 请按照[安装python](../quick-start/Ubuntu编译环境准备.md)。 + +- **可能原因2** + + ![](figures/zh-cn_image_0000001105216304.png) + +- **解决办法** + + usr/bin目录下没有python软链接,请运行以下命令: + + ``` + # cd /usr/bin/ + # which python3 + # ln -s /usr/local/bin/python3 python + # python --version + ``` + + 例: + + ![](figures/zh-cn_image_0000001152256235.png) + + +## 串口无回显 + +- **现象描述** + + 串口显示已连接,重启单板后,回车无任何回显。 + +- **可能原因1** + + 串口连接错误。 + +- **解决办法** + + 修改串口号。 + + 请查看设备管理器,确认连接单板的串口与终端中连接串口是否一致,若不一致,请按镜像运行内[步骤1](../quick-start/运行Hello-OHOS.md)修改串口号。 + + +- **可能原因2** + + 单板U-boot被损坏。 + +- **解决办法** + + 烧写U-boot。 + + 若上述步骤依旧无法连接串口,可能由于单板U-boot损坏,按下述步骤烧写U-boot。 + + +1. 获取引导文件U-boot。 + + >![](public_sys-resources/icon-notice.gif) **须知:** + >单板的U-boot文件请在开源包中获取: + >Hi3516DV300:device\\hisilicon\\hispark\_taurus\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3516dv300.bin + >Hi3518EV300:device\\hisilicon\\hispark\_aries\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3518ev300.bin + +2. 根据USB烧写步骤烧写U-boot文件。 + + 按照[Hi3516系列USB烧写步骤](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_upload-0000001052148681)/[Hi3518系列USB烧写步骤](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3518_upload-0000001057313128)中描述的USB烧写方法,选择对应单板的U-boot文件进行烧写。 + +3. 烧写完成后,登录串口如下图所示。 + + ![](figures/zh-cn_image_0000001105536118.png) + + diff --git "a/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230.md" "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230.md" index 84670ed10499aa12d454ef179558215bfa1d1038..2bb8c5f473aa8b6038dca80d1c1fc94b9ae5a019 100755 --- "a/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230.md" +++ "b/zh-cn/device-dev/quick-start/\345\270\270\350\247\201\351\227\256\351\242\230.md" @@ -3,6 +3,7 @@ - [hb 安装过程中出现乱码、段错误](#section411894616119) - [hb 安装过程中提示"cannot import 'sysconfig' from 'distutils'"](#section629417571626) - [hb 安装过程中提示"module 'platform' has no attribute 'linux\_distribution'"](#section10871523332) +- [hb 安装过程中提示"Could not find a version that satisfies the requirement ohos-build"](#section47351657163213) - [Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt\_pkg”](#section159891252236) ## hb 安装过程中出现乱码、段错误 @@ -67,6 +68,27 @@ ``` +## hb 安装过程中提示"Could not find a version that satisfies the requirement ohos-build" + +- **现象描述** + + 执行“python3 -m pip install --user ohos-build”提示"Could not find a version that satisfies the requirement ohos-build" + + +- **可能原因** + + 可能是网络环境较差导致的安装失败。 + +- **解决办法** + 1. 请检查网络连接是否正常。如果网络有问题,请修复网络问题后重新安装。 + 2. 若网络正常,请尝试指定临时pypi源的方式安装: + + ``` + python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ohos-build + ``` + + + ## Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt\_pkg” - **现象描述** diff --git "a/zh-cn/device-dev/quick-start/\345\274\200\345\217\221\346\255\245\351\252\244-12.md" "b/zh-cn/device-dev/quick-start/\345\274\200\345\217\221\346\255\245\351\252\244-12.md" new file mode 100644 index 0000000000000000000000000000000000000000..40cde60fb17a996761f180e09bcb509a339f160a --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\345\274\200\345\217\221\346\255\245\351\252\244-12.md" @@ -0,0 +1,246 @@ +# 开发步骤 + +- [环境搭建](#section1246439101710) +- [编译](#section375234715135) +- [烧录](#section111671738101213) + - [前提条件](#section1458192114718) + - [使用USB烧录](#section18423113662120) + +- [示例开发](#section5600113114323) + +## 环境搭建 + +请参考[搭建标准系统环境](概述-8.md)完成OpenHarmony的系统环境搭建。 + +>![](public_sys-resources/icon-note.gif) **说明:** +>如果使用三方开发板开发,针对开发板的具体环境要求,以三方开发板的官方指导为准。 + +## 编译 + +使用Docker环境的开发者可参照Docker使用指导进行编译。采用安装包方式的开发者在Linux环境进行如下操作。 + +1. 进入源码根目录,执行如下命令进行版本编译。 + + ``` + ./build.sh --product-name Hi3516DV300 + ``` + + \{product\_name\}为当前版本支持的平台。 + +2. 检查编译结果。编译完成后,log中显示如下: + + ``` + build system image successful. + =====build Hi3516DV300 successful. + ``` + + 编译所生成的文件都归档在out/ohos-arm-release/目录下,结果镜像输出在 out/ohos-arm-release/packages/phone/images/ 目录下。 + + >![](public_sys-resources/icon-note.gif) **说明:** + >其他模块化编译操作,可参见[编译构建指导](../subsystems/标准系统编译构建指导.md)。 + + +## 烧录 + +标准系统烧录,在V2.2 Beta1及以上版本支持。 + +Hi3516系列开发板中,只有Hi3516DV300支持烧录标准系统,其烧录方式包括USB烧录、网口烧录和串口烧录三种方式,其中: + +- **Windows系统:支持USB烧录、网口烧录和串口烧录** +- **Linux系统:支持串口烧录和网口烧录。如果采用的是Linux+Windows双系统,也支持USB烧录。** + +同一种烧录方式(如网口烧录),在Windows和Linux环境下的烧录操作完全一致,区别仅在于DevEco Device Tool环境搭建不同。 + +>![](public_sys-resources/icon-note.gif) **说明:** +>当前Hi3516DV300开发板支持通过USB、网口、串口三种方式烧录OpenHarmony标准系统。本文以USB方式为例讲解烧录操作,其他两种烧录方式请参照[Hi3516DV300烧录指导](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_upload-0000001052148681)。 + +### 前提条件 + +在DevEco Device Tool中[打开一个工程](https://device.harmonyos.com/cn/docs/ide/user-guides/open_project-0000001071680043),该工程文件夹选择待烧录文件所在文件夹即可。其中开发板类型固定选择Hi3516DV300,Framework选择“Hb”。 + +### 使用USB烧录 + +Hi3516DV300开发板使用USB烧录方式,支持Windows系统。如果采用的是Linux+Windows双系统,Linux系统也支持USB烧录。 + +1. 请连接好电脑和待烧录开发板,以Hi3516DV300为例,需要同时连接串口和USB口,具体可参考[Hi3516开发板介绍](https://device.harmonyos.com/cn/docs/start/introduce/oem_camera_start_3516-0000001052670587)。 +2. 打开电脑的设备管理器,查看并记录对应的串口号。 + + >![](public_sys-resources/icon-note.gif) **说明:** + >如果对应的串口异常,请根据[Hi3516/Hi3518系列开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 + + ![](figures/zh-cn_image_0000001160529359.png) + +3. 打开DevEco Device Tool,在Projects中,点击**Settings**打开工程配置界面。 + + ![](figures/2021-01-27_170334-16.png) + +4. 在**Partition Configuration**页签中,按照下表内容填写烧录文件信息,包括: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

+

Binary

+

Memory

+

System

+

Address

+

Length

+

Board

+

Type

+

fastboot

+

选择“u-boot-hi3516dv300_emmc.bin”

+

emmc

+

none

+

0x000000

+

0x100000

+

固定选择“hi3516dv300”

+

NA

+

boot

+

选择“uImage”

+

emmc

+

none

+

0x100000

+

0xf00000

+

NA

+

updater

+

选择“updater.img”

+

emmc

+

ext3/4

+

0x1000000

+

0x1400000

+

NA

+

misc

+

空白,不用选择

+

emmc

+

none

+

0x2400000

+

0x100000

+

NA

+

system

+

选择“system.img”

+

emmc

+

ext3/4

+

0x2500000

+

0xceb00000

+

NA

+

vendor

+

选择“vendor.img”

+

emmc

+

ext3/4

+

0xd1000000

+

0x10000000

+

NA

+

userdata

+

选择“userdata.img”

+

emmc

+

ext3/4

+

0xe1000000

+

0x5b800000

+

NA

+
+ + ![](figures/zh-cn_image_0000001160527611.png) + +5. 在“hi3516dv300”页签,设置烧录选项,包括upload\_port、upload\_partitions和upload\_protocol。 + + - upload\_port:选择步骤2中查询的串口号。 + - upload\_protocol:选择烧录协议,固定选择“hiburn-usb”。 + - upload\_partitions:选择待烧录的文件,包括fastboot、boot、updater、misc、system、vendor和userdata。 + + ![](figures/zh-cn_image_0000001160528243.png) + +6. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 +7. 打开工程文件,点击![](figures/2021-01-27_170334-17.png)图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击fastboot下的**Erase**按钮,擦除U-Boot。 + + ![](figures/zh-cn_image_0000001163045527.png) + +8. 执行**Erase**擦除操作后,显示如下提示信息时,请重启开发板(下电再上电)。 + + ![](figures/zh-cn_image_0000001114129426.png) + +9. 重新上电后,显示如下信息时,表示擦除U-Boot成功。 + + ![](figures/zh-cn_image_0000001113969536.png) + +10. 擦除完成后,点击hi3516dv300下的**Upload**按钮,启动烧录。 + + >![](public_sys-resources/icon-note.gif) **说明:** + >如果您是第一次在工作台烧录Hi3516/Hi3518系列开发板,可能烧录失败,提示“not find the Devices”,请根据[Hi3516/Hi3518系列开发板USB驱动安装](https://device.harmonyos.com/cn/docs/ide/user-guides/usb_driver-0000001058690393)进行处理后再重新烧录。 + + ![](figures/1-18.png) + +11. 启动烧录后,界面提示如下信息时,表示烧录成功。 + + ![](figures/zh-cn_image_0000001160649343.png) + + +## 示例开发 + +恭喜!您已经完成了OpenHarmony标准系统的快速入门,接下来可[开发一个小示例](../guide/概述-10.md),进一步熟悉OpenHarmony的开发。 + diff --git "a/zh-cn/device-dev/quick-start/\346\220\255\345\273\272\347\263\273\347\273\237\347\216\257\345\242\203.md" "b/zh-cn/device-dev/quick-start/\346\220\255\345\273\272\347\263\273\347\273\237\347\216\257\345\242\203.md" index 76a80c3b96030ff5a119f09b95aa0f69954ff08e..8329e7ffd099f57833fa26a714a4a2597583b18f 100755 --- "a/zh-cn/device-dev/quick-start/\346\220\255\345\273\272\347\263\273\347\273\237\347\216\257\345\242\203.md" +++ "b/zh-cn/device-dev/quick-start/\346\220\255\345\273\272\347\263\273\347\273\237\347\216\257\345\242\203.md" @@ -1,12 +1,6 @@ # 搭建系统环境 -OpenHarmony可以使用DevEco Device Tool进行开发、编译、烧录、调测等。 - -当前DevEco Device Tool发布了Windows和Ubuntu两个版本,本文以Windows版本进行相应开发介绍。 - -使用Ubuntu版本的开发者可参阅[操作指导](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905)。 - -当前Windows版本(除Hi3861外)尚不支持在Windows平台下编译,需要在Ubuntu平台下编译,下文将介绍如何搭建对应的OpenHarmony轻量和小型系统的开发环境和编译环境。 +- **[概述](概述-0.md)** - **[Windows开发环境准备](Windows开发环境准备.md)** diff --git "a/zh-cn/device-dev/quick-start/\346\240\207\345\207\206\347\263\273\347\273\237\345\205\245\351\227\250.md" "b/zh-cn/device-dev/quick-start/\346\240\207\345\207\206\347\263\273\347\273\237\345\205\245\351\227\250.md" index de1b44c9d0fa989a4b0131250c88844781a92211..6c5d5731272e16d42afd0fb49e2e856b8bfc0911 100755 --- "a/zh-cn/device-dev/quick-start/\346\240\207\345\207\206\347\263\273\347\273\237\345\205\245\351\227\250.md" +++ "b/zh-cn/device-dev/quick-start/\346\240\207\345\207\206\347\263\273\347\273\237\345\205\245\351\227\250.md" @@ -1,9 +1,9 @@ # 标准系统入门 -- **[概述](概述-6.md)** +- **[概述](概述-7.md)** - **[环境搭建](环境搭建.md)** -- **[开发步骤](开发步骤-11.md)** +- **[开发步骤](开发步骤-12.md)** diff --git "a/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-0.md" "b/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-0.md" new file mode 100644 index 0000000000000000000000000000000000000000..9438a5709543f609e8be3c31d3b142ad6bedacc3 --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-0.md" @@ -0,0 +1,10 @@ +# 概述 + +OpenHarmony可以使用DevEco Device Tool进行开发、编译、烧录、调测等。 + +当前DevEco Device Tool发布了Windows和Ubuntu两个版本,本文以Windows版本进行相应开发介绍。 + +使用Ubuntu版本的开发者可参阅[操作指导](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905)。 + +当前Windows版本(除Hi3861外)尚不支持在Windows平台下编译,需要在Ubuntu平台下编译,下文将介绍如何搭建对应的OpenHarmony轻量和小型系统的开发环境和编译环境。 + diff --git "a/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-7.md" "b/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-7.md" index eaf80417808164bc1f2863bedd64d2aafea5aa34..8551ab5722f57062a695c9bb4e420bb300006355 100644 --- "a/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-7.md" +++ "b/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-7.md" @@ -1,58 +1,4 @@ -# 概述 +# 概述 -- [简介](#section18217135811916) -- [环境要求](#section466851916410) - - [硬件要求](#section19682305453) - - [软件要求](#section1595725202314) - - -## 简介 - -OpenHarmony标准系统当前可以使用DevEco Device Tool在Windows平台进行开发和烧录,使用Linux环境进行编译。本文接下来将介绍如何进行对应环境的搭建。 - ->![](public_sys-resources/icon-note.gif) **说明:** ->OpenHarmony标准系统的Windows开发环境准备跟轻量和小型系统的对应操作一致,所以完成轻量和小型系统Windows开发环境准备的开发者可以跳过本文[第2章节](Windows开发环境准备-8.md)。 - -## 环境要求 - -### 硬件要求 - -- Linux服务器 -- Windows工作台(主机电脑) - -### 软件要求 - -**表 1** 开发平台要求 - - - - - - - - - - - - - - - - - - -

平台

-

软件

-

描述

-

备注

-

Linux编译服务器

-

操作系统

-

Ubuntu18.04及以上64位系统版本,Shell使用bash。服务器硬件规格要求见下:

-
  • 硬盘:至少400G
  • CPU:至少8核
  • 内存:至少32G
-

通常系统默认安装samba、vim等常用软件,需要做适当适配以支持Linux文件共享。

-

开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。

-

Windows工作台

-

操作系统

-

Windows XP/Windows7/Windows10

-
+开发者可以通过本文快速掌握OpenHarmony标准系统的环境搭建、编译、烧录、启动等操作。本文将以当前推荐的Hi3516DV300开发板为例进行说明。 diff --git "a/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-8.md" "b/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-8.md" new file mode 100644 index 0000000000000000000000000000000000000000..2dfd7a2168d9b8fc7dec01687a1c857ec9eb2282 --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\346\246\202\350\277\260-8.md" @@ -0,0 +1,58 @@ +# 概述 + +- [简介](#section18217135811916) +- [环境要求](#section466851916410) + - [硬件要求](#section19682305453) + - [软件要求](#section1595725202314) + + +## 简介 + +OpenHarmony标准系统当前可以使用DevEco Device Tool在Windows平台进行开发和烧录,使用Linux环境进行编译。本文接下来将介绍如何进行对应环境的搭建。 + +>![](public_sys-resources/icon-note.gif) **说明:** +>OpenHarmony标准系统的Windows开发环境准备跟轻量和小型系统的对应操作一致,所以完成轻量和小型系统Windows开发环境准备的开发者可以跳过本文[第2章节](Windows开发环境准备-9.md)。 + +## 环境要求 + +### 硬件要求 + +- Linux服务器 +- Windows工作台(主机电脑) + +### 软件要求 + +**表 1** 开发平台要求 + + + + + + + + + + + + + + + + + + +

平台

+

软件

+

描述

+

备注

+

Linux编译服务器

+

操作系统

+

Ubuntu18.04及以上64位系统版本,Shell使用bash。服务器硬件规格要求见下:

+
  • 硬盘:至少400G
  • CPU:至少8核
  • 内存:至少32G
+

通常系统默认安装samba、vim等常用软件,需要做适当适配以支持Linux文件共享。

+

开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。

+

Windows工作台

+

操作系统

+

Windows XP/Windows7/Windows10

+
+ diff --git "a/zh-cn/device-dev/quick-start/\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/zh-cn/device-dev/quick-start/\347\216\257\345\242\203\346\220\255\345\273\272.md" index cde9dbbed1b53a290374a8ed196bb4ca2a192929..299cbb9c175b6842abb2c36091dab1a64049a70d 100644 --- "a/zh-cn/device-dev/quick-start/\347\216\257\345\242\203\346\220\255\345\273\272.md" +++ "b/zh-cn/device-dev/quick-start/\347\216\257\345\242\203\346\220\255\345\273\272.md" @@ -1,11 +1,11 @@ # 环境搭建 -- **[概述](概述-7.md)** +- **[概述](概述-8.md)** -- **[Windows开发环境准备](Windows开发环境准备-8.md)** +- **[Windows开发环境准备](Windows开发环境准备-9.md)** -- **[Ubuntu编译环境准备](Ubuntu编译环境准备-9.md)** +- **[Ubuntu编译环境准备](Ubuntu编译环境准备-10.md)** -- **[常见问题](常见问题-10.md)** +- **[常见问题](常见问题-11.md)** diff --git "a/zh-cn/device-dev/quick-start/\350\277\220\350\241\214Hello-OHOS-5.md" "b/zh-cn/device-dev/quick-start/\350\277\220\350\241\214Hello-OHOS-5.md" new file mode 100644 index 0000000000000000000000000000000000000000..c0146d09136cde8e590603813306b64ed1ec961f --- /dev/null +++ "b/zh-cn/device-dev/quick-start/\350\277\220\350\241\214Hello-OHOS-5.md" @@ -0,0 +1,262 @@ +# 运行Hello OHOS + +- [新建应用程序](#section1550972416485) +- [编译](#section234175193114) +- [烧录](#section7609155824819) +- [镜像运行](#section17612105814480) +- [下一步学习](#section9712145420182) + +本节指导开发者在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。 + +## 新建应用程序 + +1. 新建目录及源码 + + 新建**applications/sample/camera/apps/src/helloworld.c**目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。 + + ``` + #include + + int main(int argc, char **argv) + { + printf("\n************************************************\n"); + printf("\n\t\tHello OHOS!\n"); + printf("\n************************************************\n\n"); + + return 0; + } + ``` + +2. 新建编译组织文件 + + 新建**applications/sample/camera/apps/BUILD.gn**文件,内容如下所示: + + ``` + import("//build/lite/config/component/lite_component.gni") + lite_component("hello-OHOS") { + features = [ ":helloworld" ] + } + executable("helloworld") { + output_name = "helloworld" + sources = [ "src/helloworld.c" ] + include_dirs = [] + defines = [] + cflags_c = [] + ldflags = [] + } + ``` + +3. 添加新组件 + + 修改文件**build/lite/components/applications.json**,添加组件hello\_world\_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + ``` + { + "components": [ + { + "component": "camera_sample_communication", + "description": "Communication related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/communication" + ], + "targets": [ + "//applications/sample/camera/communication:sample" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_a" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##start## + { + "component": "hello_world_app", + "description": "Communication related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/apps" + ], + "targets": [ + "//applications/sample/camera/apps:hello-OHOS" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_a" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##end## + { + "component": "camera_sample_app", + "description": "Camera related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/launcher", + "applications/sample/camera/cameraApp", + "applications/sample/camera/setting", + "applications/sample/camera/gallery", + "applications/sample/camera/media" + ], + ``` + +4. 修改单板配置文件 + + 修改文件**vendor/hisilicon/hispark\_aries/config.json**,新增hello\_world\_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + ``` + { + "subsystem": "applications", + "components": [ + ##start## + { "component": "hello_world_app", "features":[] }, + ##end## + { "component": "camera_sample_app", "features":[] } + + ] + }, + ``` + + +## 编译 + +如果Linux编译环境通过Docker方式安装,具体编译过程请参见[Docker方式获取编译环境](../get-code/获取工具.md)的编译操作。如果Linux编译环境通过软件包方式安装,进入源码根目录,执行如下命令进行编译: + +``` +hb set(设置编译路径) +.(选择当前路径) +选择ipcamera_hispark_aries@hisilicon并回车 +hb build -f(执行编译) +``` + +结果文件生成在out/hispark\_aries/ipcamera\_hispark\_aries目录下。 + +**图 1** 设置图例 +![](figures/设置图例-4.png "设置图例-4") + +>![](public_sys-resources/icon-notice.gif) **须知:** +>Hi3518EV300单板的U-boot文件获取路径:device/hisilicon/hispark\_aries/sdk\_liteos/uboot/out/boot/u-boot-hi3518ev300.bin + +## 烧录 + +Hi3518开发板的代码烧录仅支持USB烧录方式。 + +1. 请连接好电脑和待烧录开发板,以Hi3518EV300为例,需要同时连接串口和USB口,具体可参考[Hi3518开发板介绍](https://device.harmonyos.com/cn/docs/start/introduce/oem_camera_start_hi3518-0000001050170473)。 +2. 打开电脑的设备管理器,查看并记录对应的串口号。 + + >![](public_sys-resources/icon-note.gif) **说明:** + >如果对应的串口异常,请根据[Hi3516/Hi3518系列开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 + + ![](figures/zh-cn_image_0000001073057176.png) + +3. 打开DevEco Device Tool,在Projects中,点击**Settings**打开工程配置界面。 + + ![](figures/zh-cn_image_0000001077956808.png) + +4. 在“Partition Configuration”页签,设置待烧录文件信息,默认情况下,DevEco Device Tool已针对Hi3518系列开发板进行适配,无需单独修改。 +5. 在“hi3518ev300”页签,设置烧录选项,包括upload\_port、upload\_partitions和upload\_protocol。 + + - upload\_port:选择步骤[2](#zh-cn_topic_0000001057313128_li46411811196)中查询的串口号。 + - upload\_protocol:选择烧录协议,固定选择“hiburn-usb”。 + - upload\_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 + + ![](figures/zh-cn_image_0000001096963405.png) + +6. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 +7. 打开工程文件,点击![](figures/2021-01-27_170334-5.png)图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hi3518ev300\_fastboot下的**Erase**按钮,擦除U-Boot。 + + ![](figures/zh-cn_image_0000001163529159.png) + +8. 执行**Erase**擦除操作后,显示如下提示信息时,请重启开发板(下电再上电)。 + + ![](figures/zh-cn_image_0000001078089378.png) + +9. 重新上电后,显示如下信息时,表示擦除U-Boot成功。 + + ![](figures/zh-cn_image_0000001073835952.png) + +10. 擦除完成后,点击hi3518ev300下的**Upload**按钮,启动烧录。 + + ![](figures/zh-cn_image_0000001163568181.png) + +11. 启动烧录后,界面提示如下信息时,表示烧录成功。 + + ![](figures/zh-cn_image_0000001073242197.png) + + +## 镜像运行 + +1. 连接串口。 + + >![](public_sys-resources/icon-notice.gif) **须知:** + >若无法连接串口,请参考[常见问题](../quick-start/常见问题-6.md)进行排查。 + + **图 2** 连接串口图 + + + ![](figures/chuankou1-6.png) + + 1. 单击**Monitor**打开串口。 + 2. 连续输入回车直到串口显示"hisilicon"。 + 3. 单板初次启动或修改启动参数,请进入[步骤2](#li9441185382314),否则进入[步骤3](#li6442853122312)。 + +2. (初次烧写必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,可保存执行结果,但U-boot重新烧入,则需要再次执行下述步骤。 + + **表 1** U-boot修改命令 + + + + + + + + + + + + + + + + + + + + + + +

执行命令

+

命令解释

+

setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";

+

设置bootcmd内容,选择FLASH器件0,读取FLASH起始地址为0x100000,大小为0x600000字节的内容到0x40000000的内存地址,此处0x600000为6MB,与IDE中填写OHOS_Image.bin的文件大小必须相同

+

setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";

+

表示设置bootargs参数为串口输出,波特率为115200,数据位8,rootfs挂载于FLASH上,文件系统类型为jffs2 rw,以支持可读写JFFS2文件系统。“rootaddr=7M rootsize=8M”处对应填入实际rootfs.img的烧写起始位置与长度,与IDE内所填大小必须相同

+

saveenv

+

表示保存当前配置。

+

reset

+

表示复位单板。

+

pri

+

表示查看显示参数。

+
+ + >![](public_sys-resources/icon-notice.gif) **须知:** + >**“go 0x40000000”**为可选指令,默认配置已将该指令固化在启动参数中,单板复位后可自动启动。若想切换为手动启动,可在U-boot启动倒数阶段使用"回车"打断自动启动。 + +3. 若启动时显示**"hisilicon \#**字样,请输入**“reset”**指令,等待系统自启动进入系统,系统启动后,显示**“OHOS”**字样,输入**”./bin/helloworld”**并回车,显示成功结果如下图所示。 + + **图 3** 启动成功并执行应用程序图 + ![](figures/启动成功并执行应用程序图.png "启动成功并执行应用程序图") + + +## 下一步学习 + +恭喜您,已完成Hi3518的快速上手!建议您下一步进入[无屏摄像头产品开发](../guide/摄像头控制.md)的学习 。 + diff --git "a/zh-cn/device-dev/quick-start/\350\277\220\350\241\214Hello-OHOS.md" "b/zh-cn/device-dev/quick-start/\350\277\220\350\241\214Hello-OHOS.md" index 386cea2c88d938d3fd6ad0b8a34c5f49044f3d35..68de0b2b57b40a4f61aaebfbe2a3ec50870bb9e2 100755 --- "a/zh-cn/device-dev/quick-start/\350\277\220\350\241\214Hello-OHOS.md" +++ "b/zh-cn/device-dev/quick-start/\350\277\220\350\241\214Hello-OHOS.md" @@ -169,7 +169,7 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三 - upload\_protocol:选择烧录协议,固定选择“hiburn-net”。 - upload\_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 - ![](figures/zh-cn_image_0000001117168786.png) + ![](figures/zh-cn_image_0000001160529355.png) 6. 检查和设置连接开发板后的网络适配器的IP地址信息,设置方法请参考[设置Hi3516网口烧录的IP地址信息](https://device.harmonyos.com/cn/docs/ide/user-guides/set_ipaddress-0000001141825075)。 7. 设置网口烧录的IP地址信息,设置如下选项: @@ -179,7 +179,7 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三 - upload\_net\_client\_gw:设置开发板的网关,工具会自动根据选择的upload\_net\_server\_ip进行设置。例如192.168.1.1 - upload\_net\_client\_ip:设置开发板的IP地址,工具会自动根据选择的upload\_net\_server\_ip进行设置。例如192.168.1.3 - ![](figures/zh-cn_image_0000001160649345.png) + ![](figures/zh-cn_image_0000001117463460.png) 8. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 9. 打开工程文件,点击![](figures/2021-01-27_170334-2.png)图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hi3516dv300下的**Upload**按钮,启动烧录。 @@ -200,7 +200,7 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三 1. 连接串口。 >![](public_sys-resources/icon-notice.gif) **须知:** - >若无法连接串口,请参考[常见问题](../quick-start/常见问题-2.md)进行排查。 + >若无法连接串口,请参考[常见问题](../quick-start/常见问题-3.md)进行排查。 **图 2** 连接串口图 diff --git "a/zh-cn/device-dev/quick-start/\351\251\261\345\212\250\345\274\200\345\217\221\347\244\272\344\276\213.md" "b/zh-cn/device-dev/quick-start/\351\251\261\345\212\250\345\274\200\345\217\221\347\244\272\344\276\213.md" index 7be37568d61e32dfc9900422b309e12ab8e5da45..ae2c5d1108fb1ba6469b6fc18543567b2208bb6c 100755 --- "a/zh-cn/device-dev/quick-start/\351\251\261\345\212\250\345\274\200\345\217\221\347\244\272\344\276\213.md" +++ "b/zh-cn/device-dev/quick-start/\351\251\261\345\212\250\345\274\200\345\217\221\347\244\272\344\276\213.md" @@ -430,7 +430,7 @@ 1. 连接串口。 >![](public_sys-resources/icon-notice.gif) **须知:** - >若无法连接串口,请参考[常见问题](../quick-start/常见问题-2.md)进行排查。 + >若无法连接串口,请参考[常见问题](../quick-start/常见问题-3.md)进行排查。 **图 1** 连接串口图 diff --git a/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001119924146.gif b/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001119924146.gif new file mode 100644 index 0000000000000000000000000000000000000000..9cd37267672d3bea422b98d95c413e26df330de8 Binary files /dev/null and b/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001119924146.gif differ diff --git a/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001166643927.jpg b/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001166643927.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ace4cefd36637675f235df3cd596eca3ed218e6c Binary files /dev/null and b/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001166643927.jpg differ diff --git "a/zh-cn/device-dev/subsystems/\347\274\226\350\257\221\346\236\204\345\273\272\344\275\277\347\224\250\346\214\207\345\257\274.md" "b/zh-cn/device-dev/subsystems/\347\274\226\350\257\221\346\236\204\345\273\272\344\275\277\347\224\250\346\214\207\345\257\274.md" index 789d2188f5542d92c059fb0ad9e0aa5a6037d163..8d5f276817760d9b28e9bee264507fc2e6c6b533 100755 --- "a/zh-cn/device-dev/subsystems/\347\274\226\350\257\221\346\236\204\345\273\272\344\275\277\347\224\250\346\214\207\345\257\274.md" +++ "b/zh-cn/device-dev/subsystems/\347\274\226\350\257\221\346\236\204\345\273\272\344\275\277\347\224\250\346\214\207\345\257\274.md" @@ -8,7 +8,7 @@ ## 前提条件 -开发环境需安装gn、ninja构建工具、python 3.7.4及以上和hb。安装方法请见[搭建系统基础环境](..//quick-start/搭建系统环境.md)。 +开发环境需安装gn、ninja构建工具、python 3.7.4及以上和hb。安装方法请见[搭建系统基础环境](../quick-start/搭建系统环境.md)。 ## hb命令行工具使用 diff --git "a/zh-cn/device-dev/subsystems/\347\274\226\350\257\221\346\236\204\345\273\272\346\246\202\350\277\260.md" "b/zh-cn/device-dev/subsystems/\347\274\226\350\257\221\346\236\204\345\273\272\346\246\202\350\277\260.md" index d09c51476cc96f8ea5967527d13c05bc42dccf19..ac0a27d52a625a92231a4ba66fe6b5a1b440575b 100755 --- "a/zh-cn/device-dev/subsystems/\347\274\226\350\257\221\346\236\204\345\273\272\346\246\202\350\277\260.md" +++ "b/zh-cn/device-dev/subsystems/\347\274\226\350\257\221\346\236\204\345\273\272\346\246\202\350\277\260.md" @@ -84,7 +84,7 @@ component │ ├── innerkits # 系统内接口,组件间使用 │ └── kits # 应用接口,应用开发者使用 ├── frameworks # framework实现 -├── services # framework实现 +├── services # service实现 └── BUILD.gn # 组件编译脚本 ```