BUG1描述
使用TMS320C6748的startware的定时器例程(64位模式),设置低32位(LSB)与高32位(MSB)定时周期并触发中断,发现一个计数周期内会进入两次中断,比如LSB =0x0D970100(1s),MSB = 1,会在1s先进入一次中断,然后18.84s再进入一次中断。
BUG1->解决方案
定时器全局控制寄存器(TGCR)中PLUSEN位置0,即使能向下兼容能力。定时器新特性不可用,而TI未对使用定时器的64位模式而禁用新特性进行说明。
定时器的新特性有:
外部时钟/时间输入
周期重载
外部事件捕获模式
定时器计数寄存器读取复位模式
定时器计数寄存器读取复位模式
用于中断 /DMA 产生控制和状态的寄存器
BUG2描述
Debug的时候开始设置PLUSEN=1,发现程序有问题,清除PLUSEN=0运行仍有问题.
BUG2->解决方案
查看startware定时器的底层驱动,如下图,发现使能PLUSEN位前未对PLUSEN清零,导致清除PLUSEN=0前不能设置PLUSEN=1.
解决办法有:
修改底层驱动
每次加载程序前给DSP断电