6.11物联网RK3399项目开发实录-驱动开发之定时器的使用(wulianjishu666)

嵌入式实战开发例程【珍贵收藏,开发必备】:

链接:https://pan.baidu.com/s/1tkDBNH9R3iAaHOG1Zj9q1Q?pwd=t41u
======================================================================

定时器使用

前言

RK3399有 12 个 Timers (timer0-timer11),有 12 个 Secure Timers(stimer0~stimer11) 和 2 个 Timers(pmutimer0~pmutimer1), 我们主要用到的是 Timers(timer0-timer11) 时钟频率为 24MHZ ,工作模式有 free-running 和 user-defined count 模式。

框架图

工作模式

user-defined count:Timer 先载入初始值到 TIMERn_LOAD_COUNT3 和 TIMER_LOADn_COUNT2 寄存器, 当时间累加的值在寄存器 TIMERn_LOAD_COUNT1 和 TIMERn_LOAD_COUNT0 时,将不会自动载入到计数寄存器。 用户需要重新关闭计数器和然后重新设置计数器相关才能继续工作。

free-running:Timer 先载入初始值到 TIMER_LOAD_COUNT3 和 TIMER_LOAD_COUNT2 寄存器, 当时间累加的值在寄存器 TIMERn_LOAD_COUNT1 和 TIMERn_LOAD_COUNT0 时,Timer 将一直自动加载计数寄存器。

软件配置

1.在 dts 文件中定义 Timer 的相关配置 kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi

复制代码
rktimer: rktimer@ff850000 {
	compatible = "rockchip,rk3399-timer";
	reg = <0x0 0xff850000 0x0 0x1000>;
	interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
	clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
	clock-names = "pclk", "timer";
};

其中定义的 Timer0 的寄存器和中断号和时钟等。

其他 Timer 对应的中断号可看如下图片:

2.对应的驱动文件 Kernel/drivers/clocksource/rockchip_timer.c

对应寄存器和使用

寄存器如下图片:

使用 io 命令方式查看对应寄存器:

复制代码
root@host_name:/ # io -4 0xff85001c  //查看当前控制寄存器的状态
ff85001c:  00000007

root@host_name:/ # io -4 0xff850000  //查看寄存器时时的值
ff850000:  0001639f

控制对应寄存器:

复制代码
root@host_name:/ # io -4 -w 0xff85001c 0x06  //关闭时间计数功能
相关推荐
深圳皮克智能技术有限公司3 分钟前
AGIC x IOTE 2026 深圳物联网展 - 11B8
物联网·仓库拣货标签·电子墨水屏·电子货架标签·电子会议桌牌·电子标签·电子纸
zandy10113 分钟前
百沐生物发布生命科学智能体平台“百沐一下”,并与旭燃生物达成“AI+多组学”战略合作
人工智能
代码方舟7 分钟前
零信任架构实战:基于天远普通维保查询构建自动化汽车后市场供应链网关
人工智能·架构·自动化·汽车
qetfw12 分钟前
Debian Samba 与 OpenLDAP 统一认证配置
linux·debian
2601_9615934213 分钟前
视频放大模糊不清?Topaz Video AI v1.7.0 Mac 版高效修复
人工智能·macos·音视频
jay神14 分钟前
YOLO模型什么时候应该加注意力机制?
人工智能·深度学习·yolo·分类·回归·毕业设计
MuMuMu122315 分钟前
社区存量改造物联网回收终端选型分析:越华环保集团碳惠小屋工程与成本拆解
物联网
SEONIB_Explorer16 分钟前
VEONIB AI 电商视频生成平台深度评测:从商品链接到爆款素材的全链路实测
人工智能·跨境电商·视频制作·veonib
sel_919 分钟前
【多轮对话论文导读(二)】多轮对话与LLM Agent论文阅读:长期记忆、多轮评估与Agent训练
人工智能·深度学习·算法·语言模型·自然语言处理