zyf_hit 发表于 2013-10-16 12:17:25

使用TQ3358开发板,LINUX中通过ioremap读取芯片寄存器的值速度巨慢


LINUX中通过ioremap读取芯片寄存器的值为什么远远比写寄存器的值慢(读:130ns,写几ns)
这是为什么呢?我是拿示波器测得

天嵌技术支持01 发表于 2013-10-16 14:08:26

测试方式?如何测试的?

天嵌技术支持01 发表于 2013-10-16 14:08:52

测试截图?

zyf_hit 发表于 2013-10-16 22:44:35

天嵌技术支持01 发表于 2013-10-16 14:08 static/image/common/back.gif
测试截图?

我通过在uboot里直接写寄存器地址的测试,和linux内核下,读通过ioremap重映射的地址,
并且比较两者.o文件的反汇编一致(仅是lrd和str的地址不同)
比较两者,uboot下,写寄存器的速度和读寄存器的速度是相当的
在内核中,写寄存器的速度相当于寄存器速度的5倍左右
现在我需要在内核状态下,一种机制:直接写物理地址。有这样的“后门”吗?

zyf_hit 发表于 2013-10-16 22:46:47

天嵌技术支持01 发表于 2013-10-16 14:08 static/image/common/back.gif
测试截图?

测试截图今天没拿回来。测试是通过while(1)里拉高io,读寄存器,拉低io。
然后用示波器来测波形
页: [1]
查看完整版本: 使用TQ3358开发板,LINUX中通过ioremap读取芯片寄存器的值速度巨慢