我在使用TI AM3358进行Linux定时器中断方面的测试,TI的SDK版本号为 linux-am335x-AM335XPSP_04.06.00.08,linux内核版本在linux3.2.0基础上打了实时补丁PREEMPT_RT(3.2.0_rt10)。
测试的过程中发现,定时器中断偶尔会不能及时触发,DmTimer的设定时间为100us,实际定时器中断有时260us才到来。
测试的方法:使用dmtimer注册定时器中断,设置定时器间隔时间为100us,查看定时器中断到来时间,在定时器中断处理函数中再次启动定时器,循环测试。
测试结果:正常情况下,定时器中断都可以正常到来,但测试次数大于100万次(2min左右)时,会出现1~2次中断延迟160us左右的大延迟点。
我用linux的ftrace工具对此现象进行了分析,在附件中,请专家们帮忙进一步分析定位,不胜感激!