先读出 timer1 的寄存器:
# devmem 0x01C20C20;devmem 0x01C20C24;devmem 0x01C20C28;
0x00000005
0xFFFFFFFF
0x2E22414A
根据手册
0x01C20C20 是timer1控制寄存器, 重复触发, 1分频, 24Mhz源, 使能
0x01C20C24 timer1本次定时时间
0x01C20C28 timer1定时器当前值
离线
好了, 我们现在测试timer2,
#timer2 装入定时值
devmem 0x01C20C34 32 0x5000000
#timer2 单次触发, 24M源, 使能timer2
devmem 0x01C20C30 32 0x00000085
现在可以看 timer2 定时器当前数据了
# devmem 0x01C20C30;devmem 0x01C20C34;devmem 0x01C20C38;
0x00000085
0x05000000
0x03E40B4D (当前值 | 倒计时)
# devmem 0x01C20C30;devmem 0x01C20C34;devmem 0x01C20C38;
0x00000084
0x05000000
0x00000000 (归零)
离线
重复触发:
#timer2 装入定时值
devmem 0x01C20C34 32 0x5000000
#timer2 重复触发, 24M源, 使能timer2
devmem 0x01C20C30 32 0x00000005
离线
timer2 单次触发, 使用LOSC源(32Khz), 使能
devmem 0x01C20C34 32 0x8000;devmem 0x01C20C30 32 0x00000081;
查看定时器timer2数据:
# devmem 0x01C20C30;devmem 0x01C20C34;devmem 0x01C20C38;
0x00000081
0x00008000
0x00000F29
# devmem 0x01C20C30;devmem 0x01C20C34;devmem 0x01C20C38;
0x00000080
0x00008000
0x00000000
# devmem 0x01C20C30;devmem 0x01C20C34;devmem 0x01C20C38;
0x00000080
0x00008000
0x00000000
离线
把tina linux lichee/linux-3.10/drivers/clocksource/sunxi_timer.c
#define SUN3I_CLKSRC_ID 1
改成
#define SUN3I_CLKSRC_ID 2
启动/运行均正常,
控制台读timer2寄存器组也正常:
# devmem 0x01C20C30;devmem 0x01C20C34;devmem 0x01C20C38;
0x00000005
0xFFFFFFFF
0xDB7AE423
tick 定时器转为了timer2 ?
离线