432 Star 2.3K Fork 522

OpenHarmony / docs

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
Clone or download
公共基础README.md 7.20 KB
Copy Edit Web IDE Raw Blame History
NEEN authored 2020-09-11 21:36 . !58 Docs Update

公共基础

简介

公共基础库存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。

公共基础库在不同平台上提供的能力:

  • LiteOS-M内核(Hi3861平台):KV存储、文件操作、定时器、IoT外设控制
  • LiteOS-A内核(Hi3516、Hi3518平台):KV存储、定时器、ACE JS API

目录

utils/native/lite/           # 公共基础库根目录
├── file                     # 文件接口实现
├── hals                     # HAL目录
│   └── file                 # 文件操作硬件抽象层头文件
├── include                  # 公共基础库对外接口文件
├── js                       # ACE JS API目录
│   └── builtin
│       ├── common
│       ├── deviceinfokit    # 设备信息Kit
│       ├── filekit          # 文件Kit
│       └── kvstorekit       # KV存储Kit
├── kal                      # KAL目录
│   └── timer                # Timer的KAL实现
├── kv_store                 # KV存储实现
│   ├── innerkits            # KV存储内部接口
│   └── src                  # KV存储源文件
└── timer_task               # Timer实现

base/iot_hardware            #IoT外设控制
├── frameworks
│   └── wifiiot_lite         #IoT外设控制模块实现
├── hals
│   └── wifiiot_lite         #HAL适配层接口
└── interfaces
    └── kits                 #IoT外设控制模块接口
vendor/hisi/hi3861/hi3861_adapter/hals/iot_hardware  #IoT外设控制HAL层
└── wifiiot_lite             #HAL适配层接口实现

约束

公共基础库使用C语言开发。

表 1 公共基础库功能及约束

组件

平台支持

说明

约束

KV存储

LiteOS-M内核、LiteOS-A内核

为应用程序提供KV存储机制。

-

文件操作

LiteOS-M内核

提供统一的文件操作接口,屏蔽对底层不同芯片组件的差异。

-

定时器

LiteOS-M内核、LiteOS-A内核

提供统一的定时器操作接口,屏蔽对底层不同芯片组件的差异。

-

IoT外设控制

LiteOS-M内核

IoT外设控制模块提供对外围设备的操作能力。

  

使用

  • KV存储

    获取接口
    char key1[] = "rw.sys.version";
    char value1[32] = {0};
    int ret = UtilsGetValue(key1, value1, 32);
    
    设置接口
    char key14[] = "key_14";
    ret = UtilsSetValue(key14, defValue);
  • 文件操作

    // open && write
    char fileName[] = "testfile";
    int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);
    printf("file handle = %d\n", fd);
    int ret = UtilsFileWrite(fd, def, strlen(def));
    printf("write ret = %d\n", ret);
    
    // stat
    int fileLen = 0;
    ret = UtilsFileStat(fileName, &fileLen);
    printf("file size = %d\n", fileLen);
    
    // seek
    int fd1 = UtilsFileOpen(fileName, O_RDWR_FS, 0);
    ret = UtilsFileSeek(fd1, 5, SEEK_SET_FS);
    printf("lseek ret = %d\n", ret);
    char buf[32] = {0};
    int readLen = UtilsFileRead(fd1, buf, 32);
    ret = UtilsFileClose(fd1);
    printf("read len = %d : buf = %s\n", readLen, buf);
    
    // delete
    ret = UtilsFileDelete(fileName);
    printf("delete ret = %d\n", ret);

涉及仓

iothardware_frameworks_wifiiot_lite

iothardware_hals_wifiiot_lite

iothardware_interfaces_kits_wifiiot_lite

utils_native_lite

1
https://gitee.com/openharmony/docs.git
git@gitee.com:openharmony/docs.git
openharmony
docs
docs
master

Search