niobe/utils/native/lite
houpengfei bf36baa0e3 update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
..
file update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
hals/file update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
include update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
js/builtin update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
kal/timer update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
kv_store update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
memory/include update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
os_dump update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
timer_task update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
BUILD.gn update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
LICENSE update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
README.md update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00
README_zh.md update OpenHarmony 3.0 LTS 2021-10-22 13:59:18 +08:00

README.md

Utils

Overview

The Utils repository stores basic components of OpenHarmony. These basic components are used by OpenHarmony subsystems and upper-layer applications.

The Utils library provides the following capabilities on different platforms:

  • LiteOS Cortex-M Hi3861 platform: key value KV store, file operations, timer, and system attribute dumping
  • LiteOS Cortex-A Hi3516 or Hi3518 platform: KV store, timer, JavaScript APIs for device query and data storage, and system attribute dumping

Table 1 Utils capabilities

Module

Platform

Description

KV store

LiteOS Cortex-M and LiteOS Cortex-A

Provides KV storage for applications.

File operation

LiteOS Cortex-M

Provides unified file operation interfaces that can be used on different underlying chip components.

Timer

LiteOS Cortex-M and LiteOS Cortex-A

Provides unified timer operation interfaces that can be used on different underlying chip components.

JavaScript API

LiteOS Cortex-A

Provides JavaScript APIs for obtaining device information and storing data.

System attribute dumping

LiteOS Cortex-M and LiteOS Cortex-A

Provides the command line tool for dumping system attributes.

Directory Structure

utils/native/lite/              # Root directory
├── file                        # Implementation of the file system APIs
├── hals                        # HAL directory
│   └── file                    # Header files of the hardware abstraction layer for file operations
├── include                     # Header files of external APIs
├── js                          # JavaScript APIs
│   └── builtin
│       ├── common
│       ├── deviceinfokit       # Device information kit
│       ├── filekit             # File kit
│       └── kvstorekit          # KV store kit
├── kal                         # KAL directory
│   └── timer                   # KAL implementation of the timer
├── kv_store	                # KV store implementation
│   ├── innerkits               # Internal KV store APIs
│   └── src	                    # KV store source file
├── memory
│   └── include                 # Memory pool management APIs
├── os_dump                     # System attribute dumping
└── timer_task                  # Timer implementation

Usage

  • KV store

    // Store or update the value of a key.
    const char key1[] = "key_sample";
    const char defValue[] = "test case of key value store.";
    int ret = UtilsSetValue(key1, defValue);
    
    // Obtain the value of the key.
    char value1[32] = {0};
    ret = UtilsGetValue(key1, value1, 32);
    
    // Delete the value of the key.
    UtilsDeleteValue(key1);
    
  • File operation

    // Open or create a file.
    const char fileName[] = "testfile";
    int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);
    
    // Write a specified length of data into a file with the specified file descriptor.
    const char defValue[] = "test case of file system.";
    int ret = UtilsFileWrite(fd, defValue, strlen(defValue));
    
    // Close a file with a specified file descriptor.
    UtilsFileClose(fd);
    
    // Obtain the file size.
    int fileLen = 0;
    ret = UtilsFileStat(fileName, &fileLen);
    printf("file size = %d\n", fileLen);
    
    // Adjust the read and write position offset in a file.
    int fd1 = UtilsFileOpen(fileName, O_RDWR_FS, 0);
    ret = UtilsFileSeek(fd1, 5, SEEK_SET_FS);
    
    // Read a specified length of data from a file with the specified file descriptor and write the data into the buffer.
    char buf[32] = {0};
    int readLen = UtilsFileRead(fd1, buf, 32);
    ret = UtilsFileClose(fd1);
    printf("read len = %d : buf = %s\n", readLen, buf);
    
    // Delete a specified file.
    ret = UtilsFileDelete(fileName);
    
  • System attribute dumping

    LiteOS Cortex-M kernel: Run the following command over the serial port to dump the current system parameters:

    AT+SYSPARA
    

    LiteOS Cortex-A kernel: Run the os_dump command in the bin directory to dump the current system parameters:

    ./bin/os_dump syspara
    

Repositories Involved

Utils

utils_native_lite