驱动程序里ioread和iowrite运行不了
时间:10-02
整理:3721RD
点击:
使用zynq芯片,linux对寄存器进行读写操作,使用ioremap函数为物理地址进行映射,可以映射一个地址。
但是当代码运行到ioread或iowrite对寄存器进行读写的时候,就死在那里不动了,驱动程序中的ioread和iowrite函数不起作用了
ioremap和ioread,iowrite不是同一个头文件吗?为什么这两个不能用的。
请专家给点修改的方向。
很捉急啊。
有行家说可以用mmap进行映射,但是我看了下,mmap主要是对文件映射的啊。
呃呃呃
是不是系统配置问题呐
物理地址是转换为user层地址用的,就是说驱动核心的地址转到了用户层你直接用的话最好是mmap。而且read write是要调用linux驱动对应的write read的函数的,是文件系统传递下去的,还有就是全局变量要用volatile声明就变。