TI中文支持网
TI专业的中文技术问题搜集分享网站

AM3358 读取 cycle counte 不是主频计数,也不是1/64(值有变化). (linux内核下每秒读取一次)

初始化:
int32_t value = 1;
value |= 2;     // reset all counters to zero.
value |= 4;     // reset cycle counter to zero.
// program the performance-counter control-register:
asm volatile ("MCR p15, 0, %0, c9, c12, 0\t\n" :: "r"(value));
// enable all counters:
asm volatile ("MCR p15, 0, %0, c9, c12, 1\t\n" :: "r"(0x8000000f));
// clear overflows:
asm volatile ("MCR p15, 0, %0, c9, c12, 3\t\n" :: "r"(0x8000000f));

读取计数器:
asm volatile ("MRC p15, 0, %0, c9, c13, 0\t\n": "=r"(value));

怎么解决呢?最好有linux的验证代码,目前没有看出这里的代码有什么问题。

Susan Yang:

AM3358的问题建议您发帖到e2echina.ti.com/…/

赞(0)
未经允许不得转载:TI中文支持网 » AM3358 读取 cycle counte 不是主频计数,也不是1/64(值有变化). (linux内核下每秒读取一次)
分享到: 更多 (0)