Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
file/ | 12-May-2024 | - | 188 | 155 | ||
hals/file/ | 12-May-2024 | - | 130 | 79 | ||
include/ | 12-May-2024 | - | 1,507 | 361 | ||
js/builtin/ | 12-May-2024 | - | 2,547 | 2,181 | ||
kal/timer/ | 12-May-2024 | - | 275 | 222 | ||
memory/include/ | 12-May-2024 | - | 104 | 33 | ||
timer_task/ | 12-May-2024 | - | 168 | 120 | ||
BUILD.gn | D | 12-May-2024 | 1.3 KiB | 38 | 33 | |
LICENSE | D | 12-May-2024 | 10.1 KiB | 177 | 150 | |
README.md | D | 12-May-2024 | 6.9 KiB | 115 | 92 | |
README_zh.md | D | 12-May-2024 | 6.5 KiB | 115 | 92 | |
bundle.json | D | 12-May-2024 | 717 | 31 | 31 |
README.md
1 # commonlibrary/utils_lite<a name="EN-US_TOPIC_0000001121139825"></a> 2 3 - [Overview](#section62661387114) 4 - [Directory Structure](#section1464106163817) 5 - [Usage](#section25021123178) 6 - [Repositories Involved](#section4571352889) 7 8 ## Overview<a name="section62661387114"></a> 9 10 The utils_lite repository stores basic components of OpenHarmony. These basic components are used by OpenHarmony subsystems and upper-layer applications. 11 12 The utils_lite library provides the following capabilities on different platforms: 13 14 - LiteOS Cortex-M \(Hi3861 platform\): file operations and timer 15 - LiteOS Cortex-A \(Hi3516 or Hi3518 platform\): timer and JavaScript APIs for device query and data storage 16 17 **Table 1** Utils_lite capabilities 18 19 <a name="en-us_topic_0000001052623010_table206292206282"></a> 20 <table><thead align="left"><tr id="en-us_topic_0000001052623010_row8629020112819"><th class="cellrowborder" valign="top" width="21.22%" id="mcps1.2.4.1.1"><p id="en-us_topic_0000001052623010_p66291220192816"><a name="en-us_topic_0000001052623010_p66291220192816"></a><a name="en-us_topic_0000001052623010_p66291220192816"></a>Module</p> 21 </th> 22 <th class="cellrowborder" valign="top" width="24.77%" id="mcps1.2.4.1.2"><p id="en-us_topic_0000001052623010_p3629122014289"><a name="en-us_topic_0000001052623010_p3629122014289"></a><a name="en-us_topic_0000001052623010_p3629122014289"></a>Platform</p> 23 </th> 24 <th class="cellrowborder" valign="top" width="54.010000000000005%" id="mcps1.2.4.1.3"><p id="en-us_topic_0000001052623010_p206298206288"><a name="en-us_topic_0000001052623010_p206298206288"></a><a name="en-us_topic_0000001052623010_p206298206288"></a>Description</p> 25 </th> 26 </tr> 27 </thead> 28 <tbody> 29 <tr id="en-us_topic_0000001052623010_row116301920152816"><td class="cellrowborder" valign="top" width="21.22%" headers="mcps1.2.4.1.1 "><p id="en-us_topic_0000001052623010_p96300207286"><a name="en-us_topic_0000001052623010_p96300207286"></a><a name="en-us_topic_0000001052623010_p96300207286"></a>File operation</p> 30 </td> 31 <td class="cellrowborder" valign="top" width="24.77%" headers="mcps1.2.4.1.2 "><p id="en-us_topic_0000001052623010_p1463032012281"><a name="en-us_topic_0000001052623010_p1463032012281"></a><a name="en-us_topic_0000001052623010_p1463032012281"></a>LiteOS Cortex-M</p> 32 </td> 33 <td class="cellrowborder" valign="top" width="54.010000000000005%" headers="mcps1.2.4.1.3 "><p id="en-us_topic_0000001052623010_p163042052810"><a name="en-us_topic_0000001052623010_p163042052810"></a><a name="en-us_topic_0000001052623010_p163042052810"></a>Provides unified file operation interfaces that can be used on different underlying chip components.</p> 34 </td> 35 </tr> 36 <tr id="en-us_topic_0000001052623010_row1163022022812"><td class="cellrowborder" valign="top" width="21.22%" headers="mcps1.2.4.1.1 "><p id="en-us_topic_0000001052623010_p66308202284"><a name="en-us_topic_0000001052623010_p66308202284"></a><a name="en-us_topic_0000001052623010_p66308202284"></a>Timer</p> 37 </td> 38 <td class="cellrowborder" valign="top" width="24.77%" headers="mcps1.2.4.1.2 "><p id="en-us_topic_0000001052623010_p26301620192820"><a name="en-us_topic_0000001052623010_p26301620192820"></a><a name="en-us_topic_0000001052623010_p26301620192820"></a>LiteOS Cortex-M and LiteOS Cortex-A</p> 39 </td> 40 <td class="cellrowborder" valign="top" width="54.010000000000005%" headers="mcps1.2.4.1.3 "><p id="en-us_topic_0000001052623010_p2630172062815"><a name="en-us_topic_0000001052623010_p2630172062815"></a><a name="en-us_topic_0000001052623010_p2630172062815"></a>Provides unified timer operation interfaces that can be used on different underlying chip components.</p> 41 </td> 42 </tr> 43 <tr id="en-us_topic_0000001052623010_row363012202282"><td class="cellrowborder" valign="top" width="21.22%" headers="mcps1.2.4.1.1 "><p id="en-us_topic_0000001052623010_p4502105418285"><a name="en-us_topic_0000001052623010_p4502105418285"></a><a name="en-us_topic_0000001052623010_p4502105418285"></a>JavaScript API</p> 44 </td> 45 <td class="cellrowborder" valign="top" width="24.77%" headers="mcps1.2.4.1.2 "><p id="en-us_topic_0000001052623010_p199870135293"><a name="en-us_topic_0000001052623010_p199870135293"></a><a name="en-us_topic_0000001052623010_p199870135293"></a>LiteOS Cortex-A</p> 46 </td> 47 <td class="cellrowborder" valign="top" width="54.010000000000005%" headers="mcps1.2.4.1.3 "><p id="en-us_topic_0000001052623010_p1550005422814"><a name="en-us_topic_0000001052623010_p1550005422814"></a><a name="en-us_topic_0000001052623010_p1550005422814"></a>Provides JavaScript APIs for obtaining device information and storing data.</p> 48 </td> 49 </tr> 50 </tbody> 51 </table> 52 53 ## Directory Structure<a name="section1464106163817"></a> 54 55 ``` 56 commonlibrary/utils_lite/ # Root directory 57 ├── file # Implementation of the file system APIs 58 ├── hals # HAL directory 59 │ └── file # Header files of the hardware abstraction layer for file operations 60 ├── include # Header files of external APIs 61 ├── js # JavaScript APIs 62 │ └── builtin 63 │ ├── common # Builtin common function 64 │ ├── deviceinfokit # Device information kit 65 │ ├── filekit # File kit 66 │ └── kvstorekit # KV store kit 67 ├── kal # KAL directory 68 │ └── timer # KAL implementation of the timer 69 ├── memory 70 │ └── include # Memory pool management APIs 71 └── timer_task # Timer implementation 72 ``` 73 74 ## Usage<a name="section25021123178"></a> 75 76 - **File operation** 77 78 ``` 79 // Open or create a file. 80 const char fileName[] = "testfile"; 81 int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0); 82 83 // Write a specified length of data into a file with the specified file descriptor. 84 const char defValue[] = "test case of file system."; 85 int ret = UtilsFileWrite(fd, defValue, strlen(defValue)); 86 87 // Close a file with a specified file descriptor. 88 UtilsFileClose(fd); 89 90 // Obtain the file size. 91 int fileLen = 0; 92 ret = UtilsFileStat(fileName, &fileLen); 93 printf("file size = %d\n", fileLen); 94 95 // Adjust the read and write position offset in a file. 96 int fd1 = UtilsFileOpen(fileName, O_RDWR_FS, 0); 97 ret = UtilsFileSeek(fd1, 5, SEEK_SET_FS); 98 99 // Read a specified length of data from a file with the specified file descriptor and write the data into the buffer. 100 char buf[32] = {0}; 101 int readLen = UtilsFileRead(fd1, buf, 32); 102 ret = UtilsFileClose(fd1); 103 printf("read len = %d : buf = %s\n", readLen, buf); 104 105 // Delete a specified file. 106 ret = UtilsFileDelete(fileName); 107 ``` 108 109 110 111 ## Repositories Involved<a name="section4571352889"></a> 112 113 [commonlibrary](https://gitee.com/openharmony/docs/blob/master/en/readme/commonlibrary.md) 114 115 [**commonlibrary\_utils\_lite**](https://gitee.com/openharmony/commonlibrary_utils_lite)
README_zh.md
1 # 轻量级公共基础库<a name="ZH-CN_TOPIC_0000001121139825"></a> 2 3 - [简介](#section62661387114) 4 - [目录](#section1464106163817) 5 - [使用](#section25021123178) 6 - [涉及仓](#section4571352889) 7 8 ## 简介<a name="section62661387114"></a> 9 10 轻量级公共基础库存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。 11 12 轻量级公共基础库在不同平台上提供的能力: 13 14 - LiteOS-M内核\(Hi3861平台\):文件操作、定时器。 15 - LiteOS-A内核\(Hi3516、Hi3518平台\):定时器、JS API\(设备查询,数据存储\)。 16 17 **表 1** 轻量级公共基础库功能 18 19 <a name="zh-cn_topic_0000001052623010_table206292206282"></a> 20 <table><thead align="left"><tr id="zh-cn_topic_0000001052623010_row8629020112819"><th class="cellrowborder" valign="top" width="21.22%" id="mcps1.2.4.1.1"><p id="zh-cn_topic_0000001052623010_p66291220192816"><a name="zh-cn_topic_0000001052623010_p66291220192816"></a><a name="zh-cn_topic_0000001052623010_p66291220192816"></a>模块</p> 21 </th> 22 <th class="cellrowborder" valign="top" width="24.77%" id="mcps1.2.4.1.2"><p id="zh-cn_topic_0000001052623010_p3629122014289"><a name="zh-cn_topic_0000001052623010_p3629122014289"></a><a name="zh-cn_topic_0000001052623010_p3629122014289"></a>平台支持</p> 23 </th> 24 <th class="cellrowborder" valign="top" width="54.010000000000005%" id="mcps1.2.4.1.3"><p id="zh-cn_topic_0000001052623010_p206298206288"><a name="zh-cn_topic_0000001052623010_p206298206288"></a><a name="zh-cn_topic_0000001052623010_p206298206288"></a>说明</p> 25 </th> 26 </tr> 27 </thead> 28 <tbody> 29 <tr id="zh-cn_topic_0000001052623010_row116301920152816"><td class="cellrowborder" valign="top" width="21.22%" headers="mcps1.2.4.1.1 "><p id="zh-cn_topic_0000001052623010_p96300207286"><a name="zh-cn_topic_0000001052623010_p96300207286"></a><a name="zh-cn_topic_0000001052623010_p96300207286"></a>文件操作</p> 30 </td> 31 <td class="cellrowborder" valign="top" width="24.77%" headers="mcps1.2.4.1.2 "><p id="zh-cn_topic_0000001052623010_p1463032012281"><a name="zh-cn_topic_0000001052623010_p1463032012281"></a><a name="zh-cn_topic_0000001052623010_p1463032012281"></a>LiteOS-M内核</p> 32 </td> 33 <td class="cellrowborder" valign="top" width="54.010000000000005%" headers="mcps1.2.4.1.3 "><p id="zh-cn_topic_0000001052623010_p163042052810"><a name="zh-cn_topic_0000001052623010_p163042052810"></a><a name="zh-cn_topic_0000001052623010_p163042052810"></a>提供统一的文件操作接口,屏蔽对底层不同芯片组件的差异。</p> 34 </td> 35 </tr> 36 <tr id="zh-cn_topic_0000001052623010_row1163022022812"><td class="cellrowborder" valign="top" width="21.22%" headers="mcps1.2.4.1.1 "><p id="zh-cn_topic_0000001052623010_p66308202284"><a name="zh-cn_topic_0000001052623010_p66308202284"></a><a name="zh-cn_topic_0000001052623010_p66308202284"></a>定时器</p> 37 </td> 38 <td class="cellrowborder" valign="top" width="24.77%" headers="mcps1.2.4.1.2 "><p id="zh-cn_topic_0000001052623010_p26301620192820"><a name="zh-cn_topic_0000001052623010_p26301620192820"></a><a name="zh-cn_topic_0000001052623010_p26301620192820"></a>LiteOS-M内核、LiteOS-A内核</p> 39 </td> 40 <td class="cellrowborder" valign="top" width="54.010000000000005%" headers="mcps1.2.4.1.3 "><p id="zh-cn_topic_0000001052623010_p2630172062815"><a name="zh-cn_topic_0000001052623010_p2630172062815"></a><a name="zh-cn_topic_0000001052623010_p2630172062815"></a>提供统一的定时器操作接口,屏蔽对底层不同芯片组件的差异。</p> 41 </td> 42 </tr> 43 <tr id="zh-cn_topic_0000001052623010_row363012202282"><td class="cellrowborder" valign="top" width="21.22%" headers="mcps1.2.4.1.1 "><p id="zh-cn_topic_0000001052623010_p4502105418285"><a name="zh-cn_topic_0000001052623010_p4502105418285"></a><a name="zh-cn_topic_0000001052623010_p4502105418285"></a>JS API</p> 44 </td> 45 <td class="cellrowborder" valign="top" width="24.77%" headers="mcps1.2.4.1.2 "><p id="zh-cn_topic_0000001052623010_p199870135293"><a name="zh-cn_topic_0000001052623010_p199870135293"></a><a name="zh-cn_topic_0000001052623010_p199870135293"></a>LiteOS-A内核</p> 46 </td> 47 <td class="cellrowborder" valign="top" width="54.010000000000005%" headers="mcps1.2.4.1.3 "><p id="zh-cn_topic_0000001052623010_p1550005422814"><a name="zh-cn_topic_0000001052623010_p1550005422814"></a><a name="zh-cn_topic_0000001052623010_p1550005422814"></a>提供获取设备信息,数据存储的JS API。</p> 48 </td> 49 </tr> 50 </tbody> 51 </table> 52 53 ## 目录<a name="section1464106163817"></a> 54 55 ``` 56 commonlibrary/utils_lite/ # 轻量级公共基础库根目录 57 ├── file # 文件接口实现 58 ├── hals # HAL目录 59 │ └── file # 文件操作硬件抽象层头文件 60 ├── include # 公共基础库对外接口文件 61 ├── js # JS API目录 62 │ └── builtin 63 │ ├── common # Builtin公共函数 64 │ ├── deviceinfokit # 设备信息Kit 65 │ ├── filekit # 文件Kit 66 │ └── kvstorekit # KV存储Kit 67 ├── kal # KAL目录 68 │ └── timer # Timer的KAL实现 69 ├── memory 70 │ └── include # 内存池管理接口 71 └── timer_task # Timer实现 72 ``` 73 74 ## 使用<a name="section25021123178"></a> 75 76 - **文件操作** 77 78 ``` 79 // 打开或创建文件 80 const char fileName[] = "testfile"; 81 int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0); 82 83 // 向文件写入特定大小的数据 84 const char defValue[] = "test case of file system."; 85 int ret = UtilsFileWrite(fd, defValue, strlen(defValue)); 86 87 // 关闭文件 88 UtilsFileClose(fd); 89 90 // 获取文件大小 91 int fileLen = 0; 92 ret = UtilsFileStat(fileName, &fileLen); 93 printf("file size = %d\n", fileLen); 94 95 // 重新定位文件读/写偏移量 96 int fd1 = UtilsFileOpen(fileName, O_RDWR_FS, 0); 97 ret = UtilsFileSeek(fd1, 5, SEEK_SET_FS); 98 99 // 读取特定长度的文件数据 100 char buf[32] = {0}; 101 int readLen = UtilsFileRead(fd1, buf, 32); 102 ret = UtilsFileClose(fd1); 103 printf("read len = %d : buf = %s\n", readLen, buf); 104 105 // 删除指定文件 106 ret = UtilsFileDelete(fileName); 107 ``` 108 109 110 111 ## 涉及仓<a name="section4571352889"></a> 112 113 [公共基础](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%85%AC%E5%85%B1%E5%9F%BA%E7%A1%80%E5%BA%93.md) 114 115 [**commonlibrary\_utils\_lite**](https://gitee.com/openharmony/commonlibrary_utils_lite)