From 2572fe1b749368bb9b7106c1d9bad9fda485f5e2 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 12 Aug 2021 15:04:42 +0800 Subject: [PATCH 1/6] standard-system-porting-guide English version Signed-off-by: wusongqing --- en/device-dev/porting/figure/hdf_wifi.png | Bin 79641 -> 48332 bytes .../porting/standard-system-porting-guide.md | 377 ++++++++++++++++++ 2 files changed, 377 insertions(+) create mode 100644 en/device-dev/porting/standard-system-porting-guide.md diff --git a/en/device-dev/porting/figure/hdf_wifi.png b/en/device-dev/porting/figure/hdf_wifi.png index 4a0441de4621bd558383ba1323d21c793bcf192a..9a4ca253cc8fc1e564d4e5e61705aa66ea5199ae 100644 GIT binary patch literal 48332 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

XQV+7Wi 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%0A2VJl~oJ&{hpNUCa+|hf)p3v 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 yjZNeki|T<*hc*!vEzxR9Ju<`={ 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 z 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 W6K4G71Rlf2z~JfX=d#Wzp$P!-x + + + +- [Defining a Development Board](#Defining-a-Development-Board) + - [1. Defining an SoC](#1-Defining-an-SoC) + - [2. Defining a Product](#2-Defining-a-Product) + - [3. Verifying the Porting](#3-Verifying-the-Porting) +- [Porting the Kernel](#Porting-the-Kernel) + - [1. Adding a Kernel-built Subsystem to the SoC](#1-Adding-a-Kernel-built-Subsystem-to-the-SoC) + - [2. Building the Kernel](#2-Building-the-Kernel) + - [3. Verifying the Porting](#3-Verifying-the-Porting-1) +- [Porting the HDF Driver](#Porting-the-HDF-Driver) + - [1. LCD](#1-lcd) + - [2. Touchscreen](#2-Touchscreen) + - [3. WLAN](#3-wlan) + + + +This document describes the general process for porting a development board, rather than the porting process specific to a System on Chip (SoC). In the future, the community will provide more development board porting examples for your reference. + +## Defining a Development Board + +This document uses the process of porting a development board named **MyProduct** as an example. This development board is provided by **MyProductVendor** and uses the SoC **MySOC** produced by **MySoCVendor**. + +### 1. Defining an SoC + +Create a JSON file named after the SoC name in the **//productdefine/common/device** directory and specify the CPU architecture. + +For example, to port **MySOC**, which uses a 32-bit ARM kernel, configure the file as follows: + +`//productdefine/common/device/MySOC.json` +```json +{ + "target_os": "ohos", + "target_cpu": "arm" +} +``` +Currently, **target_cpu** can be set to **arm** only. In the future, you can set the value depending on the CPU architecture, such as **arm64**, **riscv**, or **x86**. + +### 2. Defining a Product + +Create a JSON file named after the product name in the **//productdefine/common/products** directory. This file is used to describe the SoC used by the product and the required subsystems. +Configure the file as follows: +`//productdefine/common/products/MyProduct.json` +```json +{ + "product_name": "MyProduct", + "product_company" : "MyProductVendor", + "product_device": "MySOC", + "version": "2.0", + "type": "standard", + "parts":{ + "ace:ace_engine_standard":{}, + "ace:napi":{}, + ... + "xts:phone_tests":{} + } +} + +``` +The main configurations are as follows: + +1. **product_device**: SoC used by the product. +2. **type**: system level. In this example, set it to **standard**. +3. **parts**: subsystems to enable. A subsystem can be treated as an independently built functional block. + +You can find available subsystems in **//build/subsystem_config.json**. You can also customize subsystems. + +You are advised to copy the configuration file of Hi3516D V300 and delete the **hisilicon_products** subsystem, which is used to compile the kernel for Hi3516D V300. + +### 3. Verifying the Porting + +Run the following command to start the build of your product: + +`./build.sh --product-name MyProduct ` + +After the build is complete, you can view the built OpenHarmony image file in the following directory: + +`//out/ohos-arm-release/packages/phone/images` + +## Porting the Kernel + +Now, you need to port the Linux kernel to enable it to run successfully. + +### 1. Adding a Kernel-built Subsystem to the SoC + +Add the following subsystem configuration to the **//build/subsystem_config.json** file: + +```json + "MySOCVendor_products": { + "project": "hmf/MySOCVendor_products", + "path": "device/MySOCVendor/MySOC/build", + "name": "MySOCVendor_products", + "dir": "device/MySOCVendor" + }, +``` + +Then, open the configuration file **//productdefine/common/products/MyProduct.json**, which is used to define the product, and add the new subsystem to the product. + +### 2. Building the Kernel + +The path for building the subsystem is defined when you define the subsystem in the previous step. The path is **//device/MySOCVendor/MySOC/build**. Now, you need to create a build script in this path to instruct the build system to build the kernel. + +Currently, the OpenHarmony source code provides the Linux kernel 4.19, which is archived in **//kernel/linux-4.19**. You are advised to use this kernel. However, if the SoC vendor does not provide the kernel of this version, use that provided by the vendor. +You are advised to use patches to modify or extend the SoC kernel. + +The recommended directory structure is as follows: +``` +├── build +│   ├── kernel +│   │ ├── linux +│   │ ├──standard_patch_for_4_19.patch +│   ├── BUILD.gn +│   ├── ohos.build +``` +The **BUILD.gn** file is the only entry for building the subsystem. + +The expected build result is as follows: + +| File| Description| +|------|------| +|$root_build_dir/packages/phone/images/uImage| Kernel image| +|$root_build_dir/packages/phone/images/uboot | Bootloader image| + +### 3. Verifying the Porting + +Now start build, and check whether the kernel image is generated as expected. + +## Porting the HDF Driver + +### 1. LCD +This section describes how to port a Liquid Crystal Display (LCD) driver. The hardware driver framework (HDF) designs a driver model for the LCD. To support an LCD, you must compile a driver, generate a model instance in the driver, and register the instance. + +The LCD drivers are stored in the **//drivers/framework/model/display/driver/panel** directory. + +- Create a panel driver. + +In the **Init** method of the driver, call **RegisterPanel** to register the model instance. +```C +int32_t XXXInit(struct HdfDeviceObject *object) +{ + struct PanelData *panel = CreateYourPanel(); + + // Register the model instance. + if (RegisterPanel(panel) != HDF_SUCCESS) { + HDF_LOGE("%s: RegisterPanel failed", __func__); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_xxxxDevEntry = { + .moduleVersion = 1, + .moduleName = "LCD_XXXX", + .Init = XXXInit, +}; + +HDF_INIT(g_xxxxDevEntry); +``` + +- Configure and load the panel driver. +All device information about the product is defined in the **//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs** file. Modify the file by adding configurations for the device named **device_lcd** to the host named **display**. +Note: The value of **moduleName** must be the same as that in the panel driver. + +```hcs +root { + ... + display :: host { + device_lcd :: device { + deviceN :: deviceNode { + policy = 0; + priority = 100; + preload = 2; + moduleName = "LCD_XXXX"; + } + } + } +} +``` + +For details about driver development, see [LCD](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/LCD.md). + +### 2. Touchscreen +This section describes how to port a touchscreen driver. The touchscreen driver is stored in the **//drivers/framework/model/input/driver/touchscreen** directory. To port a touchscreen driver, register a **ChipDevice** model instance. + +- Create a touchscreen driver. + +Create the **touch_ic_name.c** file in the directory. Replace **ic_name** with the name of your chip. The file template is as follows: + +```C +#include "hdf_touch.h" + +static int32_t HdfXXXXChipInit(struct HdfDeviceObject *device) +{ + ChipDevice *tpImpl = CreateXXXXTpImpl(); + if(RegisterChipDevice(tpImpl) != HDF_SUCCESS) { + ReleaseXXXXTpImpl(tpImpl); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_touchXXXXChipEntry = { + .moduleVersion = 1, + .moduleName = "HDF_TOUCH_XXXX", + .Init = HdfXXXXChipInit, +}; + +HDF_INIT(g_touchXXXXChipEntry); +``` + +Implement the following interfaces in **ChipDevice**: +| Interface| Description| +|------|------| +|int32_t (*Init)(ChipDevice *device)| Initializes a touchscreen.| +|int32_t (*Detect)(ChipDevice *device)| Detects a touchscreen.| +|int32_t (*Suspend)(ChipDevice *device)| Suspends a touchscreen.| +|int32_t (*Resume)(ChipDevice *device)| Resumes a touchscreen.| +|int32_t (*DataHandle)(ChipDevice *device)| Reads data from a touchscreen and writes the touch point data to **device > driver > frameData**.| +|int32_t (*UpdateFirmware)(ChipDevice *device)| Upgrades the firmware.| + +- Configure the product and load the driver. + +All device information about the product is defined in the **//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs** file. Modify the file by adding configurations for the device named **device_touch_chip** to the host named **input**. +Note: The value of **moduleName** must be the same as that in the touchscreen driver. + +```hcs + deviceN :: deviceNode { + policy = 0; + priority = 130; + preload = 0; + permission = 0660; + moduleName = "HDF_TOUCH_XXXX"; + deviceMatchAttr = "touch_XXXX_configs"; + } +``` + +For details about driver development, see [TOUCHSCREEN](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/TOUCHSCREEN.md). + + +### 3. WLAN + +The WLAN driver is divided into two parts. One of the parts manages WLAN devices, and the other part manages WLAN traffic. **HDF WLAN** provides abstraction for the two parts. Currently, only the WLAN with the SDIO interface is supported. + +WLAN structure + +To support a chip, implement a **ChipDriver** for it. The major task is to implement the following interfaces provided by **HDF_WLAN_CORE** and **NetDevice**. + +| Interface| Header File| Description| +|------|------|------| +| HdfChipDriverFactory| `//drivers/framework/include/wifi/hdf_wlan_chipdriver_manager.h`| Factory of the **ChipDriver**, which is used to support multiple WLAN interfaces of a chip.| +| HdfChipDriver | `//drivers/framework/include/wifi/wifi_module.h`| Manages a specific WLAN interface. Each WLAN interface corresponds to an **HdfChipDriver**.| +|NetDeviceInterFace| `//drivers/framework/include/wifi/net_device.h`| Communicates with the protocol stack, such as sending data and setting the status of network interfaces.| + +To port a WLAN driver, perform the following steps: + +1. Create an HDF driver. + +You are advised to place the code file in the **//device/MySoCVendor/peripheral/wifi/chip_name/** directory. +The file template is as follows: + +```C +static int32_t HdfWlanHisiChipDriverInit(struct HdfDeviceObject *device) { + static struct HdfChipDriverFactory factory = CreateChipDriverFactory(); + struct HdfChipDriverManager *driverMgr = HdfWlanGetChipDriverMgr(); + if (driverMgr->RegChipDriver(&factory) != HDF_SUCCESS) { + HDF_LOGE("%s fail: driverMgr is NULL!", __func__); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_hdfXXXChipEntry = { + .moduleVersion = 1, + .Init = HdfWlanXXXChipDriverInit, + .Release = HdfWlanXXXChipRelease, + .moduleName = "HDF_WIFI_CHIP_XXX" +}; + +HDF_INIT(g_hdfXXXChipEntry); +``` + +Create an **HdfChipDriverFactory** in the **CreateChipDriverFactory**. The interfaces are as follows: +| Interface| Description| +|------|------| +|const char *driverName| Indicates the driver name.| +|int32_t (*InitChip)(struct HdfWlanDevice *device)| Initializes a chip.| +|int32_t (*DeinitChip)(struct HdfWlanDevice *device)| Deinitializes a chip.| +|void (*ReleaseFactory)(struct HdfChipDriverFactory *factory)| Releases the **HdfChipDriverFactory** object.| +|struct HdfChipDriver *(*Build)(struct HdfWlanDevice *device, uint8_t ifIndex)|Creates an **HdfChipDriver**. In the input parameters, **device** indicates the device information, and **ifIndex** indicates the sequence number of this interface in the chip.| +|void (*Release)(struct HdfChipDriver *chipDriver)| Releases the **HdfChipDriver**. +|uint8_t (*GetMaxIFCount)(struct HdfChipDriverFactory *factory)| Obtains the maximum number of interfaces supported by the current chip.| + +Implement the following interfaces in the **HdfChipDriver**. + +|Interface| Description| +|------|------| +|int32_t (*init)(struct HdfChipDriver *chipDriver, NetDevice *netDev)| Initializes the current network interface. The **NetDeviceInterFace** needs to be provided for the **netDev**.| +|int32_t (*deinit)(struct HdfChipDriver *chipDriver, NetDevice *netDev)| Deinitializes the current network interface.| +|struct HdfMac80211BaseOps *ops| Provides the WLAN basic capability interface set.| +|struct HdfMac80211STAOps *staOps| Provides the interface set required for supporting the standalone (STA) mode.| +|struct HdfMac80211APOps *apOps| Provides the interface set required for supporting the access point (AP) mode.| + + + +2. Compile the configuration file to describe the devices supported by the driver. + +Create the chip configuration file **//vendor/MyProductVendor/MyProduct/config/wifi/wlan_chip_chip_name.hcs** in the product configuration directory. +Replace **MyProductVendor**, **MyProduct**, and **chip_name** in the path with the actual names. +The sample code is as follows: +```hcs +root { + wlan_config { + chip_name :& chipList { + chip_name :: chipInst { + match_attr = "hdf_wlan_chips_chip_name"; /* Configure the matching attribute, which is used to provide the configuration root of the driver.*/ + driverName = "driverName"; /* The value must be the same as that of driverName in HdfChipDriverFactory.*/ + sdio { + vendorId = 0x0296; + deviceId = [0x5347]; + } + } + } + } +} +``` + +3. Edit the configuration file and load the driver. + +All device information about the product is defined in the **//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs** file. Modify the file by adding configurations for the device named **device_wlan_chips** to the host named **network**. +Note: The value of **moduleName** must be the same as that in the touchscreen driver. +The sample code is as follows: + +```hcs + deviceN :: deviceNode { + policy = 0; + preload = 2; + moduleName = "HDF_WLAN_CHIPS"; + deviceMatchAttr = "hdf_wlan_chips_chip_name"; + serviceName = "driverName"; + } +``` + +4. Build the driver. + +- Create a kernel configuration menu. +Create a **Kconfig** file in the **//device/MySoCVendor/peripheral** directory. The file template is as follows: +``` +config DRIVERS_WLAN_XXX + bool "Enable XXX WLAN Host driver" + default n + depends on DRIVERS_HDF_WIFI + help + Answer Y to enable XXX Host driver. Support chip xxx +``` + +Add the following sample code to the end of the **//drivers/adapter/khdf/linux/model/network/wifi/Kconfig** file to add the configuration menu to the kernel: +``` +source "../../../../../device/MySoCVendor/peripheral/Kconfig" +``` + +- Create a build script. + +Add the following configuration to the end of the **//drivers/adapter/khdf/linux/model/network/wifi/Makefile** file: + +``` +HDF_DEVICE_ROOT := $(HDF_DIR_PREFIX)/../device +obj-$(CONFIG_DRIVERS_WLAN_XXX) += $(HDF_DEVICE_ROOT)/MySoCVendor/peripheral/build/standard/ +``` + +When **DRIVERS_WLAN_XXX** is enabled in the kernel, **makefile** in **//device/MySoCVendor/peripheral/build/standard/** is called. + + +For more details, see [WLAN Development](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/WLAN.md). -- Gitee From bc914dc856b35627386671977ef70db17bf576c0 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 12 Aug 2021 20:36:16 +0800 Subject: [PATCH 2/6] Added English version of video Signed-off-by: wusongqing --- en/application-dev/js-reference/video.md | 210 +++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 en/application-dev/js-reference/video.md diff --git a/en/application-dev/js-reference/video.md b/en/application-dev/js-reference/video.md new file mode 100644 index 00000000000..f71df8e3855 --- /dev/null +++ b/en/application-dev/js-reference/video.md @@ -0,0 +1,210 @@ +# video + +- [Child Components](#zh-cn_topic_0000001058670744_section9288143101012) +- [Attributes](#zh-cn_topic_0000001058670744_section2907183951110) +- [Events](#zh-cn_topic_0000001058670744_section3892191911214) +- [Methods](#zh-cn_topic_0000001058670744_section45171131134215) +- [Example](#zh-cn_topic_0000001058670746_section16867208402) + +The <video> component provides a video player. + +## Child Components + +Not supported. + +## Attributes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

