@@ -11,11 +11,12 @@ A project for the RK3568 development board has been created as instructed in [Cr
## Example Directory
Obtain the OpenHarmony project code. From the source code root directory, add the **sample/hello** directory, and then create therein the **hello** source code directory, the build file **BUILD.gn**, and the component configuration file **bundle.json**.
The complete code directory is as follows:
```
applications/sample/hello
sample/hello
│── BUILD.gn
│── include
│ └── helloworld.h
...
...
@@ -24,9 +25,9 @@ applications/sample/hello
├── bundle.json
build
└── subsystem_config.json
productdefine/common
└── products
└── rk3568.json
vendor/hihope
└── rk3568
└── config.json
```
...
...
@@ -36,7 +37,7 @@ Perform the steps below in the source code directory:
1. Create a directory and write the service code.
Create the **applications/sample/hello/src/helloworld.c** directory and file whose code is shown in the following example. You can customize the content to be printed. For example, you can change **World** to**OHOS**. Declare the string printing function **HelloPrint** in the **helloworld.h** file. You can use either C or C++ to develop a program.
Create the **sample/hello/src/helloworld.c** file, with the sample code as follows. In this example, the content to be printed is **World**, which you can change to any string that you prefer, for example,**OHOS**. Declare the string printing function **HelloPrint** in the **helloworld.h** file. You can use either C or C++ to develop a program.
```
...
...
@@ -57,7 +58,7 @@ Perform the steps below in the source code directory:
}
```
Add the header file **applications/sample/hello/include/helloworld.h**. The sample code is as follows:
Add the header file **sample/hello/include/helloworld.h**. The sample code is as follows:
```
...
...
@@ -80,89 +81,116 @@ Perform the steps below in the source code directory:
```
2. Create a build file.
1. Create the **applications/sample/hello/BUILD.gn** file. The file content is as follows:
```
import("//build/ohos.gni") # Import the build template.
include_dirs = [ # Directory of header files on which the module depends.
"include"
]
cflags = []
cflags_c = []
cflags_cc = []
ldflags = []
configs = []
deps =[] # Internal dependencies of a component.
part_name = "hello" # Component name. This parameter is mandatory.
install_enable = true # Whether to install the software by default. This parameter is optional. By default, the software is not installed.
}
```
3. Create a component configuration file.
Create the **sample/hello/bundle.json** file and add the **sample** component description therein. For details, see [Component](../subsystems/subsys-build-component.md).
The content of the **bundle.json** file is as follows:
The **bundle.json** file consists of two parts. The first part describes the information about the subsystem to which the component belongs, and the second part defines the build configuration for the component. When adding a component, you must specify the **sub_component** of the component. If there are APIs provided for other components, add them in **inner_kits**. If there are test cases, add them in **test**.
The **bundle.json** file consists of two parts. The first part describes the information about the subsystem to which the component belongs, and the second part defines the build configuration for the component. When adding a component, you must specify the **sub_component** of the component. If there are APIs provided for other components, add them in **inner_kits**. If there are test cases, add them in **test**.
3. Modify the subsystem configuration file.
4. Modify the subsystem configuration file.
Add the configuration of the new subsystem to the **build/subsystem_config.json** file.
Add the configuration of the new subsystem to the **build/subsystem_config.json** file. For details, see [Subsystem](../subsystems/subsys-build-subsystem.md).
The configuration of the new subsystem is as follows:
```
"sample": {
"path": "applications/sample/hello",
"path": "sample",
"name": "sample"
},
```
4. Modify the product configuration file.
In the **productdefine/common/products/rk3568.json** file, add the **hello** part after the existing part.
> In this example, the OpenHarmony-v3.1-Release version is used, where the RK3568 configuration file is **productdefine/common/products/rk3568.json**. In OpenHarmony-v3.2-Beta2 and later versions, the RK3568 configuration file is **vendor/hihope/rk3568/config.json**.
> In versions earlier than OpenHarmony-v3.2-Beta2, the RK3568 configuration file is **productdefine/common/products/rk3568.json**. In OpenHarmony-v3.2-Beta2 and later versions, the RK3568 configuration file is **vendor/hihope/rk3568/config.json**.
- Versions earlier than OpenHarmony-v3.2-Beta2
In the **productdefine/common/products/rk3568.json** file, add the **hello** part after the existing part.
```
```
"usb:usb_manager_native":{},
"applications:prebuilt_hap":{},
"sample:hello":{},
"wpa_supplicant-2.9:wpa_supplicant-2.9":{},
```
```
- OpenHarmony-v3.2-Beta2 and later versions
In the **vendor/hihope/rk3568/config.json** file, add the **hello** part after the existing part.