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 = <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 对应寄å˜å™¨å’Œä½¿ç”¨ 1.寄å˜å™¨å¦‚下图片 2.ä½¿ç”¨æ–¹å¼ æŸ¥çœ‹å¯¹åº”å¯„å˜å™¨ root@rk3399_firefly_face:/ # io -4 0xff85001c //查看当å‰æŽ§åˆ¶å¯„å˜å™¨çš„çŠ¶æ€ ff85001c: 00000007 root@rk3399_firefly_face:/ # io -4 0xff850000 //查看寄å˜å™¨æ—¶æ—¶çš„值 ff850000: 0001639f 控制对应寄å˜å™¨ root@rk3399_firefly_face:/ # io -4 -w 0xff85001c 0x06 //å…³é—时间计数功能