程序如下: *(volatile short *)(Bankaddr)=1; *(volatile short *)(Bankaddr)=0; 这段对外设地址访问的程序,在驱动程序里面的速度和在应用程序里面的速度相差一倍 在应用程序里,外设地址是通过mmap映射的 在驱动程序里,外设地址是通过ioremap映射的, (我将访问外设的时序参数设定的一样。并且编译应用程序时,带上了优化参数O2, 将驱动程序和应用程序反汇编,代码也差不多,没有什么太大区别) 为何驱动程序运行的速度要比应用程序快一倍左右呢,(我是通过示波器测量数据总线发现的) (目标板是linux2.6.31+s3c6410) |
求解
最新推荐文章于 2023-10-01 19:18:48 发布