quickstart-lite-steps-hi3516-running.md 9.6 KB
Newer Older
D
duangavin123 已提交
1
# 运行Hello OHOS(编译、烧录)<a name="ZH-CN_TOPIC_0000001174270695"></a>
N
NEEN 已提交
2

M
mamingshuai 已提交
3
-   [新建应用程序](#section204672145202)
N
NEEN 已提交
4
-   [编译](#section1077671315253)
M
mamingshuai 已提交
5
-   [烧录](#section1347011412201)
D
duangavin123 已提交
6 7
    -   [使用网口烧录](#section1935410617363)

M
mamingshuai 已提交
8
-   [镜像运行](#section24721014162010)
N
NEEN 已提交
9 10
-   [执行应用程序](#section5276734182615)

N
NEEN 已提交
11
本节指导开发者在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。
N
NEEN 已提交
12

M
mamingshuai 已提交
13
## 新建应用程序<a name="section204672145202"></a>
N
NEEN 已提交
14

N
NEEN 已提交
15
1.  新建目录及源码
N
NEEN 已提交
16

N
NEEN 已提交
17
    新建**applications/sample/camera/apps/src/helloworld.c**目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。
N
NEEN 已提交
18

N
NEEN 已提交
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
    ```
    #include <stdio.h>
    
    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\_taurus/config.json**,新增hello\_world\_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行):

    ```
          {
            "subsystem": "applications",
            "components": [
              { "component": "camera_sample_app", "features":[] },
              { "component": "camera_sample_ai", "features":[] },
    ##start##
              { "component": "hello_world_app", "features":[] },
    ##end##
              { "component": "camera_screensaver_app", "features":[] }
            ]
          },
    ```
N
NEEN 已提交
130 131 132 133


## 编译<a name="section1077671315253"></a>

D
duangavin123 已提交
134
如果Linux编译环境通过Docker方式安装,具体编译过程请参见[Docker方式获取编译环境](../get-code/gettools-acquire.md#section107932281315)的编译操作。如果Linux编译环境通过软件包方式安装,请进入源码根目录,执行如下命令进行编译:
N
NEEN 已提交
135 136 137 138 139 140 141 142

```
hb set(设置编译路径)
.(选择当前路径)
选择ipcamera_hispark_taurus@hisilicon并回车
hb build -f(执行编译)
```

D
duangavin123 已提交
143
**图 1**  设置图例<a name="fig1458988766"></a>  
D
duangavin123 已提交
144
![](figure/设置图例.png "设置图例")
N
NEEN 已提交
145 146 147

结果文件生成在out/hispark\_taurus/ipcamera\_hispark\_taurus目录下。

D
duangavin123 已提交
148
>![](../public_sys-resources/icon-notice.gif) **须知:** 
N
NEEN 已提交
149
>Hi3516DV300单板的U-boot文件获取路径:device/hisilicon/hispark\_taurus/sdk\_liteos/uboot/out/boot/u-boot-hi3516dv300.bin
N
NEEN 已提交
150

M
mamingshuai 已提交
151
## 烧录<a name="section1347011412201"></a>
N
NEEN 已提交
152 153 154

Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三种方式。此处仅以网口烧录为例进行说明。

D
duangavin123 已提交
155 156 157 158 159
### 使用网口烧录<a name="section1935410617363"></a>

Hi3516DV300开发板使用网口烧录方式,支持Windows和Linux系统。

1.  请连接好电脑和待烧录开发板,需要同时连接串口、网口和电源,具体可参考[Hi3516DV300开发板介绍](https://device.harmonyos.com/cn/docs/start/introduce/oem_minitinier_des_3516-0000001152041033)
N
NEEN 已提交
160 161
2.  <a name="zh-cn_topic_0000001056443961_li142386399535"></a>打开电脑的设备管理器,查看并记录对应的串口号。

D
duangavin123 已提交
162
    >![](../public_sys-resources/icon-note.gif) **说明:** 
D
duangavin123 已提交
163
    >如果对应的串口异常,请根据[Hi3516DV300/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。
N
NEEN 已提交
164

D
duangavin123 已提交
165
    ![](figure/record-the-serial-port-number-1.png)
N
NEEN 已提交
166 167 168

3.  打开DevEco Device Tool,在Projects中,点击**Settings**打开工程配置界面。

D
duangavin123 已提交
169
    ![](figure/settings.png)
N
NEEN 已提交
170

D
duangavin123 已提交
171
4.  在“Partition Configuration”页签,设置待烧录文件信息,默认情况下,DevEco Device Tool已针对Hi3516DV300开发板进行适配,无需单独修改。
M
mamingshuai 已提交
172
5.  在“hi3516dv300”页签,设置烧录选项,包括upload\_port、upload\_partitions和upload\_protocol。
N
NEEN 已提交
173 174 175 176 177

    -   upload\_port:选择步骤[2](#zh-cn_topic_0000001056443961_li142386399535)中查询的串口号。
    -   upload\_protocol:选择烧录协议,固定选择“hiburn-net”。
    -   upload\_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。

D
duangavin123 已提交
178
    ![](figure/hi3516-upload-options.png)
N
NEEN 已提交
179

D
duangavin123 已提交
180
6.  检查和设置连接开发板后的网络适配器的IP地址信息,设置方法请参考[设置Hi3516DV300网口烧录的IP地址信息](https://device.harmonyos.com/cn/docs/ide/user-guides/set_ipaddress-0000001141825075)
M
mamingshuai 已提交
181
7.  设置网口烧录的IP地址信息,设置如下选项:
N
NEEN 已提交
182

D
duangavin123 已提交
183
    -   upload\_net\_server\_ip:选择步骤6中设置的IP地址信息。例如192.168.1.2
N
NEEN 已提交
184 185 186 187
    -   upload\_net\_client\_mask:设置开发板的子网掩码,工具会自动根据选择的upload\_net\_server\_ip进行设置。例如255.255.255.0
    -   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

D
duangavin123 已提交
188
    ![](figure/ip-address-information.png)
N
NEEN 已提交
189

N
NEEN 已提交
190
8.  所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。
D
duangavin123 已提交
191
9.  打开工程文件,点击![](figure/deveco-device-tool-logo.png)图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hi3516dv300下的**Upload**按钮,启动烧录。
N
NEEN 已提交
192

D
duangavin123 已提交
193
    ![](figure/start-burning.png)
N
NEEN 已提交
194

N
NEEN 已提交
195
10. 启动烧录后,显示如下提示信息时,请重启开发板(下电再上电)。
N
NEEN 已提交
196

D
duangavin123 已提交
197
    ![](figure/restart-the-development-board-2.png)
N
NEEN 已提交
198

N
NEEN 已提交
199
11. 重新上电后,启动烧录,界面提示如下信息时,表示烧录成功。
N
NEEN 已提交
200

D
duangavin123 已提交
201
    ![](figure/burning-succeeded-3.png)
N
NEEN 已提交
202 203


M
mamingshuai 已提交
204
## 镜像运行<a name="section24721014162010"></a>
N
NEEN 已提交
205

D
duangavin123 已提交
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
在完成Hi3516DV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统。

1. 在Hi3516DV300任务中,点击**Configure bootloader(Boot OS)**进行配置即可。

   > ![](../public_sys-resources/icon-note.gif) **说明:** 
   > DevEco Device Tool针对Hi3516DV300开发板的BootLoader设置进行了适配,无需开发者手动修改。

   ![](D:/IDP%E5%8F%91%E5%B8%83%E4%BB%B6/220/For%20OpenHarmony2.0/zh/quick-start/figures/bootloader.png)

2. 提示如下图中的重启开发板的提示信息时,重启开发板,然后在控制台输出“SUCCESS”表示设置成功。

   ![](figure/reset_success.png)

3. 在任务栏点击**Monitor**按钮,启动串口工具。

   ![](figure/monitor.png)

4. 然后根据界面提示进行操作,直到在界面打印**OHOS \#**信息,表示系统启动成功。

   ![](figure/reboot_success.png)


N
NEEN 已提交
228 229 230 231


## 执行应用程序<a name="section5276734182615"></a>

N
NEEN 已提交
232
根目录下,在命令行输入指令“**./bin/helloworld**”执行写入的demo程序,显示成功结果如下图所示。
N
NEEN 已提交
233

D
duangavin123 已提交
234
**图 4**  启动并成功执行应用程序图<a name="fig149821431194515"></a>  
D
duangavin123 已提交
235
![](figure/启动并成功执行应用程序图.png "启动并成功执行应用程序图")
N
NEEN 已提交
236