TIMER 使用
前言
RK3399有12 個(gè)Timers (timer0-timer11),有12 個(gè)Secure Timers(stimer0~stimer11) 和 2 個(gè)Timers(pmutimer0~pmutimer1), 我們主要用到的是Timers(timer0-timer11)時(shí)鐘頻率為24MHZ ,工作模式有 free-running 和 user-defined count 模式
框架圖
工作模式
user-defined count:Timer 先載入初始值到 TIMERn_LOAD_COUNT3 和 TIMER_LOADn_COUNT2寄存器, 當(dāng)時(shí)間累加的值在寄存器TIMERn_LOAD_COUNT1和TIMERn_LOAD_COUNT0時(shí),將不會(huì)自動(dòng)載入到計(jì)數(shù)寄存器。 用戶需要重新關(guān)閉計(jì)數(shù)器和然后重新設(shè)置計(jì)數(shù)器相關(guān)才能繼續(xù)工作。
free-running:Timer先載入初始值到TIMER_LOAD_COUNT3 和 TIMER_LOAD_COUNT2寄存器, 當(dāng)時(shí)間累加的值在寄存器TIMERn_LOAD_COUNT1和TIMERn_LOAD_COUNT0時(shí),Timer將一直自動(dòng)加載計(jì)數(shù)寄存器。
軟件配置
1.在 dts 文件中定義 Timer 的相關(guān)配置 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 的寄存器和中斷號(hào)和時(shí)鐘等
其他Timer 對應(yīng)的中斷號(hào)可看如下圖片
2.對應(yīng)的驅(qū)動(dòng)文件Kernel/drivers/clocksource/rockchip_timer.c
對應(yīng)寄存器和使用
1.寄存器如下圖片
2.使用方式 查看對應(yīng)寄存器
root@rk3399_firefly_box:/ # io -4 0xff85001c //查看當(dāng)前控制寄存器的狀態(tài) ff85001c: 00000007 root@rk3399_firefly_box:/ # io -4 0xff850000 //查看寄存器時(shí)時(shí)的值 ff850000: 0001639f
控制對應(yīng)寄存器
root@rk3399_firefly_box:/ # io -4 -w 0xff85001c 0x06 //關(guān)閉時(shí)間計(jì)數(shù)功能
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35614 -
Firefly
+關(guān)注
關(guān)注
2文章
538瀏覽量
7129
發(fā)布評論請先 登錄
相關(guān)推薦
fireflyAIO-3399C主板接口介紹
![<b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>接口<b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/AB/A2/pIYBAF220RyAQHleAAcQtf7UK64540.jpg)
fireflyAIO-3399C主板散熱介紹
fireflyAIO-3399C主板紅外遙控器簡介
fireflyAIO-3399C主板屏幕模組介紹
![<b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>屏幕模組<b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/AB/A2/pIYBAF220TuAJn-5AAESR01CrzM334.jpg)
fireflyAIO-3399C主板UART介紹
![<b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>UART<b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/AB/A2/pIYBAF220U6ACwRsAAFYh43XUBM338.jpg)
fireflyAIO-3399C主板RTC介紹
![<b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>RTC<b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/AB/A2/pIYBAF220VGAaR3JAAEbiV8oThY263.jpg)
fireflyAIO-3399C主板LCD簡介
![<b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>LCD簡介](https://file.elecfans.com/web1/M00/AB/A2/pIYBAF220VmAJof3AAVwjtHCXCI579.jpg)
fireflyAIO-3399C主板IR簡介
![<b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>IR簡介](https://file.elecfans.com/web1/M00/AB/4A/o4YBAF220TSALyQNAADawVe-83s184.png)
fireflyAIO-3399C主板ADC介紹
fireflyAIO-3399C編譯Industry固件簡介
fireflyAIO-3399C主板升級(jí)固件介紹
fireflyAIO-3399J主板TIMER使用簡介
![<b class='flag-5'>fireflyAIO-3399</b>J<b class='flag-5'>主板</b><b class='flag-5'>TIMER</b>使用簡介](https://file.elecfans.com/web1/M00/AB/4D/o4YBAF2225SAYKacAAB5p_1mOHE501.png)
評論