systick
systick 提供系统滴答定时器功能,支持计数值获取、秒/毫秒/微秒级时间查询以及阻塞延时操作。
头文件清单
接口清单
| 接口名称 | 功能简述 |
|---|---|
| uapi_systick_init | 初始化Systick模块 |
| uapi_systick_deinit | 去初始化Systick模块 |
| uapi_systick_count_clear | 清除Systick计数值 |
| uapi_systick_get_count | 获取Systick当前计数值 |
| uapi_systick_get_s | 获取Systick当前计数秒值 |
| uapi_systick_get_ms | 获取Systick当前计数毫秒值 |
| uapi_systick_get_us | 获取Systick当前计数微秒值 |
| uapi_systick_delay_count | 按计数值延时 |
| uapi_systick_delay_s | 按秒数延时 |
| uapi_systick_delay_ms | 按毫秒数延时 |
| uapi_systick_delay_us | 按微秒数延时 |
| uapi_systick_suspend | 挂起Systick |
| uapi_systick_resume | 恢复Systick |
Functions
uapi_systick_init
头文件清单
功能说明
- 初始化Systick硬件定时器模块
- 重复调用时直接返回
- 初始化完成后,Systick计数器开始运行,可调用其他Systick接口
前置条件
- Systick模块未被初始化,或已通过uapi_systick_deinit()去初始化
- 硬件Systick定时器资源可用
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
uapi_systick_deinit
头文件清单
功能说明
- 去初始化Systick模块,停止Systick定时器运行
- 未初始化时调用直接返回
- 去初始化后Systick计数器停止,需重新初始化后方可使用其他接口
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
uapi_systick_count_clear
头文件清单
功能说明
- 清除Systick计数值,将计数器归零
- 清除后,后续获取的时间值从零开始重新计算
- 未初始化时调用返回ERRCODE_SYSTICK_NOT_INIT
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 计数清除成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
uapi_systick_get_count
头文件清单
功能说明
- 获取Systick当前原始计数值
- 若使能低功耗补偿(CONFIG_SYSTICK_SUPPORT_LPM),返回值包含休眠补偿计数
- 未初始化时返回0
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
返回值
- 返回类型:uint64_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| uint64_t | Systick当前计数值 | 读取计数成功;未初始化时返回0 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
| CONFIG_SYSTICK_SUPPORT_LPM | 特性宏 | 支持低功耗休眠补偿特性 | n |
uapi_systick_get_s
头文件清单
功能说明
- 获取Systick当前计数对应的秒值
- 若使能RC校准(CONFIG_ENABLE_RC_CALIBRATION),通过校准接口获取微秒值后转换为秒
- 未初始化时返回0
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
返回值
- 返回类型:uint64_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| uint64_t | Systick当前计数秒值 | 读取成功;未初始化时返回0 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
| CONFIG_ENABLE_RC_CALIBRATION | 特性宏 | 支持RC校准特性 | n |
uapi_systick_get_ms
头文件清单
功能说明
- 获取Systick当前计数对应的毫秒值
- 若使能RC校准(CONFIG_ENABLE_RC_CALIBRATION),通过校准接口获取微秒值后转换为毫秒
- 未初始化时返回0
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
返回值
- 返回类型:uint64_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| uint64_t | Systick当前计数毫秒值 | 读取成功;未初始化时返回0 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
| CONFIG_ENABLE_RC_CALIBRATION | 特性宏 | 支持RC校准特性 | n |
uapi_systick_get_us
头文件清单
功能说明
- 获取Systick当前计数对应的微秒值
- 若使能RC校准(CONFIG_ENABLE_RC_CALIBRATION),通过校准接口直接获取微秒值
- 未初始化时返回0
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
返回值
- 返回类型:uint64_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| uint64_t | Systick当前计数微秒值 | 读取成功;未初始化时返回0 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
| CONFIG_ENABLE_RC_CALIBRATION | 特性宏 | 支持RC校准特性 | n |
uapi_systick_delay_count
头文件清单
功能说明
- 按Systick计数值进行阻塞延时,等待指定计数值的时间间隔
- 延时期间为阻塞等待,不可用于要求实时响应的场景
- 未初始化时调用返回ERRCODE_SYSTICK_NOT_INIT
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c_delay | uint64_t | 延时目标计数值 | 0 ~ 0xFFFFFFFFFFFFFFFF |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 延时完成 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
uapi_systick_delay_s
头文件清单
功能说明
- 按秒数进行阻塞延时
- 延时期间为阻塞等待,不可用于要求实时响应的场景
- 未初始化时调用返回ERRCODE_SYSTICK_NOT_INIT
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| s_delay | uint32_t | 延时秒数 | 0 ~ 0xFFFFFFFF |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 延时完成 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
uapi_systick_delay_ms
头文件清单
功能说明
- 按毫秒数进行阻塞延时
- 延时期间为阻塞等待,不可用于要求实时响应的场景
- 未初始化时调用返回ERRCODE_SYSTICK_NOT_INIT
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| m_delay | uint32_t | 延时毫秒数 | 0 ~ 0xFFFFFFFF |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 延时完成 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
uapi_systick_delay_us
头文件清单
功能说明
- 按微秒数进行阻塞延时
- 延时期间为阻塞等待,不可用于要求实时响应的场景
- 未初始化时调用返回ERRCODE_SYSTICK_NOT_INIT
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- 硬件Systick定时器资源可用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| u_delay | uint32_t | 延时微秒数 | 0 ~ 0xFFFFFFFF |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 延时完成 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_SYSTICK | 编译参与宏 | 控制systick.c参与编译 | n |
uapi_systick_suspend
头文件清单
功能说明
- 挂起Systick定时器,保存当前计数到休眠补偿变量中
- 若arg非NULL,通过arg传出当前计数值供调用者保存
- 保存挂起时的计数值,供恢复时进行补偿计算
前置条件
- Systick模块已通过uapi_systick_init()初始化完成
- CONFIG_SYSTICK_SUPPORT_LPM宏已使能
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| arg | uint64_t * | 挂起时的计数值,由调用方分配内存、函数填充;arg为NULL时不输出 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 挂起成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_SYSTICK_SUPPORT_LPM | 功能宏 | 支持Systick低功耗模式suspend/resume功能 | n |
uapi_systick_resume
头文件清单
功能说明
- 恢复Systick定时器,重新初始化并清除计数器,补偿休眠期间的计数值
- 将休眠前计数与休眠补偿计数累加
- 恢复后Systick计数器继续运行
前置条件
- Systick模块已通过uapi_systick_suspend()挂起
- CONFIG_SYSTICK_SUPPORT_LPM宏已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| arg | uintptr_t | 指向uint64_t类型变量的指针,传入休眠期间补偿计数值 | 非NULL,指向有效uint64_t内存 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 恢复成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_SYSTICK_SUPPORT_LPM | 功能宏 | 支持Systick低功耗模式suspend/resume功能 | n |
Type definitions
errcode_t
使用说明
作为uapi_systick_count_clear、uapi_systick_delay_count、uapi_systick_delay_s、uapi_systick_delay_ms、uapi_systick_delay_us、uapi_systick_suspend、uapi_systick_resume接口的返回值类型 [SDK公共基础类型]