# How to Develop - [Environment Setup](#section1246439101710) - [Build](#section375234715135) - [Burning](#section111671738101213) - [Prerequisites](#section1458192114718) - [Programming Flash Memory Through the USB Port](#section18423113662120) - [Development Example](#section5600113114323) ## Environment Setup For details about setting up the standard OpenHarmony environment, see [Setting Up the Environment](overview-9.md). >![](public_sys-resources/icon-note.gif) **NOTE:** >For details about the environment requirements of the third-party development board, refer to the official guide of the development board. ## Build If you are using the Docker environment, refer to the Docker usage guide to build the system. If you are using the installation package, perform the following operations in the Linux environment. 1. Go to the root directory of the source code and run the following command to build the distribution. ``` ./build.sh --product-name Hi3516DV300 ``` **product\_name** indicates the platform supported by the current distribution, 2. Check the build result. After the build is complete, the following information is displayed in the log: ``` build system image successful. =====build Hi3516DV300 successful. ``` Files generated during the build are stored in the **out/ohos-arm-release/** directory, and the generated image is stored in the **out/ohos-arm-release/packages/phone/images/** directory. >![](public_sys-resources/icon-note.gif) **NOTE:** >For details about module-specific build operations, see [Compilation and Building Overview](../subsystems/building-guidelines-for-the-standard-system.md). ## Burning Programming flash memory of a regular system requires DevEco Device Tool v2.2 Beta1 or later. The Hi3516DV300 of the Hi3516 series development boards supports programming flash memory of a regular system through the USB port, network port, or serial port, where: - **Windows system: Supports programming through the USB port, serial port, or network port** - **Linux system: Supports programming through the serial port or network port \(Linux+Windows dual system: Also supports programming through the USB port\)** Except for environment setup, the burning operations are the same for Windows and Linux. >![](public_sys-resources/icon-note.gif) **NOTE:** >Currently, the Hi3516D V300 development board supports system burning over the USB port, network port, or serial port. This document uses the USB port as an example. For details about system burning over other ports, see [Programming Flash Memory on the Hi3516](https://device.harmonyos.com/en/docs/ide/user-guides/hi3516_upload-0000001052148681). ### Prerequisites [Open a project](https://device.harmonyos.com/en/docs/ide/user-guides/open_project-0000001071680043) in DevEco Device Tool and select the folder where the file to be programmed is located. Select **Hi3516DV300** for the development board type and **Hb** for **Framework**. ### Programming Flash Memory Through the USB Port The Hi3516DV300 supports programming through the USB port in Windows or Linux+Windows environment. 1. Connect the PC and the target development board through the serial port and USB port. In this section, the Hi3516DV300 is used as an example. For details, please refer to [Introduction to the Hi3516 Development Board](https://device.harmonyos.com/en/docs/start/introduce/oem_camera_start_3516-0000001052670587). 2. Open Device Manager, then check and record the serial port number corresponding to the development board. >![](public_sys-resources/icon-note.gif) **NOTE:** >If the serial port number is not displayed correctly, follow the steps described in [Installing the Serial Port Driver on the Hi3516 or Hi3518 Series Development Boards](https://device.harmonyos.com/en/docs/ide/user-guides/hi3516_hi3518-drivers-0000001050743695). ![](figures/en-us_image_0000001160529359.png) 3. Open DevEco Device Tool and go to **Projects** \> **Settings**. ![](figures/2021-01-27_170334-17.png) 4. On the **Partition Configuration** tab page, enter the information about the files to be programmed, including the following.

Name

Binary

Memory

System

Address

Length

Board

Type

fastboot

Select u-boot-hi3516dv300_emmc.bin.

emmc

none

0x000000

0x100000

Select hi3516dv300.

NA

boot

Select uImage.

emmc

none

0x100000

0xf00000

NA

updater

Select updater.img.

emmc

ext3/4

0x1000000

0x1400000

NA

misc

Leave it blank.

emmc

none

0x2400000

0x100000

NA

system

Select system.img.

emmc

ext3/4

0x2500000

0xceb00000

NA

vendor

Select vendor.img.

emmc

ext3/4

0xd1000000

0x10000000

NA

userdata

Select userdata.img.

emmc

ext3/4

0xe1000000

0x5b800000

NA

![](figures/en-us_image_0000001160527611.png) 5. On the **hi3516dv300** tab page, configure the programming options. - **upload\_port**: Select the serial port number obtained in step 2. - **upload\_protocol**: Select the programming protocol **hiburn-usb**. - **upload\_partitions**: Select the file to be programmed, including the following: fastboot, boot, updater, misc, system, vendor, and userdata. ![](figures/en-us_image_0000001160528243.png) 6. When you finish modifying, click **Save** in the upper right corner. 7. Open the project file, go to ![](figures/2021-01-27_170334-18.png) \> **PROJECT TASKS** \> **fastboot** \> **Erase** to erase U-boot. ![](figures/en-us_image_0000001163045527.png) 8. When the following message is displayed, power off the development board and then power it on. ![](figures/en-us_image_0000001114129426.png) 9. If the following message is displayed, it indicates that U-Boot is erased successfully. ![](figures/en-us_image_0000001113969536.png) 10. Go to **hi3516dv300** \> **Upload** to start programming. >![](public_sys-resources/icon-note.gif) **NOTE:** >If this is the first time you program flash memory on the Hi3516 or Hi3518 board, the message "not find the Devices" may be displayed. In this case, follow the steps in [Installing the USB Driver on the Hi3516 or Hi3518 Series Development Boards](https://device.harmonyos.com/en/docs/ide/user-guides/usb_driver-0000001058690393) and start programming again. ![](figures/1-19.png) 11. If the following message is displayed, it indicates that the programming is successful. ![](figures/en-us_image_0000001160649343.png) ## Development Example You have completed the quick start for the standard system. Get yourself familiar with OpenHarmony by a [Development Example for Platform Drivers](../guide/overview-11.md).