diff --git "a/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/math.md" "b/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/math.md"
new file mode 100644
index 0000000000000000000000000000000000000000..a24c1fed74e866a51dce2ba46084a4b71fe300e2
--- /dev/null
+++ "b/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/math.md"
@@ -0,0 +1,802 @@
+# `math` - 数学运算
+
+math 模块提供数学运算函数。该模块实现相应CPython模块的子集。更多信息请参阅阅CPython文档:[math](https://docs.python.org/3.5/library/math.html#module-math)
+
+## 返回x的y次方
+
+### `math.pow`
+
+```python
+math.pow(x, y)
+```
+
+返回x的y次方
+
+**参数描述**
+
+* `x`:浮点数
+* `y`:浮点数
+
+**返回值描述**
+浮点数:`x`的 `y`次方
+
+**示例:**
+
+```
+>>> import math
+>>> math.pow(2, 3)
+8.0
+```
+
+## 返回x的反余弦弧度值
+
+### `math.acos`
+
+```python
+math.acos(x)
+```
+
+返回x的反余弦弧度值
+
+**参数描述**
+
+* `x`:浮点数,是-1~1之间的数,包括-1和1,如果小于-1或者大于1,会产生错误。
+
+**返回值描述**
+浮点数:`x`的反余弦弧度值
+
+**示例:**
+
+```
+>>> import math
+>>> math.acos(0.6)
+0.9272952
+```
+
+## 返回x的反正弦弧度值
+
+### `math.asin`
+
+```python
+math.asin(x)
+```
+
+返回x的反正弦弧度值
+
+**参数描述**
+
+* `x`:浮点数,是-1~1之间的数,包括-1和1,如果小于-1或者大于1,会产生错误。
+
+**返回值描述**
+浮点数:`x`的反正弦弧度值
+
+**示例**:
+
+```
+>>> import math
+>>> math.asin(-1)
+-1.570796
+```
+
+## 返回x的反正切弧度值
+
+### `math.atan`
+
+```python
+math.atan(x)
+```
+
+返回x的反正切弧度值
+
+**参数描述**
+
+* `x`:浮点数
+
+**返回值描述**
+浮点数:`x`的反正切弧度值
+
+**示例:**
+
+```
+>>> import math
+>>> math.atan(-8)
+-1.446441
+>>> math.atan(6.4)
+1.4158
+```
+
+## 返回给定的 X 及 Y 坐标值的反正切值
+
+### `math.atan2`
+
+```python
+math.atan2(x, y)
+```
+
+返回给定的 X 及 Y 坐标值的反正切值
+
+**参数描述**
+
+* `x`:浮点数
+* `y`:浮点数
+
+**返回值描述**
+浮点数:坐标 (`x` ,`y`)的反正切值
+
+**示例:**
+
+```
+>>> import math
+>>> math.atan2(-0.50,0.48)
+-0.8058035
+>>> math.atan2(7, 9)
+0.6610432
+```
+
+## 返回数字的上入整数
+
+### `math.ceil`
+
+```python
+math.ceil(x)
+```
+
+返回数字的上入整数
+
+**参数描述**
+
+* `x`:浮点数
+
+**返回值描述**
+整数:`x`的上入整数
+
+**示例:**
+
+```
+>>> import math
+>>> math.ceil(4.1)
+5
+```
+
+## 把y的正负号加到x前面
+
+### `math.copysign`
+
+```python
+math.copysign(x, y)
+```
+
+把y的正负号加到x前面
+
+**参数描述**
+
+* `x`:浮点数
+* `y`:浮点数
+
+**返回值描述**
+浮点数,把 `y`的正负号加到 `x`前面
+
+**示例:**
+
+```
+>>> import math
+>>> math.copysign(5, 0)
+5.0
+>>> math.copysign(5, -4)
+-5.0
+>>> math.copysign(5, 9)
+5.0
+```
+
+## 返回x的弧度的余弦值
+
+### `math.cos`
+
+```python
+math.cos(x)
+```
+
+返回x的弧度的余弦值
+
+**参数描述**
+
+* `x`:浮点数
+
+**返回值描述**
+浮点数,`x`的弧度的余弦值,范围-1~1之间
+
+**示例:**
+
+```python
+>>> import math
+>>> math.cos(3)
+-0.9899925
+```
+
+## 将弧度转换为角度
+
+### `math.degrees`
+
+```python
+math.degrees(x)
+```
+
+将弧度转换为角度
+
+**参数描述**
+
+* `x`:浮点数
+
+**返回值描述**
+浮点数,弧度 `x`转换为角度
+
+**示例:**
+
+```
+>>> import math
+>>> math.degrees(5)
+286.4789
+>>> math.degrees(math.pi/2)
+90.0
+```
+
+## 数学常量 `e`
+
+### `math.e`
+
+数学常量 `e`,`e`即自然常数。
+
+## 返回e的x次幂
+
+### `math.exp`
+
+```python
+math.exp(x)
+```
+
+返回e的x次幂
+
+**参数描述**
+
+* `x`:浮点数
+
+**返回值描述**
+浮点数,`e`的 `x`次幂
+
+**示例:**
+
+```
+>>> import math
+>>> math.exp(1)
+2.718282
+>>> print(math.e)
+2.718282
+```
+
+## 返回数字的绝对值
+
+### `math.fabs`
+
+```python
+math.fabs(x)
+```
+
+返回数字的绝对值
+
+**参数描述**
+
+* `x`:浮点数
+
+**返回值描述**
+浮点数,`x`的绝对值
+
+**示例:**
+
+```
+>>> import math
+>>> math.fabs(-3.88)
+3.88
+```
+
+## 返回数字的下舍整数
+
+### `math.floor`
+
+```python
+math.floor(x)
+```
+
+返回数字的下舍整数
+
+**参数描述**
+
+* `x`:浮点数
+
+**返回值描述**
+浮点数,`x`的下舍整数
+
+**示例:**
+
+```
+>>> import math
+>>> math.floor(8.7)
+8
+>>> math.floor(9)
+9
+>>> math.floor(-7.6)
+-8
+```
+
+## 返回x/y的余数
+
+### `math.fmod`
+
+```python
+math.fmod(x, y)
+```
+
+返回x/y的余数
+
+**参数描述**
+
+* `x`:浮点数
+* `y`:浮点数
+ **返回值描述**
+ `x`/`y`的余数,浮点数
+
+**示例:**
+
+```
+>>> import math
+>>> math.fmod(15, 4)
+3.0
+>>> math.fmod(15, 3)
+0.0
+```
+
+## 返回由x的小数部分和整数部分组成的元组
+
+### `math.modf`
+
+```python
+math.modf(x)
+```
+
+返回由x的小数部分和整数部分组成的元组。
+
+**参数描述**
+
+* `x`:浮点数
+ **返回值描述**
+ `x`/`y`的余数,浮点数
+
+**示例:**
+
+```
+>>> import math
+>>> math.modf(17.592)
+(0.5919991, 17.0)
+```
+
+## 返回一个元组(m,e)
+
+### `math.modf`
+
+```python
+math.modf(x)
+```
+
+返回一个元组(m,e)
+
+**参数描述**
+
+* `x`:浮点数
+ **返回值描述**
+ 返回一个元组 `(m,e)`,其计算方式为:`x`分别除0.5和1,得到一个值的范围,`2e`的值在这个范围内,`e`取符合要求的最大整数值,然后 `x/(2e)`,得到 `m`的值。如果 `x`等于0,则 `m`和 `e`的值都为0,`m`的绝对值的范围为(0.5,1)之间,不包括0.5和1。
+
+**示例:**
+
+```
+>>> import math
+>>> math.frexp(52)
+(0.8125, 6)
+```
+
+## 判断 x 是否为有限数
+
+### `math.isfinite`
+
+```python
+math.isfinite(x)
+```
+
+判断 x 是否为有限数
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+判断 `x` 是否为有限数,是则返回 `True`,否则返回 `False`。
+
+**示例:**
+
+```
+>>> import math
+>>> math.isfinite(8)
+True
+```
+
+## 判断是否无穷大或负无穷大
+
+### `math.isinf`
+
+```python
+math.isinf(x)
+```
+
+判断是否无穷大或负无穷大
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+如果 `x`是正无穷大或负无穷大,则返回 `True`,否则返回 `False`。
+
+**示例:**
+
+```
+>>> import math
+>>> math.isinf(123)
+False
+```
+
+## 判断是否数字
+
+### `math.isnan`
+
+```python
+pymath.isnan(x)
+```
+
+判断是否数字
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+如果 `x`不是数字,返回 `True`,否则返回 `False`。
+
+**示例:**
+
+```
+>>> import math
+>>> math.isnan(23)
+False
+```
+
+## 返回x*(2**i)的值
+
+### `math.ldexp`
+
+```python
+math.ldexp(x, exp)
+```
+
+**返回x*(2**i)的值
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+浮点数,返回 `x`*(2**i)的值。
+
+**示例:**
+
+```
+>>> import math
+>>> math.ldexp(2, 1)
+4.0
+```
+
+## 返回x的自然对数
+
+### `math.log`
+
+```python
+math.log(x)
+```
+
+返回x的自然对数
+
+**参数描述**
+
+* `x`,浮点数,小于0会报错
+
+**返回值描述**
+
+浮点数,返回 `x`的自然对数
+
+**示例:**
+
+```
+>>> import math
+>>> math.log(2)
+0.6931472
+```
+
+## 数学常量 pi
+
+### `math.pi`
+
+数学常量 pi(圆周率,一般以π来表示)。
+
+## 将角度转换为弧度
+
+### `math.radians`
+
+```python
+math.radians(x)
+```
+
+将角度转换为弧度
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+浮点数,将角度 `x`转换为弧度
+
+**示例:**
+
+```
+>>> import math
+>>> math.radians(90)
+1.570796
+```
+
+## 返回x弧度的正弦值
+
+### `math.sin`
+
+```python
+math.sin(x)
+```
+
+返回x弧度的正弦值
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+返回 `x`弧度的正弦值,数值在 -1 到 1 之间。
+
+**示例:**
+
+```
+>>> import math
+>>> math.sin(-18)
+0.7509873
+>>> math.sin(50)
+-0.2623749
+```
+
+## 返回数字x的平方根
+
+### `math.sqrt`
+
+```python
+math.sqrt(x)
+```
+
+返回x弧度的平方根
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+返回数字 `x`的平方根,返回值为浮点数。
+
+**示例:**
+
+```
+>>> import math
+>>> math.sqrt(4)
+2.0
+>>> math.sqrt(7)
+2.645751
+```
+
+## 返回 x 弧度的正切值
+
+### `math.tan`
+
+```python
+math.tan(x)
+```
+
+返回 x 弧度的正切值
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+返回 `x` 弧度的正切值,数值在 -1 到 1 之间,为浮点数。
+
+**示例:**
+
+```
+>>> import math
+>>> math.tan(9)
+-0.4523157
+```
+
+## 返回x的整数部分
+
+### `math.trunc`
+
+```python
+math.trunc(x)
+```
+
+返回x的整数部分
+
+**参数描述**
+
+* `x`,浮点数
+
+**返回值描述**
+
+返回x的整数部分,为整数。
+
+**示例:**
+
+```
+>>> import math
+>>> math.trunc(7.123)
+7
+```
+
+**使用示例**
+
+```python
+# 数学运算math函数示例
+
+import math
+import log
+import utime
+
+
+'''
+下面两个全局变量是必须有的,用户可以根据自己的实际项目修改下面两个全局变量的值
+'''
+PROJECT_NAME = "QuecPython_Math_example"
+PROJECT_VERSION = "1.0.0"
+
+
+if __name__ == '__main__':
+ # 设置日志输出级别
+ log.basicConfig(level=log.INFO)
+ math_log = log.getLogger("Math")
+
+ # x**y运算后的值
+ result = math.pow(2,3)
+ math_log.info(result)
+ # 8.0
+
+ # 取大于等于x的最小的整数值,如果x是一个整数,则返回x
+ result = math.ceil(4.12)
+ math_log.info(result)
+ # 5
+
+ # 把y的正负号加到x前面,可以使用0
+ result = math.copysign(2,-3)
+ math_log.info(result)
+ # -2.0
+
+ # 求x的余弦,x必须是弧度
+ result = math.cos(math.pi/4)
+ math_log.info(result)
+ # 0.7071067811865476
+
+ # 把x从弧度转换成角度
+ result = math.degrees(math.pi/4)
+ math_log.info(result)
+ # 45.0
+
+ # e表示一个常量
+ result = math.e
+ math_log.info(result)
+ # 2.718281828459045
+
+ # exp()返回math.e(其值为2.71828)的x次方
+ result = math.exp(2)
+ math_log.info(result)
+ # 7.38905609893065
+
+ # fabs()返回x的绝对值
+ result = math.fabs(-0.03)
+ math_log.info(result)
+ # 0.03
+
+ # floor()取小于等于x的最大的整数值,如果x是一个整数,则返回自身
+ result = math.floor(4.999)
+ math_log.info(result)
+ # 4
+
+ # fmod()得到x/y的余数,其值是一个浮点数
+ result = math.fmod(20,3)
+ math_log.info(result)
+ # 2.0
+
+ # frexp()返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围,2e的值在这个范围内,e取符合要求的最大整数值,然后x/(2e),得到m的值。如果x等于0,则m和e的值都为0,m的绝对值的范围为(0.5,1)之间,不包括0.5和1
+ result = math.frexp(75)
+ math_log.info(result)
+ # (0.5859375, 7)
+
+ # isfinite()如果x不是无穷大的数字,则返回True,否则返回False
+ result = math.isfinite(0.1)
+ math_log.info(result)
+ # True
+
+ # isinf()如果x是正无穷大或负无穷大,则返回True,否则返回False
+ result = math.isinf(234)
+ math_log.info(result)
+ # False
+
+ # isnan()如果x不是数字True,否则返回False
+ result = math.isnan(23)
+ math_log.info(result)
+ # False
+
+ # ldexp()返回x*(2**i)的值
+ result = math.ldexp(5,5)
+ math_log.info(result)
+ # 160.0
+
+ # modf()返回由x的小数部分和整数部分组成的元组
+ result = math.modf(math.pi)
+ math_log.info(result)
+ # (0.14159265358979312, 3.0)
+
+ # pi:数字常量,圆周率
+ result = math.pi
+ math_log.info(result)
+ # 3.141592653589793
+
+ # sin()求x(x为弧度)的正弦值
+ result = math.sin(math.pi/4)
+ math_log.info(result)
+ # 0.7071067811865476
+
+ # sqrt()求x的平方根
+ result = math.sqrt(100)
+ math_log.info(result)
+ # 10.0
+
+ # tan()返回x(x为弧度)的正切值
+ result = math.tan(math.pi/4)
+ math_log.info(result)
+ # 0.9999999999999999
+
+ # trunc()返回x的整数部分
+ result = math.trunc(6.789)
+ math_log.info(result)
+ # 6
+
+```
diff --git "a/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/sys.md" "b/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/sys.md"
new file mode 100644
index 0000000000000000000000000000000000000000..299751163836a1fa406ae85f08e04068f4e5a938
--- /dev/null
+++ "b/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/sys.md"
@@ -0,0 +1,89 @@
+# `sys` - 系统相关功能
+
+> 新架构代码升级了MPY的版本,sys变更为usys。导入模块时建议使用以下方式进行导入
+
+```python
+try:
+ import usys as sys
+except ImportError:
+ import sys
+```
+
+## 常数说明
+
+### `sys.argv`
+
+当前程序启动的可变参数列表。
+
+### `sys.byteorder`
+
+字节顺序 (‘little’ - 小端, ‘big’ - 大端)。
+
+### `sys.implementation`
+
+返回当前microPython版本信息。对于MicroPython,它具有以下属性:
+
+- name - 字符串“ micropython”
+- version - 元组(主要,次要,微型),例如(1、7、0)
+
+建议使用此对象来将MicroPython与其他Python实现区分开。
+
+### `sys.maxsize`
+
+本机整数类型可以在当前平台上保留的最大值,如果它小于平台最大值,则为MicroPython整数类型表示的最大值(对于不支持长整型的MicroPython端口就是这种情况)。
+
+### `sys.modules`
+
+已载入模块的字典。
+
+### `sys.platform`
+
+MicroPython运行的平台。
+
+### `sys.stdin`
+
+标准输入(默认是USB虚拟串口,可选其他串口)。
+
+### `sys.stdout`
+
+标准输出(默认是USB虚拟串口,可选其他串口)。
+
+### `sys.version`
+
+MicroPython 语言版本,字符串格式。
+
+### `sys.version_info`
+
+MicroPython 语言版本,整数元组格式。
+
+## **方法**
+
+### `sys.exit`
+
+```python
+sys.exit(retval=0)
+```
+
+使用给定的参数退出当前程序。
+
+**参数描述**
+
+* `retval`,int型,退出参数
+
+**返回值描述**
+
+该函数会引发 `SystemExit`退出。如果给定了参数,则将其值作为参数赋值给 `SystemExit`。
+
+### `sys.print_exception`
+
+```python
+sys.print_exception(exc, file=sys.stdout)
+```
+
+打印异常到文件对象,默认是 sys.stdout,即输出异常信息的标准输出。
+
+**参数描述**
+
+* `exc`,exception对象
+
+* `file`,指定输出文件,默认为sys.stdout
diff --git "a/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/uos.md" "b/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/uos.md"
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4f5c55dd9a1d96b8cd00a5308d6db1f6d0f0292d 100644
--- "a/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/uos.md"
+++ "b/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/uos.md"
@@ -0,0 +1,551 @@
+# `uos` - 基本系统服务
+
+`uos`模块包含文件系统访问和挂载构建,该模块实现了CPython模块相应模块的子集。更多信息请参阅阅CPython文档:[os](https://docs.python.org/3.5/library/os.html#module-os)
+
+## 删除文件
+
+### `uos.remove`
+
+```python
+uos.remove(path)
+```
+
+删除文件。
+
+**参数描述**
+
+* `path`,字符串,表示文件名。
+
+## 改变当前目录
+
+### `uos.chdir`
+
+```python
+uos.chdir(path)
+```
+
+改变当前目录。
+
+**参数描述**
+
+* `path`,字符串,表示目录名。
+
+## 获取当前路径
+
+### `uos.getcwd`
+
+```python
+uos.getcwd()
+```
+
+获取当前路径。
+
+**返回值描述**
+
+字符串,当前路径
+
+## 列出指定目录文件
+
+### `uos.listdir`
+
+```python
+uos.listdir( [dir] )
+```
+
+没有参数列出当前目录文件,否则列出给定目录的文件。
+
+**参数描述**
+
+* `dir`为字符串,可选参数,表示目录名,默认为 ‘/’ 目录。
+
+**返回值描述**
+
+元组,列出路径下所有存在的对象(目录&文件)
+
+**示例:**
+
+```python
+>>> uos.listdir()
+[‘file1’, ‘read.txt’, ‘demo.py’]
+```
+
+## 创建新目录
+
+### `uos.mkdir`
+
+```
+uos.mkdir(path)
+```
+
+创建一个新的目录。
+
+**参数描述**
+
+* `path`表示准备创建的目录名。
+
+**示例:**
+
+```python
+>>> uos.mkdir('testdir')
+>>> uos.listdir()
+[‘file1’, ‘read.txt’, ‘demo.py’, 'testdir']
+```
+
+## 重命名文件
+
+### `uos.rename`
+
+```python
+uos.rename(old_path, new_path)
+```
+
+重命名文件。
+
+**参数描述**
+
+* `old_path`,字符串,表示旧文件或目录名,
+* `new_path`,字符串,表示新文件或目录名。
+
+**示例:**
+
+```python
+>>> uos.rename('testdir', 'testdir1')
+```
+
+## 删除指定目录
+
+### `uos.rmdir`
+
+```python
+uos.rmdir(path)
+```
+
+删除指定目录。
+
+**参数描述**
+
+* `path`,字符串,表示目录名。
+
+**示例:**
+
+```python
+>>> uos.rmdir('testdir')
+>>> uos.listdir()
+[‘file1’, ‘read.txt’, ‘demo.py’]
+```
+
+## 列出当前目录参数
+
+### `uos.ilistdir`
+
+```python
+uos.ilistdir( [dir] )
+```
+
+该函数返回一个迭代器,该迭代器会生成所列出条目对应的3元组。
+
+**参数描述**
+
+* `dir`为可选参数,字符串,表示目录名,没有参数时,默认列出当前目录,有参数时,则列出dir参数指定的目录。
+
+**返回值描述**
+
+返回一个迭代器,该迭代器会生成所列出条目对应的3元组
+
+元组的形式为 `(name, type, inode[, size])`:
+
+* `name` 是条目的名称,字符串类型,如果dir是字节对象,则名称为字节;
+* `type` 是条目的类型,整型数,0x4000表示目录,0x8000表示常规文件;
+* `inode`是一个与文件的索引节点相对应的整数,对于没有这种概念的文件系统来说,可能为0;
+* 一些平台可能会返回一个4元组,其中包含条目的size。对于文件条目,size表示文件大小的整数,如果未知,则为-1。对于目录项,其含义目前尚未定义。
+
+## 获取文件或目录的状态
+
+### `uos.stat`
+
+```python
+uos.stat(path)
+```
+
+获取文件或目录的状态。
+
+**参数描述**
+
+* `path`,字符串,表示文件或目录名。
+
+**返回值描述**
+
+返回值是一个元组,返回值形式为:
+
+`(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)`
+
+* `mode` – inode保护模式
+* `ino` – inode节点号
+* `dev` – inode驻留的设备
+* `nlink` – inode的链接数
+* `uid ` – 所有者的用户ID
+* `gid` – 所有者的组ID
+* `size` – 文件大小,单位字节
+* `atime` – 上次访问的时间
+* `mtime` – 最后一次修改的时间
+* `ctime` – 操作系统报告的“ctime”,在某些系统上是最新的元数据更改的时间,在其它系统上是创建时间,详细信息参见平台文档
+
+## 获取文件系统状态信息
+
+### `uos.statvfs`
+
+```python
+uos.statvfs(path)
+```
+
+获取文件系统状态信息。
+
+**参数描述**
+
+* `path`,字符串,表示文件或目录名。
+
+**返回值描述**
+
+返回一个包含文件系统信息的元组:
+
+`(f_bsize, f_frsize, f_blocks, f_bfree, f_bavail, f_files, f_ffree, f_favail, f_flag, f_namemax)`
+
+* `f_bsize` – 文件系统块大小,单位字节
+* `f_frsize` – 分栈大小,单位字节
+* `f_blocks` – 文件系统数据块总数
+* `f_bfree` – 可用块数
+* `f_bavai` – 非超级用户可获取的块数
+* `f_files` – 文件结点总数
+* `f_ffree` – 可用文件结点数
+* `f_favail` – 超级用户的可用文件结点数
+* `f_flag` – 挂载标记
+* `f_namemax` – 最大文件长度,单位字节
+
+**示例:**
+
+```python
+>>> import uos
+>>> res = uos.statvfs("main.py")
+>>> print(res)
+(4096, 4096, 256, 249, 249, 0, 0, 0, 0, 255)
+```
+
+## 获取关于底层信息或其操作系统的信息
+
+### `uos.uname`
+
+```python
+uos.uname()
+```
+
+获取关于底层信息或其操作系统的信息。
+
+**返回值描述**
+
+该接口与micropython官方接口返回值形式有所区别,返回一个元组,形式为:
+
+`(sysname, nodename, release, version, machine)`
+
+* `sysname` – 底层系统的名称,string类型
+* `nodename` – 网络名称(可以与 sysname 相同) ,string类型
+* `release` – 底层系统的版本,string类型
+* `version` – MicroPython版本和构建日期,string类型
+* `machine` – 底层硬件(如主板、CPU)的标识符,string类型
+* `qpyver` – QuecPython 短版本号,string类型
+
+**示例:**
+
+```python
+>>> import uos
+>>> uos.uname()
+('sysname=EC600S-CNLB', 'nodename=EC600S', 'release=1.12.0', 'version=v1.12 on 2020-06-23', 'machine=EC600S with QUECTEL', 'qpyver=V0001')
+>>> uos.uname()[0].split('=')[1] # 可通过这种方式来获取sysname的值
+'EC600S-CNLB'
+```
+
+### `uos.uname2`
+
+```python
+uos.uname2()
+```
+
+获取关于底层信息或其操作系统的信息。
+
+**返回值描述**
+
+该接口与micropython官方接口返回值形式一致。注意与上面uos.uname()接口返回值的区别,返回值形式为:
+
+`(sysname, nodename, release, version, machine, qpyver=)`
+
+* `sysname` – 底层系统的名称,string类型
+* `nodename` – 网络名称(可以与 sysname 相同) ,string类型
+* `release` – 底层系统的版本,string类型
+* `version` – MicroPython版本和构建日期,string类型
+* `machine` – 底层硬件(如主板、CPU)的标识符,string类型
+* `qpyver` – QuecPython 短版本号,string类型
+
+**示例:**
+
+```python
+>>> import uos
+>>> uos.uname2()
+(sysname='EC600S-CNLB', nodename='EC600S', release='1.12.0', version='v1.12 on 2020-06-23', machine='EC600S with QUECTEL', qpyver='V0001')
+>>> uos.uname2().sysname # 可通过这种方式直接获取sysname的值
+'EC600S-CNLB'
+>>> uos.uname2().machine
+'EC600S with QUECTEL'
+```
+
+## 返回具有*n个*随机字节的bytes对象
+
+### `uos.urandom`
+
+```python
+uos.urandom(n)
+```
+
+返回具有*n个*随机字节的bytes对象,只要有可能,它就会由硬件随机数生成器生成。
+
+**参数描述**
+
+* `n`,整形,随机字节的个数
+
+**返回值描述**
+
+具有*n个*随机字节的bytes对象
+
+**示例:**
+
+```python
+>>> import uos
+>>> uos.urandom(5)
+b'\xb3\xc9Y\x1b\xe9'
+```
+
+## 注册存储设备 - SPI - SD卡
+
+> 目前仅EC600N/EC800N平台支持。
+
+### `uos.VfsFat`
+
+```python
+uos.VfsFat(spi_port, spimode, spiclk, spics)
+```
+
+初始化SD卡,和SD卡通信。使用SPI通信方式。
+
+**参数描述**
+
+* `spi_port`,int,通道选择[0,1]
+* `spimode`,int,PI 的工作模式(模式0最常用):`
`0 : CPOL=0, CPHA=0 1 : CPOL=0, CPHA=12: CPOL=1, CPHA=0 3: CPOL=1, CPHA=1
+
+> 时钟极性CPOL: 即SPI空闲时,时钟信号SCLK的电平(0:空闲时低电平; 1:空闲时高电平)
+
+* `spiclk`, int, 时钟频率 0 : 812.5kHz 1 : 1.625MHz 2 : 3.25MHz 3 : 6.5MHz 4 : 13MHz
+* `spics`,int,指定CS片选引脚为任意GPIO,硬件CS可以接这里指定的脚,也可以接默认的SPI CS脚
+
+> 1-n:指定Pin.GPIO1-Pin.GPIOn为CS脚
+
+**返回值描述**
+
+成功则返回VfsFat object,失败则会卡住。
+
+**示例:**
+
+```python
+>>> cdev = uos.VfsFat(1, 0, 4, 1)
+```
+
+## 注册存储设备 - SDIO - SD卡
+
+> 目前仅EC600U/EC200U平台支持。
+
+### `uos.VfsSd`
+
+```python
+uos.VfsSd(str)
+```
+
+初始化SD卡,使用SDIO通信方式。
+
+**参数描述**
+
+* `str`,str, 传入"sd_fs"
+
+**返回值描述**
+
+成功则返回vfs object,失败则会报错。
+
+**引脚说明**
+
+| 平台 | 引脚 |
+| ------ | --------------------------------------------------------------------------------------------------------------- |
+| EC600U | CMD:引脚号48
DATA0:引脚号39
DATA1:引脚号40
DATA2:引脚号49
DATA3:引脚号50
CLK:引脚号132 |
+| EC200U | CMD:引脚号33
DATA0:引脚号31
DATA1:引脚号30
DATA2:引脚号29
DATA3:引脚号28
CLK:引脚号32 |
+
+**示例:**
+
+```python
+>>> from uos import VfsSd
+>>> udev = VfsSd("sd_fs")
+```
+
+## 设置SD卡检测管脚
+
+### `uos.set_det`
+
+```python
+uos.set_det(vfs_obj.GPIOn,mode)
+```
+
+指定sd卡插拔卡的检测管脚和模式。
+
+**参数描述**
+
+* `vfs_obj.GPIOn`,int类型,用于sd卡插拔卡检测的GPIO引脚号,参照Pin模块的定义
+* `mode`,int类型 `
0`:sd卡插上后,检测口为低电平;sd卡取出后,检测口为高电平 `
1`:sd卡插上后,检测口为高电平;sd卡取出后,检测口为低电平
+
+**返回值描述**
+
+成功返回 `0`,失败返回 `-1`。
+
+**示例:**
+
+```python
+>>> from uos import VfsSd
+>>> udev = VfsSd("sd_fs")
+>>> uos.mount(udev, '/sd')
+>>> udev.set_det(udev.GPIO10,0)#使用GPIO10作为卡检测管脚,sd卡插上,检测口为低电平,sd卡取出,检测口为高电平(实际使用根据硬件)
+```
+
+## 设置插拔SD卡回调函数
+
+### `uos.set_callback`
+
+```python
+uos.set_callback(fun)
+```
+
+设定发生插拔卡事件时的用户回调函数。
+
+**参数描述**
+
+* `fun`,function类型,插拔卡回调 `[ind_type]`
+* `ind_type`: 事件类型,0:拔卡 1:插卡
+
+**返回值描述**
+
+成功返回 `0`,失败返回 `-1`。
+
+**SD卡使用示例(SDIO接口)**
+
+> 目前仅EC600U/EC200U平台支持。
+
+**示例:**
+
+```python
+from uos import VfsSd
+import ql_fs
+udev = VfsSd("sd_fs")
+uos.mount(udev, '/sd')
+udev.set_det(udev.GPIO10,0)
+#文件读写
+f = open('/sd/test.txt','w+')
+f.write('1234567890abcdefghijkl')
+f.close()
+uos.listdir('/sd')
+f = open('/sd/test.txt','r')
+f.read()
+f.close()
+#插拔卡回调函数
+def call_back(para):
+ if(para == 1):
+ print("insert")
+ print(uos.listdir('/usr'))
+ print(ql_fs.file_copy('/usr/1.txt','/sd/test.txt'))#复制sd卡里的test.txt内容到usr下的1.txt中
+ print(uos.listdir('/usr'))
+ elif(para == 0):
+ print("plug out")
+
+udev.set_callback(call_back)
+```
+
+## 注册littleFS存储设备 - SPI NOR FLASH
+
+> 目前仅EG915U/EC600N支持
+
+### `uos.VfsLfs1`
+
+```python
+uos.VfsLfs1(readsize,progsize,lookahead,pname,spi_port,spi_clk)
+```
+
+初始化spi nor flash,和外挂nor flash通信。使用SPI通信方式,将此存储设备挂载为littleFS文件系统。
+
+**参数描述**
+
+* readsize,int类型,预留,暂未使用
+* progsize,int类型,预留,暂未使用
+* lookahead,int类型,预留,暂未使用
+* pname,str类型,固定为“ext_fs”。后续扩展
+* spi_port,int类型,支持的端口参照SPI章节说明
+* spi_clk,int类型 `
`时钟频率:`
`0:6.25M 1:12.5M 2:25M 3:50M 4:3.125M 5:1.5625M 6:781.25K
+
+**返回值描述**
+
+成功则返回VfsLfs1 object,失败则 OSError 19。
+
+**示例:**
+
+```python
+>>>ldev = uos.VfsLfs1(32, 32, 32, "ext_fs",1,0)
+>>>uos.mount(ldev,'/ext')
+>>>f = open('/ext/test.txt','w+')
+>>>f.write('hello world!!!')
+>>>f.close()
+
+>>>uos.listdir('ext')
+
+>>>f = open('/ext/test.txt','r')
+>>>f.read()
+>>>f.close()
+
+```
+
+## 挂载文件系统
+
+### `uos.mount`
+
+```python
+uos.mount(vfs_obj, path)
+```
+
+挂载实体文件系统(如littleFS/FATFS等)到虚拟文件系统(VFS)。
+
+**参数描述**
+
+* vfs_obj,vfs object,文件系统对象
+* path,str类型,文件系统的根目录
+
+**示例:**
+
+```python
+>>> cdev = uos.VfsFat(1, 0, 4, 1)
+>>> uos.mount(cdev, '/sd')
+```
+
+**SD卡(SPI接口)使用示例:**
+
+> 目前仅EC600N/EC800N/EC600U/EC200U平台支持。
+
+```python
+>>> cdev = uos.VfsFat(1, 0, 4, 1)
+>>> uos.mount(cdev, '/sd')
+>>> f = open('/sd/test.txt','w+')
+>>> f.write('0123456')
+>>> f.close()
+>>> uos.listdir('/sd')
+>>> f = open('/sd/test.txt','r')
+>>> f.read()
+>>> f.close()
+```
diff --git "a/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/urandom.md" "b/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/urandom.md"
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c7625bf803bc11424b827ee636e1addd527b6cab 100644
--- "a/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/urandom.md"
+++ "b/docs/API_reference/zh/QuecPython\346\240\207\345\207\206\345\272\223/urandom.md"
@@ -0,0 +1,266 @@
+# `urandom` - 生成随机数
+
+urandom 模块提供了生成随机数的工具。
+
+## 随机生成对象 obj 中的元素
+
+### `urandom.choice`
+
+```python
+urandom.choice(obj)
+```
+
+随机生成对象 obj 中的元素,obj 类型 string。
+
+**参数描述**
+
+* `obj`,str类型
+
+**返回值描述**
+
+`obj`中随机某个元素,str
+
+**示例**:
+
+```
+>>> import urandom
+>>> urandom.choice("QuecPython")
+'t'
+```
+
+## 随机产生一个在k bits范围内的十进制数
+
+### `urandom.getrandbits`
+
+```python
+urandom.getrandbits(k)
+```
+
+随机产生一个在k bits范围内的十进制数。
+
+**参数描述**
+
+* `k`,int类型,表示范围(单位bit)
+
+**返回值描述**
+
+int类型,在k bits范围内的十进制随机数
+
+**示例**:
+
+```
+>>> import urandom
+>>> urandom.getrandbits(1) #1位二进制位,范围为0~1(十进制:0~1)
+1
+>>> urandom.getrandbits(1)
+0
+>>> urandom.getrandbits(8) #8位二进制位,范围为0000 0000~1111 11111(十进制:0~255)
+224
+```
+
+## 随机生成一个 start 到 end 之间的整数
+
+### `urandom.randint`
+
+```
+urandom.randint(start, end)
+```
+
+随机生成一个 start 到 end 之间的整数。
+
+**参数描述**
+
+* `start`,int类型,区间最小值
+* `end`,int类型,区间最大值
+
+**返回值描述**
+
+int类型,在`start `到 `end` 之间的随机整数
+
+**示例**:
+
+```
+>>> import urandom
+>>> urandom.randint(1, 4)
+4
+>>> urandom.randint(1, 4)
+2
+```
+
+## 随机生成一个 0 到 1 之间的浮点数
+
+### `urandom.random`
+
+```python
+urandom.random()
+```
+
+随机生成一个 0 到 1 之间的浮点数。
+
+**返回值描述**
+
+浮点数,在0 到 1 之间。
+
+**示例**:
+
+```
+>>> import urandom
+>>> urandom.random()
+0.8465231
+```
+
+## 随机生成 start 到 end 间并且递增为 step 的正整数
+
+### `urandom.randrange`
+
+```python
+urandom.randrange(start, end, step)
+```
+
+随机生成 start 到 end 间并且递增为 step 的正整数。
+
+**参数描述**
+
+* `start`,int类型,区间最小值
+* `end`,int类型,区间最大值
+* `step`,int类型,递增长度
+
+**返回值描述**
+
+int类型,在 `start `到 `end` 之间的随机整数
+
+**示例**:
+
+```
+>>> import urandom
+>>> urandom.randrange(0, 8, 2)
+0
+>>> urandom.randrange(0, 8, 2)
+6
+```
+
+## 指定随机数种子
+
+### `urandom.seed`
+
+```python
+urandom.seed(sed)
+```
+
+指定随机数种子,通常和其它随机数生成函数搭配使用。
+
+**参数描述**
+
+* `sed`,int类型,区间最小值
+
+**示例**:
+
+```python
+>>> import urandom
+>>> urandom.seed(20) #指定随机数种子
+>>> for i in range(0, 15): #生成0~15范围内的随机序列
+... print(urandom.randint(1, 10))
+...
+8
+10
+9
+10
+2
+1
+9
+3
+2
+2
+6
+1
+10
+9
+6
+```
+
+## 随机生成 start 到 end 范围内的浮点数
+
+### `urandom.uniform`
+
+```python
+urandom.uniform(start, end)
+```
+
+**参数描述**
+
+* `start`,任意实数类型,区间最小值
+* `end`,任意实数类型,区间最大值
+
+**返回值描述**
+
+浮点数类型,在 `start `到 `end` 之间的随机整数
+
+**示例**:
+
+```
+>>> import urandom
+>>> urandom.uniform(3, 5)
+3.219261
+>>> urandom.uniform(3, 5)
+4.00403
+```
+
+**使用示例**
+
+```python
+'''
+@Author: Baron
+@Date: 2020-06-22
+@LastEditTime: 2020-06-22 17:16:20
+@Description: example for module urandom
+@FilePath: example_urandom_file.py
+'''
+import urandom as random
+import log
+import utime
+
+'''
+下面两个全局变量是必须有的,用户可以根据自己的实际项目修改下面两个全局变量的值
+'''
+PROJECT_NAME = "QuecPython_Random_example"
+PROJECT_VERSION = "1.0.0"
+
+log.basicConfig(level=log.INFO)
+random_log = log.getLogger("random")
+
+
+if __name__ == '__main__':
+ # urandom.randint(start, end)
+ # 随机1 ~ 4之间
+ num = random.randint(1, 4)
+ random_log.info(num)
+
+ # random between 0~1
+ num = random.random()
+ random_log.info(num)
+
+ # urandom.unifrom(start, end)
+ # 在开始和结束之间生成浮点数
+ num = random.uniform(2, 4)
+ random_log.info(num)
+
+ # urandom.randrange(start, end, step)
+ # 2-bit binary,the range is [00~11] (0~3)
+ num = random.getrandbits(2)
+ random_log.info(num)
+
+ # 8-bit binary,the range is [0000 0000~1111 11111] (0~255)
+ num = random.getrandbits(8)
+ random_log.info(num)
+
+ # urandom.randrange(start, end, step)
+ # 从开始到结束随机生成递增的正整数
+ num = random.randrange(2, 8, 2)
+ random_log.info(num)
+
+ # urandom.choice(obj)
+ # 随机生成对象中元素的数量
+ num = random.choice("QuecPython")
+ random_log.info(num)
+
+```
diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/README.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/README.md"
index 89f7673194152e4dcd4500e241e3ac540dece9ad..09511d64b70a19fc8618aa0c062308025c46896e 100644
--- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/README.md"
+++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/README.md"
@@ -12,6 +12,11 @@
- [wifilocator - WiFi定位](./wifilocator.md)
- [atcmd - 发送AT指令](./atcmd.md)
- [machine - 硬件相关功能](./machine.md)
+- [pm - 低功耗相关功能](./pm.md)
+- [modem - 设备相关功能](./modem.md)
+- [quecgnss - 内置GNSS相关功能](./quecgnss.md)
+- [gnss - GNSS相关功能](./gnss.md)
+- [securedata - 安全数据区相关功能](./securedata.md)
- [...](./....md)
diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/example.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/example.md"
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..373fb4b4d1ddf4334daa8531b0a7fddc489e207f 100644
--- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/example.md"
+++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/example.md"
@@ -0,0 +1,47 @@
+# `example` - 执行python脚本
+
+模块功能:提供方法让用户可以在命令行或者代码中执行python脚本。
+
+### `example.exec`
+
+```python
+example.exec(filePath)
+```
+
+执行指定的python脚本文件。
+
+**参数描述**
+
+* `filePath`,string类型, 要执行python脚本文件的绝对路径
+
+**示例**
+
+```python
+# 假设有文件test.py,内容如下
+
+def myprint():
+ count = 10
+ while count > 0:
+ count -= 1
+ print('##### test #####')
+
+myprint()
+
+#将test.py文件上传到模块中,进入命令行执行如下代码
+>>> uos.listdir('/usr/')
+['apn_cfg.json', 'test.py']
+>>> import example
+>>> example.exec('/usr/test.py')
+# 执行结果如下
+
+##### test #####
+##### test #####
+##### test #####
+##### test #####
+##### test #####
+##### test #####
+##### test #####
+##### test #####
+##### test #####
+##### test #####
+```
diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/gnss.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/gnss.md"
new file mode 100644
index 0000000000000000000000000000000000000000..dee1a610ab2e1cd3a72a516ff0b9ae1ae055e84d
--- /dev/null
+++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/gnss.md"
@@ -0,0 +1,365 @@
+# `gnss` - 外置GNSS
+
+对L76K GPS型号(或数据类型与之类似的GPS模组)进行数据获取,可以得到模块定位是否成功,定位的经纬度数据,UTC授时时间,获取GPS模块的定位模式,获取GPS模块定位使用卫星数量,获取GPS模块定位可见卫星数量,获取定位方位角,GPS模块对地速度,模块定位大地高等数据信息。目前,该模块提供的功能接口,所获取的数据都来源于从串口读出的原始GNSS数据包中的GNGGA、GNRMC和GPGSV语句。
+
+注意:当前仅EC600S/EC600N/EC800N/200U/600U/600M/800M模块支持该功能。
+
+## 创建gnss对象
+
+### `gnss.GnssGetData`
+
+```python
+gnss.GnssGetData(uartn,baudrate,databits,parity,stopbits,flowctl)
+```
+
+创建获取GNSS的对象,参数为挂载GNSS模块的串口以及通信参数
+
+**参数描述**
+
+* `uartn`,int类型
+ UARTn范围为0-3:
+ `0`-UART0 - DEBUG PORT
+ `1`-UART1 – BT PORT
+ `2`-UART2 – MAIN PORT
+ `3`-UART3 – USB CDC PORT
+* `baudrate`,int类型,常用波特率都支持,如4800、9600、19200、38400、57600、115200、230400等
+* `databits`,int类型,数据位(5 ~ 8),ECX00U系列平台当前仅支持8位
+* `parity`,int类型,奇偶校验(0 – NONE,1 – EVEN,2 - ODD)
+* `stopbits`,int类型,停止位(1 ~ 2)
+* `flowctl`,int类型,硬件控制流(0 – FC_NONE, 1 – FC_HW)
+
+**返回值描述**
+gnss类的对象
+
+**示例**
+
+```python
+from gnss import GnssGetData
+gnss = GnssGetData(1, 9600, 8, 0, 1, 0)
+```
+
+## 读取GNSS数据并解析
+
+### `gnss.read_gnss_data`
+
+```python
+gnss.read_gnss_data(max_retry=1, debug=0)
+```
+
+从串口读取GNSS数据,返回数据长度
+
+**参数描述**
+
+* `max_retry`,int类型,可选参数,可不填该参数,默认为1;表示当读取的GNSS无效时,自动重新读取的最大尝试次数,如果读取数据长度为0(即没有读取到数据)则直接退出。
+* `debug`,int类型, 可选参数,可不填该参数,默认为0;表示在读取解析GNSS数据过程中,是否输出一些调试信息,为0表示不输出详细信息,为1表示输出详细信息。
+
+**返回值描述**
+
+返回从串口读取的GNSS数据长度,int类型,单位字节。
+
+**示例**
+
+```python
+#=========================================================================
+gnss.read_gnss_data() # 使用默认设置,仅读取一次,不输出详细调试信息
+4224 # 读取数据成功,并解析GNGGA、GNRMC和GPGSV语句都成功,直接返回读取的原始数据长度
+#=========================================================================
+gnss.read_gnss_data() # 使用默认设置,仅读取一次,不输出详细调试信息
+GNGGA data is invalid. # 读取数据成功,获取的GNGGA定位数据无效
+GNRMC data is invalid. # 读取数据成功,获取的GNRMC定位数据无效
+648 # 返回读取的原始数据长度
+#=========================================================================
+gnss.read_gnss_data(max_retry=3) # 设置最大自动读取次数为3次
+Not find GPGSV data or GPGSV data is invalid. # 第1次读取,GPGSV数据未找到或无效
+continue read. # 继续读取下一包数据
+Not find GNGGA data. # 第2次读取,没有找到GNGGA数据
+Not find GNRMC data. # 第2次读取,没有找到GNRMC数据
+continue read. # 继续尝试读取下一包
+Not find GNGGA data. # 第3次读取,没有找到GNGGA数据
+Not find GNRMC data. # 第3次读取,没有找到GNRMC数据
+continue read. # 第3次依然失败,准备继续读取,判断出已经达到最大尝试次数,退出
+128
+#=========================================================================
+gnss.read_gnss_data(debug=1) # 设置读取解析过程输出详细信息
+GGA data : ['GNGGA', '021224.000', '3149.27680', 'N', '11706.93369', 'E', '1', '19', '0.9', '168.2', 'M', '-5.0', 'M', '', '*52'] # 输出从原始GNSS数据中匹配到并简单处理后的GNGGA数据
+RMC data : ['GNRMC', '021224.000', 'A', '3149.27680', 'N', '11706.93369', 'E', '0.00', '153.28', '110122', '', '', 'A', 'V*02'] # 输出从原始GNSS数据中匹配到并简单处理后的GNRMC数据
+total_sen_num = 3, total_sat_num = 12 # 输出一组完整GPGSV语句总条数和可视卫星数量
+# 下面是具体的匹配到的GPGSV语句信息
+[0] : ['$GPGSV', '3', '1', '12', '10', '79', '210', '35', '12', '40', '070', '43', '21', '08', '305', '31', '23', '46', '158', '43', '0*6E']
+[1] : ['$GPGSV', '3', '2', '12', '24', '', '', '26', '25', '54', '125', '42', '31', '', '', '21', '32', '50', '324', '34', '0*64']
+[2] : ['$GPGSV', '3', '3', '12', '193', '61', '104', '44', '194', '58', '117', '42', '195', '05', '162', '35', '199', '', '', '32', '0*54']
+4224
+```
+
+## 获取读取的原始GNSS数据
+
+### `gnss.getOriginalData`
+
+```python
+gnss.getOriginalData()
+```
+
+该接口用于返回从串口读取的原始GNSS数据,如果用户希望拿到原始GNSS数据,自己进行处理或者进行一些数据确认,可以通过该接口来获取。该接口在每次调用 `gnss.read_gnss_data(max_retry=1, debug=0)`接口后,返回的即本次读取的原始数据。
+
+**返回值描述**
+
+返回从串口读取的原始GNSS数据,string类型。
+
+**示例**
+
+```python
+data = gnss.getOriginalData()
+print(data)
+# 数据量较大,仅列出部分结果
+00,A,3149.28094,N,11706.93869,E,0.00,153.28,110122,,,A,V*04
+$GNVTG,153.28,T,,M,0.00,N,0.00,K,A*2E
+$GNZDA,021555.000,11,01,2022,00,00*4D
+$GPTXT,01,01,01,ANTENNA OK*35
+$GNGGA,021556.000,3149.28095,N,11706.93869,E,1,24,0.6,166.5,M,-5.0,M,,*5E
+$GNGLL,3149.28095,N,11706.93869,E,021556.000,A,A*47
+$GNGSA,A,3,10,12,21,23,24,25,32,193,194,195,199,,1.0,0.6,0.8,1*35
+$GNGSA,A,3,01,04,07,09,14,21,22,24,38,39,42,45,1.0,0.6,0.8,4*36
+...
+$GNGGA,021600.000,3149.28096,N,11706.93877,E,1,25,0.6,166.4,M,-5.0,M,,*52
+$GNGLL,3149.28096,N,11706.93877,E,021600.000,A,A*4B
+$GNGSA,A,3,10,12,21,23,24,25,31,32,193,194,195,199,1.0,0.6,0.8,1*37
+$GNGSA,A,3,01,04,07,09,$GNGGA,021601.000,3149.28096,N,11706.93878,E,1,25,0.6,166.4,M,-5.0,M,,*5C
+$GNGLL,3149.2809
+```
+
+## 检查本次读取解析结果有效性
+
+### `gnss.checkDataValidity`
+
+```python
+gnss.checkDataValidity()
+```
+
+GNSS模块提供的功能接口,所获取的数据都来源于从串口读出的原始GNSS数据包中的GNGGA、GNRMC和GPGSV语句,该接口用于检查读取的一包GNSS数据中,GNGGA、GNRMC和GPGSV语句的有效性。
+
+**返回值描述**
+
+返回一个元组,形式为 ` (gga_valid, rmc_valid, gsv_valid)`
+
+`gga_valid` - 表示本次读取解析,是否匹配到GNGGA数据并解析成功,0表示没有匹配到GNGGA数据或数据无效,1表示有效;
+
+`rmc_valid` - 表示本次读取解析,是否匹配到GNRMC数据并解析成功,0表述没有匹配到GNRMC数据或数据无效,1表示有效;
+
+`gsv_valid` - 表示本地读取解析,是否匹配到GPGSV数据并解析成功,0表示没有匹配到GPGSV数据或数据无效,1表示有效。
+
+如果用户只关心定位结果,即GNGGA数据是否有效,只要gga_valid参数为1即可(或者通过gnss.isFix()接口来判断定位是否成功),不一定要三个参数都为1;解析GNRMC数据是为了获取对地速度,解析GPGSV数据是为了获取可视卫星数量以及这些卫星对应的方位角,所以用户如果不关心这些参数,可忽略rmc_valid和gsv_valid。
+
+**示例**
+
+```python
+gnss.checkDataValidity()
+(1, 1, 1) # 说明本次读取解析,GNGGA、GNRMC和GPGSV这三种数据都匹配成功并解析成功
+```
+
+## 检查是否定位成功
+
+### `gnss.isFix`
+
+```python
+gnss.isFix()
+```
+
+检查指定串口是否读取到有效GNSS信息
+
+**返回值描述**
+
+`1`:定位成功
+
+`0`:定位失败
+
+**示例**
+
+```
+gnss.isFix()
+1
+```
+
+## 获取定位的UTC时间
+
+### `gnss.getUtcTime`
+
+```python
+gnss.getUtcTime()
+```
+
+获取GNSS信息中携带的时间
+
+**返回值描述**
+
+成功返回UTC时间,字符串类型,失败返回整型`-1`。
+
+**示例**
+
+```python
+gnss.getUtcTime()
+'06:22:05.000' # hh:mm:ss.sss
+```
+
+## 获取GPS模块定位模式
+
+### `gnss.getLocationMode`
+
+```python
+gnss.getLocationMode()
+```
+
+获取GNSS信息中携带的定位模式
+
+**返回值描述**
+
+| 返回值 | 描述 |
+| ------ | ---------------------------------------- |
+| -1 | 获取失败,串口未读到数据或未读到有效数据 |
+| 0 | 定位不可用或者无效 |
+| 1 | 定位有效,定位模式:GPS、SPS 模式 |
+| 2 | 定位有效,定位模式: DGPS、DSPS 模式 |
+| 6 | 估算(航位推算)模式 |
+
+**示例**
+
+```python
+gnss.getLocationMode()
+1
+```
+
+## 获取GPS模块定位使用卫星数量
+
+### `gnss.getUsedSateCnt`
+
+```python
+gnss.getUsedSateCnt()
+```
+
+获取GNSS信息中携带的使用卫星数量
+
+**返回值描述**
+
+成功返回GPS模块定位使用卫星数量,返回值类型为整型,失败返回整型`-1`。
+
+**示例**
+
+```
+gnss.getUsedSateCnt()
+24
+```
+
+## 获取GPS模块定位的经纬度信息
+
+### `gnss.getLocation`
+
+```python
+gnss.getLocation()
+```
+
+获取GNSS信息中携带的经纬度信息
+
+**返回值描述**
+
+成功返回GPS模块定位的经纬度信息,失败返回整型`-1`;成功时返回值格式如下:
+
+`(longitude, lon_direction, latitude, lat_direction)`
+
+`longitude` - 经度,float型
+
+`lon_direction` - 经度方向,字符串类型,E表示东经,W表示西经
+
+`latitude` - 纬度,float型
+
+`lat_direction` - 纬度方向,字符串类型,N表示北纬,S表示南纬
+
+**示例**
+
+```python
+gnss.getLocation()
+(117.1156448333333, 'E', 31.82134916666667, 'N')
+```
+
+## 获取GPS模块定位可见卫星数量
+
+### **`gnss.getViewedSateCnt`**
+
+```python
+gnss.getViewedSateCnt()
+```
+
+获取GNSS信息中携带的可见卫星数量
+
+**返回值描述**
+
+成功返回GPS模块定位可见卫星数量,整型值,失败返回整型-1。
+
+**示例**
+
+```python
+gnss.getViewedSateCnt()
+12
+```
+
+## 获取可视的GNSS卫星方位角
+
+### **`gnss.getCourse`**
+
+```python
+gnss.getCourse()
+```
+
+获取GNSS信息中携带的卫星方位角
+
+**返回值描述**
+返回所有可视的GNSS卫星方位角,范围:`0 ~ 359`,以正北为参考平面。返回形式为字典,其中key表示卫星编号,value表示方位角。要注意,value的值可能是一个整型值,也可能是"",这取决于原始的GNSS数据中GPGSV语句中方位角是否有值。返回值形式如下:
+
+`{key:value, ..., key:value}`
+
+**示例**
+
+```python
+ gnss.getCourse()
+{'10': 204, '195': 162, '12': 68, '193': 105, '32': 326, '199': 162, '25': 122, '31': 247, '24': 52, '194': 116, '21': 304, '23': 159}
+```
+
+## 获取GPS模块定位海拔高度
+
+### **`gnss.getGeodeticHeight`**
+
+```python
+gnss.getGeodeticHeight()
+```
+
+获取GNSS信息中携带的海拔高度
+
+**返回值描述**
+
+成功返回浮点类型海拔高度(单位:米),失败返回整型`-1`。
+
+**示例**
+
+```python
+gnss.getGeodeticHeight()
+166.5
+```
+
+## 获取GPS模块对地速度
+
+### `gnss.getSpeed`
+
+```python
+gnss.getSpeed()
+```
+
+获取GNSS信息中携带的对地速度
+
+**返回值描述**
+
+成功返回GPS模块对地速度(单位:KM/h),浮点类型,失败返回整型`-1`
+
+**示例**
+
+```python
+gnss.getSpeed()
+0.0
+```
diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/modem.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/modem.md"
new file mode 100644
index 0000000000000000000000000000000000000000..b53d30ba293a308a1137e36ece15a2cf85e447b0
--- /dev/null
+++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/modem.md"
@@ -0,0 +1,109 @@
+# `modem` - 设备相关
+
+modem模块提供读取设备信息的方法
+
+## 获取设备的IMEI
+
+### `modem.getDevImei`
+
+```python
+modem.getDevImei()
+```
+
+获取设备的IMEI。
+
+**返回值描述**
+
+成功返回string类型设备的IMEI,失败返回整型值 `-1`。
+
+**示例**
+
+```python
+>>> import modem
+>>> modem.getDevImei()
+'866327040830317'
+```
+
+## 获取设备型号
+
+### `modem.getDevModel`
+
+```python
+modem.getDevModel()
+```
+
+获取设备型号。
+
+****返回值描述****
+
+ 成功返回string类型设备型号,失败返回整型值 `-1`。
+
+**示例**
+
+```python
+>>> modem.getDevModel()
+'EC100Y'
+```
+
+## 获取设备序列号
+
+### `modem.getDevSN`
+
+```python
+modem.getDevSN()
+```
+
+获取设备序列号。
+
+**返回值描述**
+
+ 成功返回string类型设备序列号,失败返回整型值 `-1`。
+
+**示例**
+
+```python
+>>> modem.getDevSN()
+'D1Q20GM050038341P'
+```
+
+## 获取固件版本号
+
+### `modem.getDevFwVersion`
+
+```python
+modem.getDevFwVersion()
+```
+
+获取设备固件版本号。
+
+****返回值描述****
+
+ 成功返回string类型固件版本号,失败返回整型值 `-1`。
+
+**示例**
+
+```python
+>>> modem.getDevFwVersion()
+'EC100YCNAAR01A01M16_OCPU_PY'
+```
+
+## 获取设备制造商ID
+
+### `modem.getDevProductId`
+
+```python
+modem.getDevProductId()
+```
+
+获取设备的制造商ID。
+
+**返回值描述**
+
+ 成功返回设备制造商ID,失败返回整型值`-1`。
+
+**示例**
+
+```python
+>>> modem.getDevProductId()
+'Quectel'
+```
diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/pm.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/pm.md"
new file mode 100644
index 0000000000000000000000000000000000000000..9cf1268ffa53fecbcd1053c5ff21db002608f450
--- /dev/null
+++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/pm.md"
@@ -0,0 +1,238 @@
+# `pm` - 低功耗
+
+在无业务处理时使系统进入休眠状态,进入低功耗模式。
+
+## 创建wake_lock锁
+
+### `pm.create_wakelock`
+
+```python
+pm.create_wakelock(lock_name, name_size)
+```
+
+创建wake_lock锁。
+
+**参数描述**
+
+* `lock_name`,自定义lock名,string类型,
+* `name_size`, lock_name的长度, int类型
+
+**返回值描述**
+
+成功返回wakelock的标识号,否则返回 `-1`。
+
+> **注意**:BC25PA平台不支持此方法。
+
+## 删除wake_lock锁
+
+### `pm.delete_wakelock`
+
+```python
+pm.delete_wakelock(lpm_fd)
+```
+
+删除wake_lock锁。
+
+**参数描述**
+
+* `lpm_fd`,需要删除的锁对应标识id,int类型
+
+**返回值描述**
+
+成功返回 `0`。
+
+> **注意**:BC25PA平台不支持此方法。
+
+## 加锁
+
+### `pm.wakelock_lock`
+
+```python
+pm.wakelock_lock(lpm_fd)
+```
+
+将指定的wakelock置于锁定状态,存在锁定状态的锁时,模组不会进入低功耗状态
+
+**参数描述**
+
+* `lpm_fd`,需要执行加锁操作的wakelock标识id,int类型
+
+**返回值描述**
+
+成功返回 `0`,否则返回 `-1`。
+
+> **注意**:BC25PA平台不支持此方法。
+
+## 释放锁
+
+### `pm.wakelock_unlock`
+
+```python
+pm.wakelock_unlock(lpm_fd)
+```
+
+释放锁,所有wakelock被释放时,模组才允许进入低功耗
+
+**参数描述**
+
+* `lpm_fd`,需要执行释放锁操作的wakelock标识id,int类型
+
+**返回值描述**
+
+成功返回 `0`,否则返回 `-1`。
+
+> **注意**:BC25PA平台不支持此方法。
+
+## 自动休眠模式控制
+
+### `pm.autosleep`
+
+```python
+pm.autosleep(sleep_flag)
+```
+
+自动休眠模式控制
+
+**参数描述**
+
+* `sleep_flag`,`0`关闭自动休眠, `1`开启自动休眠,int类型
+
+**返回值描述**
+
+成功返回 `0`,失败返回 `-1`
+
+## 获取已创建的锁数量
+
+### `pm.get_wakelock_num`
+
+```python
+pm.get_wakelock_num()
+```
+
+获取已创建的锁数量
+
+**返回值描述**
+
+int类型,返回已创建wakelock锁的数量。
+
+> 注意:BC25PA平台不支持此方法。
+
+## 设置PSM模式的控制时间
+
+### `pm.set_psm_time`
+
+```python
+pm.set_psm_time(tau_uint,tau_time,act_uint,act_time) # 设置并启用PSM <模式1>
+
+pm.set_psm_time(mode)# 单独设置启用或禁用 <模式2>
+```
+
+**参数描述**
+
+* `mode`,是否启用PSM,int类型:
+ `0 `禁用PSM
+ `1 `启用PSM
+ `2 `(仅BC25平台)禁用PSM并删除PSM的所有参数,如有默认值,则重置默认值。(注意此种模式禁用的情况下,如果要启用PSM必须用**模式1**,用**模式2**没有任何的意义,因为设置的TAU和ACT时间全部清零了)。
+* `tau_uint`,tau(T3412)定时器单位,int类型
+
+| tau定时器单位值 | 类型 | 单位值说明 |
+| --------------- | ---- | ------------ |
+| 0 | int | 10 分钟 |
+| 1 | int | 1 小时 |
+| 2 | int | 10 小时 |
+| 3 | int | 2 秒 |
+| 4 | int | 30 秒 |
+| 5 | int | 1 分钟 |
+| 6 | int | 320 小时 |
+| 7 | int | 定时器被停用 |
+
+* `tau_time`,tau(T3412)定时器时间周期值,int类型
+* `act_uint`,act(T3324)定时器单位,int类型
+
+| act定时器单位值 | 类型 | 单位值说明 |
+| --------------- | ---- | ------------ |
+| 0 | int | 2 秒 |
+| 1 | int | 1 分钟 |
+| 2 | int | 6 分钟 |
+| 7 | int | 定时器被停用 |
+
+* `act_time`,act(T3324)定时器时间周期值,int类型
+
+> **注意:**实际设置的tau和act,为单位值和周期值的积
+
+**返回值描述**
+
+`True: ` 成功
+`False:` 失败
+
+**示例**
+
+```python
+>>> import pm
+>>> pm.set_psm_time(1,2,1,4) #设置tau定时器周期为 1小时 * 2 = 2小时, act定时器周期值为 1分钟 * 4 = 4分钟。
+True
+>>>
+```
+
+> **注意**:仅BC25/ECX00U/ECX00E支持
+
+## 获取PSM模式的控制时间
+
+### `pm.get_psm_time`
+
+```python
+pm.get_psm_time()
+```
+
+**返回值描述**
+
+成功:返回值为list类型,说明如下:
+
+| 参数 | 类型 | 单位值说明 |
+| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------- |
+| list[0] | int | mode说明:
0-禁用PSM.
1-启用PSM.
2-(仅BC25平台)禁用 PSM 并删除 PSM 的所有参数,若有默认值,则重置为默认值。 |
+| list[1] | int | tau定时器单位 |
+| list[2] | int | tau定时器时间周期值 |
+| list[3] | int | act定时器单位 |
+| list[4] | int | act定时器时间周期值 |
+
+失败:返回 `None`。
+
+**示例**
+
+```python
+>>> pm.get_psm_time()
+
+[1, 1, 1, 1, 2]
+
+
+```
+
+> **注意**:仅BC25/ECX00U/ECX00E平台支持
+
+**使用示例**
+
+模拟测试,实际开发请根据业务场景选择使用!
+
+```python
+import pm
+import utime
+
+# 创建wakelock锁
+lpm_fd = pm.create_wakelock("test_lock", len("test_lock"))
+# 设置自动休眠模式
+pm.autosleep(1)
+
+# 模拟测试,实际开发请根据业务场景选择使用
+while 1:
+ utime.sleep(20) # 休眠
+ res = pm.wakelock_lock(lpm_fd)
+ print("ql_lpm_idlelock_lock, g_c1_axi_fd = %d" %lpm_fd)
+ print("unlock sleep")
+ utime.sleep(20)
+ res = pm.wakelock_unlock(lpm_fd)
+ print(res)
+ print("ql_lpm_idlelock_unlock, g_c1_axi_fd = %d" % lpm_fd)
+ num = pm.get_wakelock_num() # 获取已创建锁的数量
+ print(num)
+```
diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/quecgnss.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/quecgnss.md"
new file mode 100644
index 0000000000000000000000000000000000000000..5561732e8c4e26aca13502b88a0c37cd116de616
--- /dev/null
+++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/quecgnss.md"
@@ -0,0 +1,143 @@
+# `quecgnss` - 内置GNSS
+
+此模块提供内置GNSS的使用接口
+
+> **说明**:当前仅 EC200UCNAA/EC200UCNLA/EC200UEUAA/EC800MCNGA/EC800GCNGA 型号支持该功能。
+
+## GNSS 功能初始化
+
+### **`quecgnss.init`**
+
+```python
+quecgnss.init()
+```
+
+模组内置GNSS模块功能的初始化。
+
+**返回值描述**
+成功返回整形`0`,失败返回整形`-1`。
+
+## GNSS 工作状态获取
+
+### **`quecgnss.get_state`**
+
+```python
+quecgnss.get_state()
+```
+
+获取GNSS模块当前工作状态
+
+**返回值描述**
+
+| 返回值 | 类型 | 说明 |
+| ------ | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 0 | int | GNSS模块处于关闭状态 |
+| 1 | int | GNSS模块固件升级中 |
+| 2 | int | GNSS模块定位中,这种模式下即可开始读取GNSS定位数据,定位数据是否有效需要用户获取到定位数据后,解析对应语句来判断,比如判断GNRMC语句的status是 A 还是 V,A 表示定位有效,V 表示定位无效。 |
+
+## GNSS开关
+
+### `quecgnss.gnssEnable`
+
+```python
+quecgnss.gnssEnable(opt)
+```
+
+开启或者关闭GNSS模块。如果是上电后第一次使用内置GNSS功能,一般不需要调用该接口来开启GNSS功能,直接调用init()接口即可,init() 接口在初始化时会自动开启GNSS功能。
+
+**参数描述**
+
+`opt`,int类型
+
+ `0` - 关闭GNSS功能
+
+ `1` - 开启GNSS功能
+
+**返回值描述**
+
+成功返回整形 `0`,失败返回整形 `-1`。
+
+## GNSS定位数据获取
+
+### `quecgnss.read`
+
+```python
+quecgnss.read(size)
+```
+
+读取GNSS定位数据。
+
+**参数描述**
+
+`size`,int类型,指定读取数据的大小,单位字节。
+
+**返回值描述**
+
+成功返回一个元组,失败返回整形-1。元组形式如下:
+`(size, data)`
+`size` - 实际读取数据的大小
+`data` - GNSS定位数据
+
+**GNSS使用示例**
+
+```python
+import quecgnss
+
+
+def main():
+ ret = quecgnss.init()
+ if ret == 0:
+ print('GNSS init ok.')
+ else:
+ print('GNSS init failed.')
+ return -1
+ data = quecgnss.read(4096)
+ print(data[1].decode())
+
+ quecgnss.gnssEnable(0)
+
+
+if __name__ == '__main__':
+ main()
+
+
+#===================================================================================================
+#运行结果
+167,169,170,,,,,,,,1.773,1.013,1.455*15
+$GPGSV,2,1,8,3,23,303,34,16,32,219,28,22,74,98,26,25,16,43,25*77
+$GPGSV,2,2,8,26,70,236,28,31,59,12,38,32,55,127,34,4,5,,21*49
+$BDGSV,2,1,8,163,51,192,32,166,70,11,31,167,52,197,32,169,59,334,31*61
+$BDGSV,2,2,8,170,40,205,31,161,5,,31,164,5,,27,165,5,,29*59
+$GNRMC,022326.000,A,3149.324624,N,11706.921702,E,0.000,261.541,180222,,E,A*38
+$GNGGA,022326.000,3149.324624,N,11706.921702,E,1,12,1.013,-8.580,M,0,M,,*47
+$GNGLL,3149.324624,N,11706.921702,E,022326.000,A,A*44
+$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.773,1.013,1.455*1C
+$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.773,1.013,1.455*15
+$GPGSV,2,1,8,3,23,303,34,16,32,219,27,22,74,98,26,25,16,43,25*78
+$GPGSV,2,2,8,26,70,236,28,31,59,12,37,32,55,127,34,4,5,,20*47
+$BDGSV,2,1,8,163,51,192,32,166,70,11,31,167,52,197,32,169,59,334,31*61
+$BDGSV,2,2,8,170,40,205,31,161,5,,31,164,5,,27,165,5,,29*59
+$GNRMC,022327.000,A,3149.324611,N,11706.921713,E,0.000,261.541,180222,,E,A*3F
+$GNGGA,022327.000,3149.324611,N,11706.921713,E,1,12,1.013,-8.577,M,0,M,,*48
+$GNGLL,3149.324611,N,11706.921713,E,022327.000,A,A*43
+...... # 数据较多,省略
+$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.837,1.120,1.456*11
+$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.837,1.120,1.456*18
+$GPGSV,2,1,8,3,23,302,27,16,32,220,26,22,73,101,27,25,16,43,27*45
+$GPGSV,2,2,8,26,70,237,28,31,59,13,33,32,54,128,28,4,5,,24*44
+$BDGSV,2,1,8,163,51,192,33,166,71,11,35,167,52,198,33,169,59,334,34*6E
+$BDGSV,2,2,8,170,40,205,32,161,5,,33,164,5,,28,165,5,,30*5F
+$GNRMC,022507.000,A,3149.324768,N,11706.922344,E,0.000,261.541,180222,,E,A*31
+$GNGGA,022507.000,3149.324768,N,11706.922344,E,1,12,1.120,-8.794,M,0,M,,*48
+$GNGLL,3149.324768,N,11706.922344,E,022507.000,A,A*4D
+$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.837,1.120,1.455*12
+$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.837,1.120,1.455*1B
+$GPGSV,2,1,8,3,23,302,26,16,32,220,26,22,73,101,27,25,16,43,26*45
+$GPGSV,2,2,8,26,70,237,28,31,59,13,32,32,54,128,28,4,5,,24*45
+$BDGSV,2,1,8,163,51,192,24,166,71,11,35,167,52,198,33,169,59,334,34*68
+$BDGSV,2,2,8,170,40,205,31,161,5,,33,164,5,,28,165,5,,30*5C
+$GNRMC,022508.000,A,3149.324754,N,11706.922338,E,0.002,261.541,180222,,E,A*38
+$GNGGA,022508.000,3149.324754,N,11706.922338,E,1,12,1.120,-8.750,M,0,M,,*4B
+$GNGLL,3149.324754,N,11706.922338,E,022508.000,A,A*46
+$GNGSA,A,3,31,3
+```
diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/securedata.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/securedata.md"
new file mode 100644
index 0000000000000000000000000000000000000000..e7771e957bbc72508cec58f84d71757e1fbecaec
--- /dev/null
+++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/securedata.md"
@@ -0,0 +1,84 @@
+# `SecureData` - 安全数据区
+
+模组提供一块裸flash区域及专门的读写接口供客户存贮重要信息,且信息在烧录固件后不丢失(烧录不包含此功能的固件无法保证不丢失)。提供一个存储和读取接口,不提供删除接口。
+
+> 目前除BC25/BG95/EC200A系列外,其余平台均支持本功能
+
+## 数据存储
+
+### `SecureData.Store`
+
+```python
+SecureData.Store(index,databuf,len)
+```
+
+**参数描述**
+
+* `index`,int类型
+ | index序号 | 最大存储量 |
+ | --------- | ---------- |
+ | 1 - 8 | 52字节 |
+ | 9 - 12 | 100字节 |
+ | 13 - 14 | 500字节 |
+ | 15 - 16 | 1000字节 |
+* `databuf`,待存储的数据数组,bytearray类型
+* `len`,要写入数据的长度,int类型
+
+> 存储时按照databuf和len两者中长度较小的进行存储
+
+**返回值描述**
+
+`-1`: 参数有误
+`0`: 执行正常
+
+## 数据读取
+
+### `SecureData.Read`
+
+```python
+SecureData.Read(index,databuf,len)
+```
+
+**参数描述**
+
+* `index`,index范围为1-16:读取存储数据对应的索引号,int类型
+* `databuf`,存储读取到的数据,bytearray类型
+* `len`,要读取数据的长度,int类型
+
+> 若存储的数据没有传入的len大,则返回实际存储的数据长度
+
+**返回值描述**
+
+`-2`存储数据不存在且备份数据也不存在
+`-1`参数有误
+`其他`实际读取到的数据长度
+
+**示例**
+
+```python
+import SecureData
+# 即将存储的数据buf
+databuf = '\x31\x32\x33\x34\x35\x36\x37\x38'
+# 在index为1的存储区域中存储长度为8的数据databuf
+SecureData.Store(1, databuf, 8)
+# 定义一个长度为20的数组用于读取存储的数据
+buf = bytearray(20)
+# 读取index为1的存储区域中的数据至buf中,将读取到数据的长度存储在变量length中
+length = SecureData.Read(1, buf, 20)
+# 输出读到的数据
+print(buf[:length])
+```
+
+**使用示例**
+
+```python
+>>> import SecureData
+>>> databuf = '\x31\x32\x33\x34\x35\x36\x37\x38'
+>>> SecureData.Store(1, databuf, 8)
+0
+>>> buf = bytearray(20)
+>>> length = SecureData.Read(1, buf, 20)
+>>> print(buf[:length])
+bytearray(b'12345678')
+>>>
+```
diff --git a/docs/API_reference/zh/sidebar.yaml b/docs/API_reference/zh/sidebar.yaml
index 062a2a92d0383e8e03098e8b9939dd6dca4a0d4b..50660c6fa0db78c12d6be821bd9580f9c820a688 100644
--- a/docs/API_reference/zh/sidebar.yaml
+++ b/docs/API_reference/zh/sidebar.yaml
@@ -34,6 +34,19 @@ items:
file: QuecPython标准库/uhashlib.md
- label: QuecPython类库
file: QuecPython类库/README.md
+ items:
+ - label: - 执行Python脚本
+ file: QuecPython类库/example.md
+ - label: - 低功耗相关功能
+ file: QuecPython类库/pm.md
+ - label: - 设备相关功能
+ file: QuecPython类库/modem.md
+ - label: - 内置GNSS相关功能
+ file: QuecPython类库/quecgnss.md
+ - label: - GNSS相关功能
+ file: QuecPython类库/gnss.md
+ - label: - 安全数据区相关功能
+ file: QuecPython标准库/securedata.md
- label: QuecPython组件库
file: QuecPython组件库/README.md
items: