C6678 TSCL/TSCH的故事

最近在工作中遇到了一个奇怪的事情,就是使用TSCH/TSCL拼接出来的64bit的时钟计数在计算超时的过程中会有异常,

改成只读取TSCL 32bit就能暂时规避这个问题。

为了查看这个查找这个问题的根因,还特意搭建了测试工程,但是没能复现。

然后就是查资料,发现有一个声明很有意思。

 

“When reading the full 64bit value,it must be ensured that no interrupts are serviced between the tow MVC instruction if an ISR is allowed to make use of the timestamp counter.There is no way for an ISR to restore the previous value of TSCH(snapshot) it it reads TSCL,since a new snapshot is performed”.

----《TMS320C66X DSP CPU and Instruction Set》

 

在测试工程中加入中断,发现记录的64bit的数据异常,所以获取64bit的时戳需要中断保护。

TI的手册中有两个例子,这里只列了一个,又兴趣的可以查看上面的文献

BNOP      TSC_Read_Done,3

MVC        TSCL,A0

MVC        TSCL,A1

TSC_Read_Done:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值