TIwilliam hill官网
直播中

王玉英

7年用户 286经验值
私信 关注
[问答]

关于C6657 timer问题

你好,我的目的是测试一段DDR的读写时间,但是看了例程的timer程序,有些疑问

这里tmrcfg.period是设置timer的中断周期吗,如果是这个周期是咋算的,clock_period_ms是1ms所以中断周期就是0.5ms吗?timer的输入是六分之一dsp核时钟,为啥除以6000?另外我也没有看到中断处理程序的注册啊?
还有一个问题,系统有TSCL和TSCH时间戳寄存器,他们和timer有啥关系,如果完成我的目的,我先置这两个寄存器为0,然后ddr读写完成,在读出两个寄存器的值,是不是可以?
新手刚学习c6657,问题多多,希望得到您的解答,谢谢!

回帖(3)

杨娟

2018-6-19 08:11:56
period=cnt*(1/(core_speed_HZ/6))) =>cnt=period*cpu_speed_HZ/6=period*10^3*cpu_speed_HZ/6000=period_ms*cpu_speed_HZ/6000
中断函数注册在timer_vectors.asm中配置中断矢量表。
寄存器TSC单位是cpu clk,如cpu 1GHZ,则每累加1对应计时增加1ns。可以通过都TSC寄存器求差获取某一段代码的执行时间。
                                                                          

举报

王玉英

2018-6-19 08:24:34
引用: zbb9612 发表于 2018-6-19 08:11
period=cnt*(1/(core_speed_HZ/6))) =>cnt=period*cpu_speed_HZ/6=period*10^3*cpu_speed_HZ/6000=period_ms*cpu_speed_HZ/6000
中断函数注册在timer_vectors.asm中配置中断矢量表。
寄存器TSC单位是cpu clk,如cpu 1GHZ,则每累加1对应计时增加1ns。可以通过都TSC寄存器求差获取某一段代码的执行时间。

你好,对于那个时间戳寄存器TSC,我想问这个对于C6657,是两个核共用这一个吗,还是一个核一个?
如果我想用它测试时间,那么可不可以核A设置开始,通过中断的方式通知另一个核B,然后核B读取寄存器来算时间?
谢谢!
举报

李萌

2018-6-19 08:38:48
引用: e08506806 发表于 2018-6-19 08:24
你好,对于那个时间戳寄存器TSC,我想问这个对于C6657,是两个核共用这一个吗,还是一个核一个?
如果我想用它测试时间,那么可不可以核A设置开始,通过中断的方式通知另一个核B,然后核B读取寄存器来算时间?
谢谢!

TSC每个core 一个,没有全局的time stamp,你可以单独测试core A和Core B处理时间,把两个时间加起来就可以了,中断带来的开销很小。
还有就是利用通用的timer定时器,core a和core b分别记录对应的timer值,计算增量即可,但是这个timer的精度是6个dsp的clock,必用TSCL要低。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分