Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
智驾
rt-thread
提交
db24f186
R
rt-thread
项目概览
智驾
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
db24f186
编写于
7月 27, 2023
作者:
xqyjlj
提交者:
guo
7月 27, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
📃
docs(ktime/readme): add readme
上级
2b80fd38
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
63 addition
and
0 deletion
+63
-0
components/ktime/README.md
components/ktime/README.md
+63
-0
未找到文件。
components/ktime/README.md
0 → 100644
浏览文件 @
db24f186
# ktime
## 1、介绍
ktime 为 kernel time,为内核时间子系统,实现了内核启动时间以及芯片内核 cputimer 时间管理以及一个 ns 精度的高精度定时器,
## 2、如何打开 ktime
使用 ktime 需要在 RT-Thread 的 menuconfig 中选择它,具体路径如下:
```
RT-Thread Components
[*] Ktime: kernel time
```
## 3、使用 ktime
> 函数的功能以及参数类型已经写在头文件的注释之中,本文不再赘述
### 3.1、boottime
boottime 为系统启动时间,即为系统从上电开始到现在运行的时间,默认的时间基准为芯片内核的 cputimer 的 cnt 值,已经适配了 aarch64 与 riscv64 平台,例如 stm32 等平台需要在自己的 bsp 里面进行适配(boottime 里面函数都为 weak function),需要注意 tick 从中断到设置中间的时延
**此值应当为 Readonly**
### 3.2、cputimer
cputimer 为芯片内核的 cputimer,也可以认为是 os tick 来源的那个定时器,cputimer 主要是提供了一个统一的接口去获得其分辨率,频率,cnt 值
**此值应当为 Readonly**
### 3.3、hrtimer
> TODO: hrtimer 目前还是使用优先级链表的方式进行管理,在遇到任务的大规模并发时还是存在部分性能问题,待内核有一个统一的红黑树组件后,再进行优化
hrtimer 为高精度定时器,需要重写其 weak 函数(需要对接到硬件定时器,否则默认走的是软件定时器,分辨率只有 os tick 的值)才能正常使用,其主要使用方法:
#### 3.3.1、延时
hrtimer 的延时并不是 while(1)式死等,它会将一个线程挂起,睡眠多少时间后通过硬件定时器将其唤醒(注:延时 ns 并不是真的能准确的延时这么多,而是在保证性能的情况下尽可能的延时)
-
rt_ktime_hrtimer_sleep:单位为 cputimer 的 tick 值
-
rt_ktime_hrtimer_ndelay:单位为 ns
-
rt_ktime_hrtimer_udelay:单位为 us
-
rt_ktime_hrtimer_mdelay:单位为 ms
#### 3.3.1、定时器
hrtimer 还提供了一套 rt_timer 风格的 api
-
rt_ktime_hrtimer_init
-
rt_ktime_hrtimer_delete
-
rt_ktime_hrtimer_start
-
rt_ktime_hrtimer_stop
-
rt_ktime_hrtimer_control
-
rt_ktime_hrtimer_detach
需要注意,此定时器回调函数依旧处于中断之中,不能做一些耗时的任务
## 5、联系方式
-
维护:xqyjlj
-
主页:https://github.com/xqyjlj
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录