@@ -222,6 +222,6 @@ Driver development based on the HDF involves driver implementation and driver co
...
@@ -222,6 +222,6 @@ Driver development based on the HDF involves driver implementation and driver co
> DEVICE_PRELOAD_INVALID
> DEVICE_PRELOAD_INVALID
> } DevicePreload;
> } DevicePreload;
> ```
> ```
> If the **preload** field in the configuration file is set to **0** (DEVICE\_PRELOAD\_ENABLE), the driver is loaded by default during the system boot process. If **preload** is set to **1** (DEVICE\_PRELOAD\_ENABLE\_STEP2), the driver is loaded after a quick start is complete if the system supports quick start. If the system does not support quick start, the value **1** has the same meaning as DEVICE\_PRELOAD\_ENABLE. If **preload** is set to **2** (DEVICE\_PRELOAD\_DISABLE), the driver is dynamically loaded instead of being loaded during the system boot process. When a user-mode process requests the driver service (for details, see [Driver Message Mechanism Management](driver-hdf-news.md)), the HDF attempts to dynamically load the driver if the driver service does not exist.
> If the **preload** field in the configuration file is set to **0** (DEVICE\_PRELOAD\_ENABLE), the driver is loaded by default during the system boot process. If **preload** is set to **1** (DEVICE\_PRELOAD\_ENABLE\_STEP2), the driver is loaded after a quick start is complete if the system supports quick start. If the system does not support quick start, the value **1** has the same meaning as DEVICE\_PRELOAD\_ENABLE. If **preload** is set to **2** (DEVICE\_PRELOAD\_DISABLE), the driver is dynamically loaded instead of being loaded during the system boot process. When a user-mode process requests the driver service (for details, see [Driver Message Mechanism Management](driver-hdf-message-managements.md)), the HDF attempts to dynamically load the driver if the driver service does not exist.
>- Sequential loading \(drivers must be loaded by default\)
>- Sequential loading \(drivers must be loaded by default\)
> In the configuration file, the **priority** field \(the value is an integer ranging from 0 to 200\) indicates the priority of the host and driver. For drivers in different hosts, a smaller host priority value indicates a higher driver loading priority; for drivers in the same host, a smaller driver priority value indicates a higher driver loading priority.
> In the configuration file, the **priority** field \(the value is an integer ranging from 0 to 200\) indicates the priority of the host and driver. For drivers in different hosts, a smaller host priority value indicates a higher driver loading priority; for drivers in the same host, a smaller driver priority value indicates a higher driver loading priority.
@@ -6,109 +6,109 @@ FAQs are used to help developers solve problems frequently encountered during de
...
@@ -6,109 +6,109 @@ FAQs are used to help developers solve problems frequently encountered during de
### Mini and Small Systems<a name="section197234983111"></a>
### Mini and Small Systems<a name="section197234983111"></a>
-[What should I do if garbled characters and segmentation faults occur during hb installation?](environment-setup.md#section36351051193919)
-[What should I do if garbled characters and segmentation faults occur during hb installation?](faqs-environment-setup.md#section36351051193919)
-[What should I do if the message "cannot import 'sysconfig' from 'distutils'" is displayed during hb installation?](environment-setup.md#section48221013144011)
-[What should I do if the message "cannot import 'sysconfig' from 'distutils'" is displayed during hb installation?](faqs-environment-setup.md#section48221013144011)
-[What should I do if the message "module 'platform' has no attribute 'linux\_distribution'" is displayed during hb installation?](environment-setup.md#section10307193044111)
-[What should I do if the message "module 'platform' has no attribute 'linux\_distribution'" is displayed during hb installation?](faqs-environment-setup.md#section10307193044111)
-[What should I do if the message "Could not find a version that satisfies the requirement ohos-build" is displayed during hb installation?](environment-setup.md#section8692735427)
-[What should I do if the message "Could not find a version that satisfies the requirement ohos-build" is displayed during hb installation?](faqs-environment-setup.md#section8692735427)
-[What should I do when the message configure: error: no acceptable C compiler found in $PATH is displayed during Python 3 installation?](environment-setup.md#section870082884217)
-[What should I do when the message configure: error: no acceptable C compiler found in $PATH is displayed during Python 3 installation?](faqs-environment-setup.md#section870082884217)
-[What should I do when the message -bash: make: command not found is displayed during Python 3 installation?](environment-setup.md#section198707170455)
-[What should I do when the message -bash: make: command not found is displayed during Python 3 installation?](faqs-environment-setup.md#section198707170455)
-[What should I do when the message zlib not available is displayed during Python 3 installation?](environment-setup.md#section85401445204518)
-[What should I do when the message zlib not available is displayed during Python 3 installation?](faqs-environment-setup.md#section85401445204518)
-[What should I do when the message No module named '\_ctypes' is displayed during Python 3 installation?](environment-setup.md#section12202694460)
-[What should I do when the message No module named '\_ctypes' is displayed during Python 3 installation?](faqs-environment-setup.md#section12202694460)
-[What should I do when an error with lsb\_release occurs during kconfiglib installation?](environment-setup.md#section5803174135115)
-[What should I do when an error with lsb\_release occurs during kconfiglib installation?](faqs-environment-setup.md#section5803174135115)
-[What should I do if the message "ImportError: No module named apt\_pkg" is displayed during the execution of an unidentifiable command?](environment-setup.md#section510820516515)
-[What should I do if the message "ImportError: No module named apt\_pkg" is displayed during the execution of an unidentifiable command?](faqs-environment-setup.md#section510820516515)
## Compilation and Building<a name="section18826114693810"></a>
## Compilation and Building<a name="section18826114693810"></a>
### Mini and Small Systems<a name="section693410399"></a>
### Mini and Small Systems<a name="section693410399"></a>
-[Invalid -- w Option](compilation-and-building-subsystem.md#section67961431372)
-[Invalid -- w Option](faqs-building.md#section67961431372)
-[Library ncurses Not Found](compilation-and-building-subsystem.md#section199631617371)
-[Library ncurses Not Found](faqs-building.md#section199631617371)
-[mcopy not Found](compilation-and-building-subsystem.md#section937435175)
-[mcopy not Found](faqs-building.md#section937435175)
-[No riscv File or Directory](compilation-and-building-subsystem.md#section1115535018713)
-[No riscv File or Directory](faqs-building.md#section1115535018713)
-[What should I do when the message Could not find a version that satisfies the requirement six\>=1.9.0 is displayed during compilation and building?](compilation-and-building-subsystem.md#section1917790845)
-[What should I do when the message Could not find a version that satisfies the requirement six\>=1.9.0 is displayed during compilation and building?](faqs-building.md#section1917790845)
-[What should I do when the message cannot find -lgcc is displayed during compilation and building?](compilation-and-building-subsystem.md#section141771701647)
-[What should I do when the message cannot find -lgcc is displayed during compilation and building?](faqs-building.md#section141771701647)
-[What should I do when the message indicating Python cannot be found is displayed during compilation and building?](compilation-and-building-subsystem.md#section51781202415)
-[What should I do when the message indicating Python cannot be found is displayed during compilation and building?](faqs-building.md#section51781202415)
-[What should I do when the message indicating Python 3 cannot be found is displayed during compilation and building?](compilation-and-building-subsystem.md#section1917950148)
-[What should I do when the message indicating Python 3 cannot be found is displayed during compilation and building?](faqs-building.md#section1917950148)
## Burning<a name="section6556741113712"></a>
## Burning<a name="section6556741113712"></a>
### Mini and Small Systems<a name="section1029933713812"></a>
### Mini and Small Systems<a name="section1029933713812"></a>
-["Error: Opening COMxx: Access denied" Is Displayed After a Serial Port Is Selected for Burning](burning.md#section18988185615914)
-["Error: Opening COMxx: Access denied" Is Displayed After a Serial Port Is Selected for Burning](faqs-burning.md#section18988185615914)
-[What should I do when the image failed to be burnt?](burning.md#section1370982513317)
-[What should I do when the image failed to be burnt?](faqs-burning.md#section1370982513317)
-[What should I do when no command output is displayed?](burning.md#section183421944953)
-[What should I do when no command output is displayed?](faqs-burning.md#section183421944953)
-[What should I do when Windows-based PC failed to be connected to the board?](burning.md#section1215410450215)
-[What should I do when Windows-based PC failed to be connected to the board?](faqs-burning.md#section1215410450215)
-[What third-party components are supported by OpenHarmony?](kernel.md#section74138185411)
-[What third-party components are supported by OpenHarmony?](faqs-kernel.md#section74138185411)
-[What should I do if the key length verification fails when OpenSSL is used on OpenHarmony?](kernel.md#section10564614135516)
-[What should I do if the key length verification fails when OpenSSL is used on OpenHarmony?](faqs-kernel.md#section10564614135516)
-[Does setsockopt support SO\_RCVBUF and SO\_SNDBUF?](kernel.md#section2093373215556)
-[Does setsockopt support SO\_RCVBUF and SO\_SNDBUF?](faqs-kernel.md#section2093373215556)
### Compilation and Linking<a name="section080219574225"></a>
### Compilation and Linking<a name="section080219574225"></a>
-[How do I run an application developed by ARM Linux on LiteOS-A?](kernel.md#section1164175713557)
-[How do I run an application developed by ARM Linux on LiteOS-A?](faqs-kernel.md#section1164175713557)
-[What system is used for OpenHarmony compilation? What compiler is used?](kernel.md#section132287223567)
-[What system is used for OpenHarmony compilation? What compiler is used?](faqs-kernel.md#section132287223567)
-[For a third-party component that is independently compiled into a static library and used on LiteOS-M, what should I do when the component's global variable value is incorrect or the system is suspended after the component's function is called?](kernel.md#section15189154225619)
-[For a third-party component that is independently compiled into a static library and used on LiteOS-M, what should I do when the component's global variable value is incorrect or the system is suspended after the component's function is called?](faqs-kernel.md#section15189154225619)
-[What should I do if the message "use VFP register arguments, xxx.o does not" is displayed when LiteOS-A generates a target executable file?](kernel.md#section193571012578)
-[What should I do if the message "use VFP register arguments, xxx.o does not" is displayed when LiteOS-A generates a target executable file?](faqs-kernel.md#section193571012578)
-[What should I do when calling clock\_gettime obtains an incorrect time?](kernel.md#section8973152015717)
-[What should I do when calling clock\_gettime obtains an incorrect time?](faqs-kernel.md#section8973152015717)
## Porting<a name="section129331824154313"></a>
## Porting<a name="section129331824154313"></a>
-[How Do I Mount the Heap Memory to the Kernel?](porting.md#section21471536184914)
-[How Do I Mount the Heap Memory to the Kernel?](faqs-porting.md#section21471536184914)
## Startup and Recovery<a name="section83501764443"></a>
## Startup and Recovery<a name="section83501764443"></a>
-[System startup interrupted due to "parse failed!" error](startup-and-recovery.md#section835662214302)
-[System startup interrupted due to "parse failed!" error](faqs-startup-and-recovery.md#section835662214302)
-[System automatically restarted again and again](startup-and-recovery.md#section3857921143117)
-[System automatically restarted again and again](faqs-startup-and-recovery.md#section3857921143117)
-[Failed to call the SetParameter or GetParameter API with correct parameter values](startup-and-recovery.md#section548818116328)
-[Failed to call the SetParameter or GetParameter API with correct parameter values](faqs-startup-and-recovery.md#section548818116328)
## System Services<a name="section19567132114455"></a>
## System Services<a name="section19567132114455"></a>
### Utils<a name="section3214181711465"></a>
### Utils<a name="section3214181711465"></a>
-[1. Failure in running the KV store on the LiteOS-A kernel \(Hi3516 or Hi3518\) due to incorrect path setting for the KV store](system-applications.md#section16520347131511)
-[1. Failure in running the KV store on the LiteOS-A kernel \(Hi3516 or Hi3518\) due to incorrect path setting for the KV store](faqs-system-applications.md#section16520347131511)
This use case takes **camera\_sample**\(contained in the source code\) as an example for photographing, recording, and previewing on the development board.
This use case takes **camera\_sample**\(contained in the source code\) as an example for photographing, recording, and previewing on the development board.
- You can obtain source code of the sample from **applications/sample/camera/media/camera\_sample.cpp**.
- You can obtain source code of the sample from **applications/sample/camera/media/camera\_sample.cpp**.
- Before running the sample camera, you need to compile, burn, and run the image. For details, see [Hi3516 Development Board](../quick-start/oem_minitinier_des_3516.md#section26131214194212).
- Before running the sample camera, you need to compile, burn, and run the image. For details, see [Hi3516 Development Board](../quick-start/quickstart-lite-introduction-hi3516#section26131214194212).
>After the development board is started, the home screen is loaded and displayed above the media layer by default. To prevent covering **camera\_sample**, you should remove the home screen during compilation or packaging.
>After the development board is started, the home screen is loaded and displayed above the media layer by default. To prevent covering **camera\_sample**, you should remove the home screen during compilation or packaging.
# Running on the Device<a name="EN-US_TOPIC_0000001054809161"></a>
# Running on the Device<a name="EN-US_TOPIC_0000001054809161"></a>
Before you install the application and run it on the development board, install the DevEco Device Tool by following operations provided in [HUAWEI DevEco Device Tool User Guide](https://device.harmonyos.com/en/docs/ide/user-guides/service_introduction-0000001050166905). Burn OpenHarmony into the development board, and run it on the board. For details about how to compile, burn, and run an image, see the [Hi3516 Development Board](../quick-start/oem_minitinier_des_3516.md#section26131214194212). After the image is running normally and the system is started properly, perform the following steps to install or uninstall the application:
Before you install the application and run it on the development board, install the DevEco Device Tool by following operations provided in [HUAWEI DevEco Device Tool User Guide](https://device.harmonyos.com/en/docs/ide/user-guides/service_introduction-0000001050166905). Burn OpenHarmony into the development board, and run it on the board. For details about how to compile, burn, and run an image, see the [Hi3516 Development Board](../quick-start/quickstart-lite-introduction-hi3516.md#section26131214194212). After the image is running normally and the system is started properly, perform the following steps to install or uninstall the application:
1. Store the compiled unsigned application installation package and installation tool in an SD card and insert the SD card into the development board slot. The installation tool is in **dev\_tools** of the directory where the image file is generated.
1. Store the compiled unsigned application installation package and installation tool in an SD card and insert the SD card into the development board slot. The installation tool is in **dev\_tools** of the directory where the image file is generated.
2. Run the following command to disable signature verification, which is enabled by default for application installation:
2. Run the following command to disable signature verification, which is enabled by default for application installation:
# Use Case<a name="EN-US_TOPIC_0000001055686082"></a>
# Use Case<a name="EN-US_TOPIC_0000001055686082"></a>
- For details about the development board, compilation, burning, and image running, see [Hi3518 Development Board](../quick-start/oem_minitinier_des_3518.md#section14815247616). A compilation result file of sample code is stored in **out/ipcamera\_hi3518ev300/dev\_tools/bin/camera\_sample**. You can copy the file to a TF card, or modify the compilation script of **camera\_sample** to copy the result to **rootfs.img**.
- For details about the development board, compilation, burning, and image running, see [Hi3518 Development Board](../quick-start/quickstart-lite-introduction-hi3518.md#section14815247616). A compilation result file of sample code is stored in **out/ipcamera\_hi3518ev300/dev\_tools/bin/camera\_sample**. You can copy the file to a TF card, or modify the compilation script of **camera\_sample** to copy the result to **rootfs.img**.
Modify **output\_dir** in **applications/sample/camera/media/BUILD.gn**.
Modify **output\_dir** in **applications/sample/camera/media/BUILD.gn**.
@@ -121,7 +121,7 @@ The following table describes the API for initializing a modem vendor library.
...
@@ -121,7 +121,7 @@ The following table describes the API for initializing a modem vendor library.
### Debugging and Verification<a name="section5351151517132"></a>
### Debugging and Verification<a name="section5351151517132"></a>
1. Use the [hdc\_std](https://gitee.com/openharmony/docs/blob/master/en/device-dev/subsystems/oem_subsys_toolchain_hdc_guide.md#preparations) tool to connect to a debugging device. Then, run the following command to send the generated **libril\_vendor.z.so** library file to the **/system/lib/** directory of the device. For details about how to integrate a library file, see [Integrating Modem Vendor Libraries](#section590mcpsimp).
1. Use the [hdc\_std](https://gitee.com/openharmony/docs/blob/master/en/device-dev/subsystems/subsys-toolchain-hdc-guide.md#preparations) tool to connect to a debugging device. Then, run the following command to send the generated **libril\_vendor.z.so** library file to the **/system/lib/** directory of the device. For details about how to integrate a library file, see [Integrating Modem Vendor Libraries](#section590mcpsimp).
@@ -591,7 +591,7 @@ The following uses the RTL8720 development board provided by Realtek as an examp
...
@@ -591,7 +591,7 @@ The following uses the RTL8720 development board provided by Realtek as an examp
1.<aname="li1970321162111"></a>Create a directory for the chipset solution.
1.<aname="li1970321162111"></a>Create a directory for the chipset solution.
To create a directory based on [1-Configuration Rules for Modules, Chipset Solutions, and Product Solutions](#section1625463413327), run the following command in the root code directory:
To create a directory based on [Configuration Rules](#section2345183962710), run the following command in the root code directory:
```
```
mkdir -p device/realtek/rtl8720
mkdir -p device/realtek/rtl8720
...
@@ -658,7 +658,7 @@ You can use the Compilation and Building subsystem to customize product solution
...
@@ -658,7 +658,7 @@ You can use the Compilation and Building subsystem to customize product solution
1. Create a product directory.
1. Create a product directory.
The following uses the Wi-Fi IoT module on the RTL8720 development board as an example. Run the following command in the root code directory to create a product directory based on [1-Configuration Rules for Modules, Chipset Solutions, and Product Solutions](#section1625463413327):
The following uses the Wi-Fi IoT module on the RTL8720 development board as an example. Run the following command in the root code directory to create a product directory based on [Configuration Rules](#section2345183962710):