提交 97c82abd 编写于 作者: Y yuejianjun

Add documents for Hi3751V350

Signed-off-by: Nyuejianjun <yuejianjun1@hisilicon.com>
Change-Id: I5ac625a7da829039649ea1f24f3bc4abb6ff484d
上级 b4e18ea1
......@@ -66,10 +66,16 @@
- [编译](quickstart-ide-standard-running-rk3568-build.md)
- [烧录](quickstart-ide-standard-running-rk3568-burning.md)
- [运行](quickstart-ide-standard-running-rk3568-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)
- 附录
- 开发板介绍
- [Hi3516开发板介绍](quickstart-ide-standard-board-introduction-hi3516.md)
- [RK3568开发板介绍](quickstart-ide-standard-board-introduction-rk3568.md)
- [Hi3751开发板介绍](quickstart-ide-standard-board-introduction-hi3751.md)
- 标准系统快速入门(安装包方式)
- [标准系统入门概述](quickstart-standard-overview.md)
- [搭建标准系统环境](quickstart-standard-env-setup.md)
......@@ -84,6 +90,11 @@
- [编译](quickstart-standard-running-rk3568-build.md)
- [烧录](quickstart-standard-running-rk3568-burning.md)
- [运行](quickstart-standard-running-rk3568-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)
- 常见问题
- [hb安装异常](quickstart-standard-faq-hb.md)
- [编译异常](quickstart-standard-faq-compose.md)
......@@ -92,4 +103,5 @@
- 开发板介绍
- [Hi3516开发板介绍](quickstart-standard-board-introduction-hi3516.md)
- [RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)
- [Hi3751开发板介绍](quickstart-standard-board-introduction-hi3751.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音效处理,支持CVBS/YPbPr/VGA/HDMI 1.4/USB接口,内置512MB DDR,支持LVDS和miniLVDS接口,支持主流的Tconless屏。
**图1** Hi3751单板正面外观图
![zn-cn_image_Hi3751V350](figures/zn-cn_image_Hi3751V350.png)
## 开发板规格
**表1** Hi3751V350开发板规格清单
| 规格类型 | 规格清单 |
| -------- | -------- |
| **处理器及内部存储** | -&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; |
# 编译
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)
5. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。
![zn-cn_image_20220428183538](figures/zn-cn_image_20220428183538.png)
编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[Hi3751V350开发板烧录](./quickstart-ide-standard-running-hi3751-burning.md)
# 烧录
在Windows下采用网口烧录方式进行Hi3751V350的烧录。
1. 请使用串口连接好电脑和待烧录开发板,同时需要连接开发板和电脑到同一个局域网中
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/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:选择已查询到的串口号。
- upload_protocol:选择烧录协议,固定选择“hiburn-net”。
![zn-cn_image_20220428192044](figures/zn-cn_image_20220428192044.png)
![zn-cn_image_20220428192120](figures/zn-cn_image_20220428192120.png)
![zn-cn_image_20220428192217](figures/zn-cn_image_20220428192217.png)
6. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:atf.bin bootargs.bin boot.img dtbo.img fastboot.bin Hi3751V350-slaveboot-emmc.xml logo.img panel.img slaveboot.bin system.img uImage updater.img userdata.img vendor.img zImage-dtb和ramdisk.img
1. 在“hi3751v350”页签中的“Partitions Options”,选择需要修改的分区,点击右侧的展开按钮,可配置如partition_type(分区类型)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。
![zn-cn_image_20220428192849](figures/zn-cn_image_20220428192849.png)
2. 选中partition_bin,可自定义指定烧写文件,默认已配置。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。
3. 按照相同的方法调整修改剩余烧录文件信息。
7. 在保证开发板和电脑连接到同一个局域网后,进行Hiburn_net网络配置
1. 选择“Network Upload Options”配置upload_net_server_ip,工具将自动检测host的ip地址,然后需要手动选择ip
2. 默认情况下upload_net_client_mask、upload_net_client_gw和upload_net_client_ip会在前一步选择ip后自动配置,不过需要依据当前局域网配置信息进行调整。
![zn-cn_image_20220428194317](figures/zn-cn_image_20220428194317.png)
8. 所有的配置都调整修改完成后,在工程配置页签的顶部,点击**Save**进行保存。
9. 断开电脑与单板的COM交互窗口,点击“PROJECT TASKS”下hi3751v350的**Upload**按钮,启动烧录。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 如果您是第一次在工作台烧录Hi3516DV300/Hi3518EV300/Hi3751V350开发板,可能烧录失败,提示“not find the Devices”,然后根据[Hi3516DV300/Hi3518EV300开发板USB驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)进行处理后再重新烧录。
![zn-cn_image_20220428195249](figures/zn-cn_image_20220428195249.png)
10. 在终端窗口显示如下提示信息时,单板(下电并)上电,启动烧录。
![zn-cn_image_20220428201119](figures/zn-cn_image_20220428201119.png)
启动烧录后,界面提示如下信息时,表示烧录成功。
![zn-cn_image_20220428202139](figures/zn-cn_image_20220428202139.png)
11. 烧录成功后,请根据镜像运行章节进行操作,启动系统。
# 编写“Hello World”程序
下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。
## 示例目录
示例完整目录如下。
```
applications/sample/hello
│── BUILD.gn
│── include
│ └── helloworld.h
│── src
│ └── helloworld.c
├── bundle.json
build
└── subsystem_config.json
productdefine/common
└── products
└── Hi3751V350.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. 修改产品配置文件。
在productdefine\common\products\Hi3751V350.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. 重启开发板,进入串口进行操作。
![zn-cn_image_20220429105447](figures/zn-cn_image_20220429105447.png)
除Deveco device tools工具,还可以使用一众串口工具连接串口,在开发版上电时,按“ctrl + c”进入uboot
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 在使用其他串口工具时,需要断开与Local PC的连接。
![zn-cn_image_20220429111229](figures/zn-cn_image_20220429111229.png)
通过以下命令按需调整修改启动参数,然后保存重启,默认情况下不需要修改启动参数。
```
setenv bootargs 'hardware=Hi3751V350 selinux=1 androidboot.selinux=permissive 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 androidboot.mem.size=1024M mmz=ddr,0,0,8M vmalloc=400M irqflood=20000 cgroup.memory=nokmem swapaccount=0';
save env
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音效处理,支持CVBS/YPbPr/VGA/HDMI 1.4/USB接口,内置512MB DDR,支持LVDS和miniLVDS接口,支持主流的Tconless屏。
**图1** Hi3751单板正面外观图
![zn-cn_image_Hi3751V350](figures/zn-cn_image_Hi3751V350.png)
## 开发板规格
**表1** Hi3751V350开发板规格清单
| 规格类型 | 规格清单 |
| -------- | -------- |
| **处理器及内部存储** | -&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; |
......@@ -15,8 +15,14 @@
- [编译](quickstart-ide-standard-running-rk3568-build.md)
- [烧录](quickstart-ide-standard-running-rk3568-burning.md)
- [运行](quickstart-ide-standard-running-rk3568-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)
- 附录
- 开发板介绍
- [Hi3516开发板介绍](quickstart-ide-standard-board-introduction-hi3516.md)
- [RK3568开发板介绍](quickstart-ide-standard-board-introduction-rk3568.md)
- [RK3751开发板介绍](quickstart-ide-standard-board-introduction-hi3751.md)
- [轻量和小型系统快速入门(安装包方式)](quickstart-lite-package-directory.md)
......@@ -12,6 +12,11 @@
- [编译](quickstart-standard-running-rk3568-build.md)
- [烧录](quickstart-standard-running-rk3568-burning.md)
- [运行](quickstart-standard-running-rk3568-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)
- 常见问题
- [hb安装异常](quickstart-standard-faq-hb.md)
- [编译异常](quickstart-standard-faq-compose.md)
......@@ -20,5 +25,6 @@
- 开发板介绍
- [Hi3516开发板介绍](quickstart-standard-board-introduction-hi3516.md)
- [RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)
- [Hi3751开发板介绍](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下选择Hi3751V350并回车。
4. 执行编译。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 单独编译一个部件(例如hello),可使用“hb build -T _目标名称_”进行编译。
>
> - 增量编译整个产品,可使用“hb build”进行编译。
>
> - 完整编译整个产品,可使用“hb build -f”进行编译。
>
> 此处以完整编译整个产品为例进行说明。
```
hb build -f
```
**图1** Hi3516编译设置图例
![zn-cn_image_20220429102934](figures/zn-cn_image_20220429102934.png)
5. 编译结束后,出现“build success”字样,则证明构建成功。
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
> 编译结果文件及编译日志文件获取路径:out/hi3516dv300。
# 烧录
在Windows下采用USB烧录方式进行Hi3516DV300的烧录,具体步骤如下:
### 导入源码
在编译完成后,[保证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**打开。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。
![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源码版本。此处选择Hi3516DV300。
![zn-cn_image_20220428190729](figures/zn-cn_image_20220428190729.png)
6. 点击**Open**打开工程或源码。
### 烧录
完成源码导入后,通过以下步骤进行烧录:
1. 请使用串口连接好电脑和待烧录开发板,同时需要连接开发板和电脑到同一个局域网中
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/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:选择已查询到的串口号。
- upload_protocol:选择烧录协议,固定选择“hiburn-net”。
![zn-cn_image_20220428192044](figures/zn-cn_image_20220428192044.png)
![zn-cn_image_20220428192120](figures/zn-cn_image_20220428192120.png)
![zn-cn_image_20220428192217](figures/zn-cn_image_20220428192217.png)
6. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:atf.bin bootargs.bin boot.img dtbo.img fastboot.bin Hi3751V350-slaveboot-emmc.xml logo.img panel.img slaveboot.bin system.img uImage updater.img userdata.img vendor.img zImage-dtb和ramdisk.img
1. 在“hi3751v350”页签中的“Partitions Options”,选择需要修改的分区,点击右侧的展开按钮,可配置如partition_type(分区类型)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。
![zn-cn_image_20220428192849](figures/zn-cn_image_20220428192849.png)
2. 选中partition_bin,可自定义指定烧写文件,默认已配置。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。
3. 按照相同的方法调整修改剩余烧录文件信息。
7. 在保证开发板和电脑连接到同一个局域网后,进行Hiburn_net网络配置
1. 选择“Network Upload Options”配置upload_net_server_ip,工具将自动检测host的ip地址,然后需要手动选择ip
2. 默认情况下upload_net_client_mask、upload_net_client_gw和upload_net_client_ip会在前一步选择ip后自动配置,不过需要依据当前局域网配置信息进行调整。
![zn-cn_image_20220428194317](figures/zn-cn_image_20220428194317.png)
8. 所有的配置都调整修改完成后,在工程配置页签的顶部,点击**Save**进行保存。
9. 断开电脑与单板的COM交互窗口,点击“PROJECT TASKS”下hi3751v350的**Upload**按钮,启动烧录。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 如果您是第一次在工作台烧录Hi3516DV300/Hi3518EV300/Hi3751V350开发板,可能烧录失败,提示“not find the Devices”,然后根据[Hi3516DV300/Hi3518EV300开发板USB驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)进行处理后再重新烧录。
![zn-cn_image_20220428195249](figures/zn-cn_image_20220428195249.png)
10. 在终端窗口显示如下提示信息时,单板(下电并)上电,启动烧录。
![zn-cn_image_20220428201119](figures/zn-cn_image_20220428201119.png)
启动烧录后,界面提示如下信息时,表示烧录成功。
![zn-cn_image_20220428202139](figures/zn-cn_image_20220428202139.png)
11. 烧录成功后,请根据镜像运行章节进行操作,启动系统。
# 编写“Hello World”程序
下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。
## 示例目录
示例完整目录如下。
```
applications/sample/hello
│ │── BUILD.gn
│ │── include
│ │ └── helloworld.h
│ │── src
│ │ └── helloworld.c
│ └── bundle.json
build
└── subsystem_config.json
productdefine/common
└── products
└── Hi3751V350.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. 修改产品配置文件。
在productdefine/common/products/Hi3751V350.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. 重启开发板,进入串口进行操作。
![zn-cn_image_20220429105447](figures/zn-cn_image_20220429105447.png)
除Deveco device tools工具,还可以使用一众串口工具连接串口,在开发版上电时,按“ctrl + c”进入uboot
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 在使用其他串口工具时,需要断开与Local PC的连接。
![zn-cn_image_20220429111229](figures/zn-cn_image_20220429111229.png)
通过以下命令按需调整修改启动参数,然后保存重启,默认情况下不需要修改启动参数。
```
setenv bootargs 'hardware=Hi3751V350 selinux=1 androidboot.selinux=permissive 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 androidboot.mem.size=1024M mmz=ddr,0,0,8M vmalloc=400M irqflood=20000 cgroup.memory=nokmem swapaccount=0';
save env
reset
```
## 运行“Hello World”
设备启动后打开串口工具,在任意目录下输入命令helloworld后回车,界面打印“Hello World!”,程序运行成功。
![zh-cn_image_0000001226602398](figures/zh-cn_image_0000001226602398.png)
## 下一步
恭喜!您已经完成了OpenHarmony标准系统的快速入门,接下来可[开发一个小示例](../guide/device-clock-guide.md),进一步熟悉OpenHarmony的开发。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册