未验证 提交 305ca9ec 编写于 作者: O openharmony_ci 提交者: Gitee

!3983 Add documents for Hi3751V350

Merge pull request !3983 from yuejianjun/master
......@@ -61,6 +61,11 @@
- [编译](quickstart-ide-standard-running-hi3516-build.md)
- [烧录](quickstart-ide-standard-running-hi3516-burning.md)
- [运行](quickstart-ide-standard-running-hi3516-running.md)
- Hi3751开发板
- [编写“Hello World”程序](quickstart-ide-standard-running-hi3751-create.md)
- [编译](quickstart-ide-standard-running-hi3751-build.md)
- [烧录](quickstart-ide-standard-running-hi3751-burning.md)
- [运行](quickstart-ide-standard-running-hi3751-running.md)
- RK3568开发板
- [编写“Hello World”程序](quickstart-ide-standard-running-rk3568-create.md)
- [编译](quickstart-ide-standard-running-rk3568-build.md)
......@@ -69,6 +74,7 @@
- 附录
- 开发板介绍
- [Hi3516开发板介绍](quickstart-ide-standard-board-introduction-hi3516.md)
- [Hi3751开发板介绍](quickstart-ide-standard-board-introduction-hi3751.md)
- [RK3568开发板介绍](quickstart-ide-standard-board-introduction-rk3568.md)
- 标准系统快速入门(安装包方式)
- [标准系统入门概述](quickstart-standard-overview.md)
......@@ -79,6 +85,11 @@
- [编译](quickstart-standard-running-hi3516-build.md)
- [烧录](quickstart-standard-running-hi3516-burning.md)
- [运行](quickstart-standard-running-hi3516-running.md)
- Hi3751开发板
- [编写“Hello World”程序](quickstart-standard-running-hi3751-create.md)
- [编译](quickstart-standard-running-hi3751-build.md)
- [烧录](quickstart-standard-running-hi3751-burning.md)
- [运行](quickstart-standard-running-hi3751-running.md)
- RK3568开发板
- [编写“Hello World”程序](quickstart-standard-running-rk3568-create.md)
- [编译](quickstart-standard-running-rk3568-build.md)
......@@ -91,5 +102,6 @@
- 附录
- 开发板介绍
- [Hi3516开发板介绍](quickstart-standard-board-introduction-hi3516.md)
- [Hi3751开发板介绍](quickstart-standard-board-introduction-hi3751.md)
- [RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)
- [参考信息](quickstart-standard-reference.md)
\ No newline at end of file
# Hi3751开发板介绍
## 开发板简介
HiSpark-Phoenix是基于海思Hi3751V350智能电视芯片的一块高性能开发板,内置高性能多核 ARM A53 CPU,多核MALI T450 GPU,支持NTSC/PAL/SECAM制式解调,支持DTMB/DVB-C/ATSC/ISDB-T等全球数字Demod,可以扩展DVB-T/T2/S/S2,支持USB播放,支持主流的视频格式包括MPGE2、H.264、H.265、RMVB、AVS+等,支持主流音频解码及音效处理,以及海思自研的SWS音效处理,支持LVDS和miniLVDS接口,支持主流的Tconless屏。
**图1** HiSpark_Phoenix单板正面外观图
![zn-cn_image_Hi3751V350](figures/zn-cn_image_Hi3751V350.png)
## 开发板规格
**表1** HiSpark_Phoenix开发板规格清单
| 规格类型 | 规格清单 |
| -------- | -------- |
| **处理器及内部存储** | -&nbsp;Hi3751V350芯片<br/>-&nbsp;DDR3&nbsp;1GB<br/>-&nbsp;eMMC4.5,8GB容量 |
| **外部器件** | -&nbsp;以太网口<br/>-&nbsp;音频视频<br/>&nbsp;&nbsp;-&nbsp;支持2路立体声输入<br/>&nbsp;&nbsp;-&nbsp;支持2路立体声输出<br/>&nbsp;&nbsp;-&nbsp;MicroHDMI(3路HDMI&nbsp;1.4)<br/>&nbsp;&nbsp;-&nbsp;3D GPU渲染<br/>-&nbsp;摄像头<br/>-&nbsp;显示屏<br/>&nbsp;&nbsp;&nbsp;-&nbsp;LCD连接器(7寸)<br/>-&nbsp;外部器件及接口<br/>&nbsp;&nbsp;-&nbsp;I2C接口<br/>&nbsp;&nbsp;-&nbsp;ADC接口<br/>&nbsp;&nbsp;-&nbsp;PWM 接口<br/>&nbsp;&nbsp;-&nbsp;2个UART 接口<br/>&nbsp;&nbsp;-&nbsp;3个USB2.0(Type&nbsp;C)<br/>&nbsp;&nbsp;-&nbsp;功能按键2个,2个用户自定义按键<br/>&nbsp;&nbsp;-&nbsp;LED指示灯,绿灯,红灯<br/>&nbsp; -&nbsp;支持NFC<br/>&nbsp; |
......@@ -3,5 +3,5 @@
- **[Hi3516开发板介绍](quickstart-ide-standard-board-introduction-hi3516.md)**
- **[Hi3751开发板介绍](quickstart-ide-standard-board-introduction-hi3751.md)**
- **[RK3568开发板介绍](quickstart-ide-standard-board-introduction-rk3568.md)**
\ No newline at end of file
......@@ -28,6 +28,8 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - Hi3516DV300开发板Product选择“Hi3516DV300”。
>
> - Hi3751V350开发板Product选择“Hi3751V350”。
>
> - RK3568开发板Product选择“rk3568”。
![zh-cn_image_0000001271448821](figures/zh-cn_image_0000001271448821.png)
......
......@@ -20,8 +20,6 @@
## 搭建Ubuntu环境
在Windows+Ubuntu混合开发环境场景中,在Ubuntu系统上可以不用安装Visual Studio Code,这种情况下,Ubuntu环境中就没有DevEco Device Tool的可视化操作界面。如果需要使用到Ubuntu下的DevEco Device Tool可视化操作界面,环境搭建请参考[搭建Ubuntu开发环境](https://device.harmonyos.com/cn/docs/documentation/guide/ide-install-ubuntu-0000001072959308)
1. 将Ubuntu Shell环境修改为bash。
1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。
......
......@@ -28,7 +28,7 @@ OpenHarmony标准系统适用于参考内存≥128MiB的设备。通过本文,
## 开发板
本文选取了两款典型开发板:Hi3516DV300、RK3568,并基于上述两款开发板进行开发介绍。开发板的具体外观和规格可参见[本文附录](../quick-start/quickstart-ide-standard-board-introduction-hi3516.md),开发者可根据需要自行购买开发板。
本文选取了三款典型开发板:Hi3516DV300、Hi3751V350和RK3568,并基于上述三款开发板进行开发介绍。开发板的具体外观和规格可参见[本文附录](../quick-start/quickstart-ide-standard-board-introduction-hi3516.md),开发者可根据需要自行购买开发板。
## 开发流程
......
# 编译
1. 在Projects中,点击**Settings**按钮,进入Hi3751V350配置界面。
![zn-cn_image_20220428163840](figures/zn-cn_image_20220428163840.png)
2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。
![zn-cn_image_20220428164441](figures/zn-cn_image_20220428164441.png)
工具链自动安装完成后如下图所示。
![zn-cn_image_20220428165528](figures/zn-cn_image_20220428165528.png)
3. 在“hi3751v350”配置页签中,设置源码的编译类型**build_type**,默认为“debug“类型,请根据需要进行修改。然后点击**Save**按钮进行保存。
![zn-cn_image_20220428165737](figures/zn-cn_image_20220428165737.png)
4. 在“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。
![zn-cn_image_20220428170003](figures/zn-cn_image_20220428170003.png)
等待**TERMINAL**窗口输出“SUCCESS”,编译完成。
![zn-cn_image_20220428183538](figures/zn-cn_image_20220428183538.png)
编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[Hi3751V350开发板烧录](./quickstart-ide-standard-running-hi3751-burning.md)
# 烧录
在Windows下采用网口烧录方式进行Hi3751V350的烧录。
1. 请使用串口线连接电脑USB口和待烧录开发板miniUSB debug接口,同时需要连接开发板和电脑到同一个局域网,保证两侧网口可互通。
2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT &gt; Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。
- 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。
- 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。
![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。
3. 在DevEco Device Tool中,点击QUICK ACCESS &gt; DevEco Home &gt; Device,查看并记录对应的串口号。
![zn-cn_image_20220428191331](figures/zn-cn_image_20220428191331.png)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 如果对应的串口异常,请根据[Hi3516DV300/Hi3751V350/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。
4. 在QUICK ACCESS &gt; DevEco Home &gt; Projects中,点击**Settings**打开工程配置界面。
![zn-cn_image_20220428191437](figures/zn-cn_image_20220428191437.png)
5. 在“hi3751v350”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。
- upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、bootargs、bootargsbak、slaveboot等全部分区。
- upload_port:选择已查询到的串口号,可通过Windows设备管理器查看。
- upload_protocol:选择烧录协议,固定选择“hiburn-net”。
![zn-cn_image_20220428192044](figures/zn-cn_image_20220428192044.png)
6. 根据下表分别检查待烧录分区是否完整,DevEco Device Tool已按照默认的烧录分区文件配置烧录信息,可根据实际情况进行调整。
| 分区 | 烧录文件路径 | 内容 |
| --------- | ------- | ---- |
| fastboot | //out/hispark_phoenix/packages/phone/images/fastboot.bin | uboot镜像 |
| bootargs | //out/hispark_phoenix/packages/phone/images/bootargs.bin | 启动参数 |
| bootargsbak | //out/hispark_phoenix/packages/phone/images/bootargs.bin | 启动参数 |
| slaveboot | //out/hispark_phoenix/packages/phone/images/slaveboot.bin | 从核启动镜像 |
| panelparam | //out/hispark_phoenix/packages/phone/images/panel.img | 屏幕参数 |
| logo | //out/hispark_phoenix/packages/phone/images/logo.img | 开机logo |
| boot | //out/hispark_phoenix/packages/phone/images/uImage | 内核镜像 |
| ramdisk | //out/hispark_phoenix/ramdisk.img | RAMDisk启动镜像 |
| dtbo | //out/hispark_phoenix/packages/phone/images/dtbo.img | 内核DTS |
| atf | //out/hispark_phoenix/packages/phone/images/atf.bin | ARM trusted firmware |
| system | //out/hispark_phoenix/packages/phone/images/system.img | system分区镜像 |
| vendor | //out/hispark_phoenix/packages/phone/images/vendor.img | vendor分区镜像 |
| userdata | //out/hispark_phoenix/packages/phone/images/userdata.img | data分区镜像 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 特殊需要则可以按如下步骤进行手动配置
1. 在“hi3751v350”页签中的“Partitions Options”,选择需要修改的分区,点击右侧的展开按钮,可配置如partition_type(分区类型)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。
![zn-cn_image_20220428192849](figures/zn-cn_image_20220428192849.png)
2. 选中partition_bin,可自定义指定烧写文件。
3. 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。
4. 按照相同的方法调整修改剩余烧录文件信息。
7. 在保证开发板和电脑连接到同一个局域网后,进行Hiburn_net网络配置,配置项如下表。
|配置信息|介绍|
|-------|----|
|upload_net_server_ip|在烧录时作为server端向开发板传输镜像文件,此处为Windows IP。|
|upload_net_client_mask|设置开发板网络的掩码,与当前局域网掩码一致。|
|upload_net_client_gw|设置开发版本网络的网关,与当前局域网掩码一致。|
|upload_net_client_ip|设置开发板的IP,需要避免和当前网络环境的其他主机的IP冲突。|
1. 选择“Network Upload Options”栏配置“upload_net_server_ip”,工具将自动检测Windows主机的所有IP地址,然后需要手动选择IP,选择IP时要选择Windows主机和单板所在局域网的IP地址。
2. 默认情况下“upload_net_client_mask”、“upload_net_client_gw”和“upload_net_client_ip”会在前一步选择IP后自动配置,依然需要根据当前局域网环境检查自动配置的信息,避免掩码错误,网关错误或者IP冲突,否则可能会导致烧录失败。
![zn-cn_image_20220428194317](figures/zn-cn_image_20220428194317.png)
8. 前述配置都调整修改完成后,在“hi3751v350”页签的顶部,点击**Save**进行保存。
9. 点击“PROJECT TASKS”下hi3751v350的**Upload**按钮,启动烧录。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 如果开始烧录时,其他串口工具如MobaXterm连接了开发板的串口,则需要断开与开发板串口的连接,否则烧录会失败。
![zn-cn_image_20220428195249](figures/zn-cn_image_20220428195249.png)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 点击“Upload”按钮后,会完整烧录第5点“upload_partitions”内容的所有分区。如要单独烧录某个分区,
> 则在“PROJECT TASKS”下点击对应的分区的**Upload**按钮,比如hi3751v350_fastboot。
10. 在终端窗口显示“Please power off, then power on the device”信息时,开关电源键对单板(下电并)上电,启动烧录。
![zn-cn_image_20220428201119](figures/zn-cn_image_20220428201119.png)
启动烧录后,界面提示“SUCCESS”信息时,表示烧录成功。
![zn-cn_image_20220428202139](figures/zn-cn_image_20220428202139.png)
11. 烧录成功后,请根据“[运行](./quickstart-ide-standard-running-hi3751-running)”章节进行操作,启动系统。
\ No newline at end of file
# 编写“Hello World”程序
下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。
## 示例目录
示例完整目录如下。
```
applications/sample/hello
│── BUILD.gn
│── include
│ └── helloworld.h
│── src
│ └── helloworld.c
├── bundle.json
build
└── subsystem_config.json
vendor/hisilicon
└── hispark_phoenix
└── config.json
```
## 开发步骤
请在源码目录中通过以下步骤创建“Hello World”应用程序:
1. 创建目录,编写业务代码。
新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OHOS)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。
```
#include <stdio.h>
#include "helloworld.h"
int main(int argc, char **argv)
{
HelloPrint();
return 0;
}
void HelloPrint()
{
printf("\n\n");
printf("\n\t\tHello World!\n");
printf("\n\n");
}
```
再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。
```
#ifndef HELLOWORLD_H
#define HELLOWORLD_H
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
void HelloPrint();
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif // HELLOWORLD_H
```
2. 新建编译组织文件。
1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示:
```
import("//build/ohos.gni") # 导入编译模板
ohos_executable("helloworld") { # 可执行模块
sources = [ # 模块源码
"src/helloworld.c"
]
include_dirs = [ # 模块依赖头文件目录
"include"
]
cflags = []
cflags_c = []
cflags_cc = []
ldflags = []
configs = []
deps =[] # 部件内部依赖
part_name = "hello" # 所属部件名称,必选
install_enable = true # 是否默认安装(缺省默认不安装),可选
}
```
2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。
```
{
"name": "@ohos/hello",
"description": "Hello world example.",
"version": "3.1",
"license": "Apache License 2.0",
"publishAs": "code-segment",
"segment": {
"destPath": "applications/sample/hello"
},
"dirs": {},
"scripts": {},
"component": {
"name": "hello",
"subsystem": "sample",
"syscap": [],
"features": [],
"adapted_system_type": [ "mini", "small", "standard" ],
"rom": "10KB",
"ram": "10KB",
"deps": {
"components": [],
"third_party": []
},
"build": {
"sub_component": [
"//applications/sample/hello:helloworld"
],
"inner_kits": [],
"test": []
}
}
}
```
bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub_component,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test中说明,inner_kits与test没有也可以不添加。
3. 修改子系统配置文件。
在build/subsystem_config.json中添加新建的子系统的配置。
```
"sample": {
"path": "applications/sample/hello",
"name": "sample"
},
```
4. 修改产品配置文件。
在vendor\hisilicon\hispark_phoenix\config.json中添加对应的hello部件,直接添加到原有部件后即可。
```
"usb:usb_manager_native":{},
"applications:prebuilt_hap":{},
"sample:hello":{},
"wpa_supplicant-2.9:wpa_supplicant-2.9":{},
```
# 运行
## 启动系统
烧录完成后通过以下步骤启动系统:
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 初次烧写标准系统,需要完成以下配置,后续烧写或者启动,可以跳过以下操作。
1. 在DevEco Device Tool中,点击Monitor,打开串口工具。
![zn-cn_image_20220429104918](figures/zn-cn_image_20220429104918.png)
2. 重启开发板,进入串口检查是否有日志打印,是否能够输入。
```
# 可输入如下内容检查输入是否正常
ls
cat /proc/version
```
![zn-cn_image_20220429105447](figures/zn-cn_image_20220429105447.png)
## 修改启动参数
默认情况,Hi3751V350不用修改启动参数,特殊需要可参考如下步骤修改。
1. 使用其他串口工具连接串口,在开发板上电时,按“ctrl + c”进入uboot。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 在使用其他串口工具时,需要点击“TERMINAL”右侧删除按钮关闭Monitor串口。
![zn-cn_image_20220429111229](figures/zn-cn_image_20220429111229.png)
2. 通过以下命令按需调整修改启动参数、保存配置并重启,然后进入系统。
```
// 设置参数
set bootargs 'hardware=Hi3751V350 selinux=1 firmware_class.path=/vendor/firmware/ console=ttyAMA0,115200 loglevel=7 no_console_suspend blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),1M(bootargsbak),2M(slaveboot),40M(recovery),8M(panelparam),2M(deviceinfo),40M(logo),30M(boot),10M(ramdisk),1M(dtbo),2M(atf),8M(trustedcore),10M(securestore),1M(versioninfo),1M(misc),10M(bootmusic),10M(bootmusicsec),80M(tconparam),4M(demura),3307M(system)ro,300M(vendor)ro,50M(atv),60M(log),100M(cache),-(userdata) skip_initramfs initrd=0xc000000,0xa00000 init=/init root=/dev/ram0 mtdparts=hi_sfc:-(hi_sfc) pci=nomsi mem=1024M mmz=ddr,0,0,8M vmalloc=400M irqflood=20000 cgroup.memory=nokmem swapaccount=0'
saveenv //保存
reset //重启单板
```
## 运行“Hello World”
通过串口,在任意目录下输入命令helloworld后回车,界面打印“Hello World!”,程序运行成功。
![zh-cn_image_0000001226602398](figures/zh-cn_image_0000001226602398.png)
## 下一步
恭喜!您已经完成了OpenHarmony标准系统的快速入门,接下来可[开发一个小示例](../guide/device-clock-guide.md),进一步熟悉OpenHarmony的开发。
# Hi3751开发板介绍
## 开发板简介
HiSpark-Phoenix是基于海思Hi3751V350智能电视芯片的一块高性能开发板,内置高性能多核 ARM A53 CPU,多核MALI T450 GPU,支持NTSC/PAL/SECAM制式解调,支持DTMB/DVB-C/ATSC/ISDB-T等全球数字Demod,可以扩展DVB-T/T2/S/S2,支持USB播放,支持主流的视频格式包括MPGE2、H.264、H.265、RMVB、AVS+等,支持主流音频解码及音效处理,以及海思自研的SWS音效处理,支持LVDS和miniLVDS接口,支持主流的Tconless屏。
**图1** HiSpark_Phoenix单板正面外观图
![zn-cn_image_Hi3751V350](figures/zn-cn_image_Hi3751V350.png)
## 开发板规格
**表1** HiSpark_Phoenix开发板规格清单
| 规格类型 | 规格清单 |
| -------- | -------- |
| **处理器及内部存储** | -&nbsp;Hi3751V350芯片<br/>-&nbsp;DDR3&nbsp;1GB<br/>-&nbsp;eMMC4.5,8GB容量 |
| **外部器件** | -&nbsp;以太网口<br/>-&nbsp;音频视频<br/>&nbsp;&nbsp;-&nbsp;支持2路立体声输入<br/>&nbsp;&nbsp;-&nbsp;支持2路立体声输出<br/>&nbsp;&nbsp;-&nbsp;MicroHDMI(3路HDMI&nbsp;1.4)<br/>&nbsp;&nbsp;-&nbsp;3D GPU渲染<br/>-&nbsp;摄像头<br/>-&nbsp;显示屏<br/>&nbsp;&nbsp;&nbsp;-&nbsp;LCD连接器(7寸)<br/>-&nbsp;外部器件及接口<br/>&nbsp;&nbsp;-&nbsp;I2C接口<br/>&nbsp;&nbsp;-&nbsp;ADC接口<br/>&nbsp;&nbsp;-&nbsp;PWM 接口<br/>&nbsp;&nbsp;-&nbsp;2个UART 接口<br/>&nbsp;&nbsp;-&nbsp;3个USB2.0(Type&nbsp;C)<br/>&nbsp;&nbsp;-&nbsp;功能按键2个,2个用户自定义按键<br/>&nbsp;&nbsp;-&nbsp;LED指示灯,绿灯,红灯<br/>&nbsp; -&nbsp;支持NFC<br/>&nbsp; |
......@@ -3,5 +3,5 @@
- **[Hi3516开发板介绍](quickstart-standard-board-introduction-hi3516.md)**
- **[Hi3751开发板介绍](quickstart-standard-board-introduction-hi3751.md)**
- **[RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)**
\ No newline at end of file
......@@ -10,6 +10,11 @@
- [编译](quickstart-ide-standard-running-hi3516-build.md)
- [烧录](quickstart-ide-standard-running-hi3516-burning.md)
- [运行](quickstart-ide-standard-running-hi3516-running.md)
- Hi3751开发板
- [编写“Hello World”程序](quickstart-ide-standard-running-hi3751-create.md)
- [编译](quickstart-ide-standard-running-hi3751-build.md)
- [烧录](quickstart-ide-standard-running-hi3751-burning.md)
- [运行](quickstart-ide-standard-running-hi3751-running.md)
- RK3568开发板
- [编写“Hello World”程序](quickstart-ide-standard-running-rk3568-create.md)
- [编译](quickstart-ide-standard-running-rk3568-build.md)
......@@ -18,5 +23,6 @@
- 附录
- 开发板介绍
- [Hi3516开发板介绍](quickstart-ide-standard-board-introduction-hi3516.md)
- [Hi3751开发板介绍](quickstart-ide-standard-board-introduction-hi3751.md)
- [RK3568开发板介绍](quickstart-ide-standard-board-introduction-rk3568.md)
- [轻量和小型系统快速入门(安装包方式)](quickstart-lite-package-directory.md)
......@@ -28,7 +28,7 @@ OpenHarmony标准系统适用于参考内存≥128MiB的设备。通过本文,
## 开发板
本文选取了两款典型开发板:Hi3516DV300、RK3516,并基于上述两款开发板进行开发介绍。开发板的具体外观和规格可参见[本文附录](../quick-start/quickstart-standard-board-introduction-hi3516.md),开发者可根据需要自行购买开发板。
本文选取了三款典型开发板:Hi3516DV300、Hi3751V350和RK3516,并基于上述三款开发板进行开发介绍。开发板的具体外观和规格可参见[本文附录](../quick-start/quickstart-standard-board-introduction-hi3516.md),开发者可根据需要自行购买开发板。
## 开发流程
......
......@@ -7,6 +7,11 @@
- [编译](quickstart-standard-running-hi3516-build.md)
- [烧录](quickstart-standard-running-hi3516-burning.md)
- [运行](quickstart-standard-running-hi3516-running.md)
- Hi3751开发板
- [编写“Hello World”程序](quickstart-standard-running-hi3751-create.md)
- [编译](quickstart-standard-running-hi3751-build.md)
- [烧录](quickstart-standard-running-hi3751-burning.md)
- [运行](quickstart-standard-running-hi3751-running.md)
- RK3568开发板
- [编写“Hello World”程序](quickstart-standard-running-rk3568-create.md)
- [编译](quickstart-standard-running-rk3568-build.md)
......@@ -19,6 +24,7 @@
- 附录
- 开发板介绍
- [Hi3516开发板介绍](quickstart-standard-board-introduction-hi3516.md)
- [Hi3751开发板介绍](quickstart-standard-board-introduction-rk3568.md)
- [RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)
- [标准系统快速入门(IDE方式)](quickstart-standard-ide-directory.md)
- [参考信息](quickstart-standard-reference.md)
# 编译
OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-standard-reference.md)
在Ubuntu环境下进入源码根目录,执行如下命令进行编译:
1. 设置编译路径。
```
hb set
```
2. 选择当前路径。
```
.
```
3. 在built-in下选择“hispark_phoenix”并回车。
4. 执行编译。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 单独编译一个部件(例如hello),可使用“hb build -T _目标名称_”进行编译。
>
> - 增量编译整个产品,可使用“hb build”进行编译。
>
> - 完整编译整个产品,可使用“hb build -f”进行编译。
>
> 此处以完整编译整个产品为例进行说明。
```
hb build -f
```
**图1** Hi3751V350编译设置图例
![zn-cn_image_20220429102934](figures/zn-cn_image_20220429102934.png)
5. 编译结束后,出现“build success”字样,则说明构建成功。
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
> 编译结果文件及编译日志文件获取路径:out/hispark_phoenix。
# 烧录
在Windows下采用USB烧录方式进行Hi3751V350的烧录,具体步骤如下:
### 导入源码
在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-standard-env-setup.md)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。
1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。
![zn-cn_image_20220428185417](figures/zn-cn_image_20220428185417.png)
2. 选择要导入的源码目录(需要访问Ubuntu下的源码目录),点击**Import**打开。
![zn-cn_image_20220428185546](figures/zn-cn_image_20220428185546.png)
3. 如果您打开的目录不是DevEco Device Tool工程,则会出现如下提示框,点击**Import**
![zh-cn_image_0000001135394334](figures/zh-cn_image_0000001135394334.png)
4. 在Select Project type界面,选择**Import from OpenHarmony Source**
![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png)
5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。此处Product选择“hispark_phoenix”。
![zn-cn_image_20220428190729](figures/zn-cn_image_20220428190729.png)
6. 点击**Open**打开工程或源码。
### 烧录
完成源码导入后,通过以下步骤进行烧录:
1. 请使用串口线连接电脑USB口和待烧录开发板miniUSB debug接口,同时需要连接开发板和电脑到同一个局域网,保证两侧网口可互通。
2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT &gt; Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。
- 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。
- 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。
![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。
3. 在DevEco Device Tool中,点击QUICK ACCESS &gt; DevEco Home &gt; Device,查看并记录对应的串口号。
![zn-cn_image_20220428191331](figures/zn-cn_image_20220428191331.png)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 如果对应的串口异常,请根据[Hi3516DV300/Hi3751V350/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。
4. 在QUICK ACCESS &gt; DevEco Home &gt; Projects中,点击**Settings**打开工程配置界面。
![zn-cn_image_20220428191437](figures/zn-cn_image_20220428191437.png)
5. 在“hi3751v350”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。
- upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、bootargs、bootargsbak、slaveboot等全部分区。
- upload_port:选择已查询到的串口号,可通过Windows设备管理器查看。
- upload_protocol:选择烧录协议,固定选择“hiburn-net”。
![zn-cn_image_20220428192044](figures/zn-cn_image_20220428192044.png)
6. 根据下表分别检查待烧录分区是否完整,DevEco Device Tool已按照默认的烧录分区文件配置烧录信息,可根据实际情况进行调整。
| 分区 | 烧录文件路径 | 内容 |
| --------- | ------- | ---- |
| fastboot | //out/hispark_phoenix/packages/phone/images/fastboot.bin | uboot镜像 |
| bootargs | //out/hispark_phoenix/packages/phone/images/bootargs.bin | 启动参数二进制 |
| bootargsbak | //out/hispark_phoenix/packages/phone/images/bootargs.bin | 启动参数二进制 |
| slaveboot | //out/hispark_phoenix/packages/phone/images/slaveboot.bin | 从核启动镜像 |
| panelparam | //out/hispark_phoenix/packages/phone/images/panel.img | 屏幕参数 |
| logo | //out/hispark_phoenix/packages/phone/images/logo.img | 开机logo |
| boot | //out/hispark_phoenix/packages/phone/images/uImage | 内核镜像 |
| ramdisk | //out/hispark_phoenix/ramdisk.img | RAMDisk启动镜像 |
| dtbo | //out/hispark_phoenix/packages/phone/images/dtbo.img | 内核DTS |
| atf | //out/hispark_phoenix/packages/phone/images/atf.bin | ARM trusted firmware |
| system | //out/hispark_phoenix/packages/phone/images/system.img | system分区镜像 |
| vendor | //out/hispark_phoenix/packages/phone/images/vendor.img | vendor分区镜像 |
| userdata | //out/hispark_phoenix/packages/phone/images/userdata.img | data分区镜像 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 特殊需要则可以按如下步骤进行手动配置
1. 在“hi3751v350”页签中的“Partitions Options”,选择需要修改的分区,点击右侧的展开按钮,可配置如partition_type(分区类型)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。
![zn-cn_image_20220428192849](figures/zn-cn_image_20220428192849.png)
2. 选中partition_bin,可自定义指定烧写文件。
3. 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。
4. 按照相同的方法调整修改剩余烧录文件信息。
7. 在保证开发板和电脑连接到同一个局域网后,进行Hiburn_net网络配置,配置项如下表。
|配置信息|介绍|
|-------|----|
|upload_net_server_ip|在烧录时作为server端向开发板传输镜像文件,此处为Windows IP。|
|upload_net_client_mask|设置开发板网络的掩码,与当前局域网掩码一致。|
|upload_net_client_gw|设置开发版本网络的网关,与当前局域网掩码一致。|
|upload_net_client_ip|设置开发板的IP,需要避免和当前网络环境的其他主机的IP冲突。|
1. 选择“Network Upload Options”栏配置“upload_net_server_ip”,工具将自动检测Windows主机的所有IP地址,然后需要手动选择IP,选择IP时要选择Windows主机和单板所在局域网的IP地址。
2. 默认情况下“upload_net_client_mask”、“upload_net_client_gw”和“upload_net_client_ip”会在前一步选择IP后自动配置,依然需要根据当前局域网环境检查自动配置的信息,避免掩码错误,网关错误或者IP冲突,否则可能会导致烧录失败。
![zn-cn_image_20220428194317](figures/zn-cn_image_20220428194317.png)
8. 前述配置都调整修改完成后,在“hi3751v350”页签的顶部,点击**Save**进行保存。
9. 点击“PROJECT TASKS”下hi3751v350的**Upload**按钮,启动烧录。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 如果开始烧录时,其他串口工具如MobaXterm连接了开发板的串口,则需要断开与开发板串口的连接,否则烧录会失败。
![zn-cn_image_20220428195249](figures/zn-cn_image_20220428195249.png)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 点击“Upload”按钮后,会完整烧录第5点“upload_partitions”内容的所有分区。如要单独烧录某个分区,
> 则在“PROJECT TASKS”下点击对应的分区的**Upload**按钮,比如hi3751v350_fastboot。
10. 在终端窗口显示Please power off, then power on the device信息时,开关电源键对单板(下电并)上电,启动烧录。
![zn-cn_image_20220428201119](figures/zn-cn_image_20220428201119.png)
启动烧录后,界面提示“SUCCESS”信息时,表示烧录成功。
![zn-cn_image_20220428202139](figures/zn-cn_image_20220428202139.png)
11. 烧录成功后,请根据“[运行](./quickstart-ide-standard-running-hi3751-running)”章节进行操作,启动系统。
\ No newline at end of file
# 编写“Hello World”程序
下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。
## 示例目录
示例完整目录如下。
```
applications/sample/hello
│ │── BUILD.gn
│ │── include
│ │ └── helloworld.h
│ │── src
│ │ └── helloworld.c
│ └── bundle.json
build
└── subsystem_config.json
vendor/hisilicon
└── hispark_phoenix
└── config.json
```
## 开发步骤
请在源码目录中通过以下步骤创建“Hello World”应用程序:
1. 创建目录,编写业务代码。
新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OH)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。
```
#include <stdio.h>
#include "helloworld.h"
int main(int argc, char **argv)
{
HelloPrint();
return 0;
}
void HelloPrint()
{
printf("\n\n");
printf("\n\t\tHello World!\n");
printf("\n\n");
}
```
再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。
```
#ifndef HELLOWORLD_H
#define HELLOWORLD_H
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
void HelloPrint();
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif // HELLOWORLD_H
```
2. 新建编译组织文件。
1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示:
```
import("//build/ohos.gni") # 导入编译模板
ohos_executable("helloworld") { # 可执行模块
sources = [ # 模块源码
"src/helloworld.c"
]
include_dirs = [ # 模块依赖头文件目录
"include"
]
cflags = []
cflags_c = []
cflags_cc = []
ldflags = []
configs = []
deps =[] # 部件内部依赖
part_name = "hello" # 所属部件名称,必选
install_enable = true # 是否默认安装(缺省默认不安装),可选
}
```
2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。
```
{
"name": "@ohos/hello",
"description": "Hello world example.",
"version": "3.1",
"license": "Apache License 2.0",
"publishAs": "code-segment",
"segment": {
"destPath": "applications/sample/hello"
},
"dirs": {},
"scripts": {},
"component": {
"name": "hello",
"subsystem": "sample",
"syscap": [],
"features": [],
"adapted_system_type": [ "mini", "small", "standard" ],
"rom": "10KB",
"ram": "10KB",
"deps": {
"components": [],
"third_party": []
},
"build": {
"sub_component": [
"//applications/sample/hello:helloworld"
],
"inner_kits": [],
"test": []
}
}
}
```
bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub_component,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test中说明,inner_kits与test没有也可以不添加。
3. 修改子系统配置文件。
在build/subsystem_config.json中添加新建的子系统的配置。
```
"sample": {
"path": "applications/sample/hello",
"name": "sample"
},
```
4. 修改产品配置文件。
在vendor\hisilicon\hispark_phoenix\config.json中添加对应的hello部件,直接添加到原有部件后即可。
```
"usb:usb_manager_native":{},
"applications:prebuilt_hap":{},
"sample:hello":{},
"wpa_supplicant-2.9:wpa_supplicant-2.9":{},
```
# 运行
## 启动系统
烧录完成后在Windows下通过以下步骤启动系统:
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 初次烧写标准系统,需要完成以下配置,后续烧写或者启动,可以跳过以下操作。
1. 在DevEco Device Tool中,点击Monitor,打开串口工具。
![zn-cn_image_20220429104918](figures/zn-cn_image_20220429104918.png)
2. 重启开发板,进入串口检查是否有日志打印,是否能够输入。
```
# 可输入如下内容检查输入是否正常
ls
cat /proc/version
```
![zn-cn_image_20220429105447](figures/zn-cn_image_20220429105447.png)
## 修改启动参数
默认情况,Hi3751V350不用修改启动参数,特殊需要可参考如下步骤修改。
1. 使用其他串口工具连接串口,在开发板上电时,按“ctrl + c”进入uboot。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 在使用其他串口工具时,需要点击“TERMINAL”右侧删除按钮关闭Monitor串口。
![zn-cn_image_20220429111229](figures/zn-cn_image_20220429111229.png)
2. 通过以下命令按需调整修改启动参数、保存配置并重启,然后进入系统。
```
// 设置参数
set bootargs 'hardware=Hi3751V350 selinux=1 firmware_class.path=/vendor/firmware/ console=ttyAMA0,115200 loglevel=7 no_console_suspend blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),1M(bootargsbak),2M(slaveboot),40M(recovery),8M(panelparam),2M(deviceinfo),40M(logo),30M(boot),10M(ramdisk),1M(dtbo),2M(atf),8M(trustedcore),10M(securestore),1M(versioninfo),1M(misc),10M(bootmusic),10M(bootmusicsec),80M(tconparam),4M(demura),3307M(system)ro,300M(vendor)ro,50M(atv),60M(log),100M(cache),-(userdata) skip_initramfs initrd=0xc000000,0xa00000 init=/init root=/dev/ram0 mtdparts=hi_sfc:-(hi_sfc) pci=nomsi mem=1024M mmz=ddr,0,0,8M vmalloc=400M irqflood=20000 cgroup.memory=nokmem swapaccount=0'
saveenv //保存
reset //重启单板
```
## 运行“Hello World”
通过前述步骤连接的串口,在任意目录下输入命令helloworld后回车,界面打印“Hello World!”,程序运行成功。
![zh-cn_image_0000001226602398](figures/zh-cn_image_0000001226602398.png)
## 下一步
恭喜!您已经完成了OpenHarmony标准系统的快速入门,接下来可[开发一个小示例](../guide/device-clock-guide.md),进一步熟悉OpenHarmony的开发。
......@@ -63,6 +63,11 @@
- [编译](quick-start/quickstart-ide-standard-running-hi3516-build.md)
- [烧录](quick-start/quickstart-ide-standard-running-hi3516-burning.md)
- [运行](quick-start/quickstart-ide-standard-running-hi3516-running.md)
- Hi3751开发板
- [编写“Hello World”程序](quickstart-ide-standard-running-hi3751-create.md)
- [编译](quickstart-ide-standard-running-hi3751-build.md)
- [烧录](quickstart-ide-standard-running-hi3751-burning.md)
- [运行](quickstart-ide-standard-running-hi3751-running.md)
- RK3568开发板
- [编写“Hello World”程序](quick-start/quickstart-ide-standard-running-rk3568-create.md)
- [编译](quick-start/quickstart-ide-standard-running-rk3568-build.md)
......@@ -70,6 +75,7 @@
- [运行](quick-start/quickstart-ide-standard-running-rk3568-running.md)
- 附录
- [Hi3516开发板介绍](quick-start/quickstart-ide-standard-board-introduction-hi3516.md)
- [Hi3751开发板介绍](quickstart-ide-standard-board-introduction-hi3751.md)
- [RK3568开发板介绍](quick-start/quickstart-ide-standard-board-introduction-rk3568.md)
- 标准系统快速入门(安装包方式)
- [标准系统入门概述](quick-start/quickstart-standard-overview.md)
......@@ -80,6 +86,11 @@
- [编译](quick-start/quickstart-standard-running-hi3516-build.md)
- [烧录](quick-start/quickstart-standard-running-hi3516-burning.md)
- [运行](quick-start/quickstart-standard-running-hi3516-running.md)
- Hi3751开发板
- [编写“Hello World”程序](quickstart-standard-running-hi3751-create.md)
- [编译](quickstart-standard-running-hi3751-build.md)
- [烧录](quickstart-standard-running-hi3751-burning.md)
- [运行](quickstart-standard-running-hi3751-running.md)
- RK3568开发板
- [编写“Hello World”程序](quick-start/quickstart-standard-running-rk3568-create.md)
- [编译](quick-start/quickstart-standard-running-rk3568-build.md)
......@@ -92,6 +103,7 @@
- 附录
- 开发板介绍
- [Hi3516开发板介绍](quick-start/quickstart-standard-board-introduction-hi3516.md)
- [Hi3751开发板介绍](quickstart-standard-board-introduction-hi3751.md)
- [RK3568开发板介绍](quick-start/quickstart-standard-board-introduction-rk3568.md)
- [参考信息](quickstart-standard-reference.md)
- [获取源码](get-code/sourcecode-acquire.md)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册