+

Type

+

Default Value

+

Mandatory

+

Description

+

src

+

string

+

-

+

No

+

Path of the video to play.

+

muted

+

boolean

+

false

+

No

+

Whether the video is muted.

+

autoplay

+

boolean

+

false

+

No

+

Whether the video is automatically played.

+

controls

+

boolean

+

true

+

No

+

Whether to display the video playback control bar. The value **false** means not to display the control bar, and **true** means that the display of the control bar is controlled by the system. The default value is **true**.

+
+ +## Events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

+

Parameter

+

Description

+

start

+

-

+

Triggered when video playback starts.

+

pause

+

-

+

Triggered when video playback is paused.

+

finish

+

-

+

Triggered when video playback is finished.

+

error

+

-

+

Triggered when video playback fails.

+

seeking

+

{ currenttime: value(s) }

+

Time reported when the seek bar is being manipulated, in seconds.

+

seeked

+

{ currenttime: value(s) }

+

Time reported when the seek operation completes, in seconds.

+

timeupdate

+

{ currenttime: value(s) }

+

Current video playback time (in seconds) reported when the playback progress changes. This time is reported every 250 ms.

+
+ +## Methods + + + + + + + + + + + + + + + + + + + + +

Name

+

Parameter

+

Description

+

start

+

-

