各位大侠好 !
小弟在linux下使用DMtimer7每隔128ms产生一个中断,运行一段时候后发现周期由128ms变成了512ms
代码如下:
//申请定时器7
p_timer = omap_dm_timer_request_specific(7);
//设置时钟源
src = clk_get(NULL, BB_32K_SOURCE);
if (IS_ERR(src))
return -EINVAL;
omap2_clk_enable(src);
__delay(300000);
omap2_clk_enable(p_timer->fclk); __delay(300000); omap2_clk_set_parent(p_timer->fclk, src);
if (IS_ERR_VALUE(res))
pr_warning("%s: timer%i cannot set source\n",
__func__, p_timer->id);
__delay(300000); v = __raw_readl(p_timer->fclk->clksel_reg);
printk("the val of clksel_reg by omap2_clk_set_parent is %4x ####\n",v); clk_put(p_timer->fclk);
clk_put(src);
请问各位有没有思路解决?谢谢
Jian Zhou:
看下每次中断到了重新配置寄存器的值是不是有变化,尤其是看看是否是全局变量溢出了