timer 使用
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 = ; interrupts = ; clocks = , ; clock-names = pclk, timer; };
其中定义的timer0 的寄存器和中断号和时钟等
其他timer 对应的中断号可看如下图片
2.对应的驱动文件kernel/drivers/clocksource/rockchip_timer.c
对应寄存器和使用
1.寄存器如下图片
2.使用方式 查看对应寄存器
root@rk3399_firefly_box:/ # io -4 0xff85001c //查看当前控制寄存器的状态 ff85001c: 00000007 root@rk3399_firefly_box:/ # io -4 0xff850000 //查看寄存器时时的值 ff850000: 0001639f
控制对应寄存器
root@rk3399_firefly_box:/ # io -4 -w 0xff85001c 0x06 //关闭时间计数功能
华为Mate 40和Mate 40 Pro如何选?
新民周刊:苹果的纠结
小米最新消息:小米6plus已经确定跳票!小米max2和小米mix2即将发布前来救场
UWB创业者谈iPhone11集成UWB芯片
2021年Q1季度液晶面板价格或将持续上涨趋势
Firefly关于TIMER 使用简介
通过RX MCU和CPU相结合提高电机控制效率
超大功率晶闸管的作用及特点
车载座椅电机驱动TMI8720-QI,你选对了吗?
芯海科技UFCS明星产品亮相2023(春季)亚洲充电展
小米11的概念图流出,搭配双曲面真全屏+屏下镜头
RFID资产管理系统之电力资产管理
英国科技部长:应专注封装和设计,而不是参与芯片制造竞争
buck变换器设计_自制buck变换器
UltraScale– UltraScale FPGA中IODelay相比7Series FPGA的改变
紫光展锐挖角中芯国际赵海军?中芯国际否认
更小更快更强 三星存储芯片率先进入10nm制程
音诺恒科技RK3568智能消费机主板方案安卓主板
智能家居缺乏统一标准致业内乱象不断
三星三季度反超华为,俄罗斯智能手机市场领先