+

Starts video playback.

+

pause

+

-

+

Pauses video playback.

+

setCurrentTime

+

{ currenttime: value(s) }

+

Sets the seek position of the video.

+
+ +## Example + +``` + +

+ +
+``` + +``` +/* xxx.js */ +export default { + data: { + event:'', + seekingtime:'', + timeupdatetime:'', + seekedtime:'', + isStart: true, + }, + startCallback:function(){this.event = 'Video playback starts.';}, + pauseCallback:function(){this.event = 'Video playback is paused.';}, + finishCallback:function(){this.event = 'Video playback is finished.';}, + errorCallback:function(){this.event = 'Video playback fails.';}, + seekingCallback:function(e){ this.seekingtime = e.currenttime; }, + timeupdateCallback:function(e){ this.timeupdatetime = e.currenttime;}, + change_start_pause: function() { + if(this.isStart) { + this.$element('videoId').pause(); + this.isStart = false; + } else { + this.$element('videoId').start(); + this.isStart = true; + } + } +} +``` -- Gitee From 4ff805692c065fd892f527382b4b19b39c384c77 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Fri, 13 Aug 2021 01:48:18 +0000 Subject: [PATCH 3/6] update en/application-dev/js-reference/video.md. Changed tags --- en/application-dev/js-reference/video.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/application-dev/js-reference/video.md b/en/application-dev/js-reference/video.md index f71df8e3855..f8c271e64dd 100644 --- a/en/application-dev/js-reference/video.md +++ b/en/application-dev/js-reference/video.md @@ -6,7 +6,7 @@ - [Methods](#zh-cn_topic_0000001058670744_section45171131134215) - [Example](#zh-cn_topic_0000001058670746_section16867208402) -The <video> component provides a video player. +The **