关于2410的memory map的外设驱动开发
关于2410的memory map的外设驱动开发我在一个2410的板上,做一个外设的driver
1。把外设的物理地址映射到2410的memory空间;
2。然后把这个地址作为基地址,加上偏移量,读写外设的寄存器;
目前,读外设的寄存器正常,但是写寄存器一部分正常,没有规律。
请叫各位大老,这么写driver是不是有错误?
请给我出一点注意,谢谢了。 是不是读写缓存造成的哦,内核是由延迟写的哈! 哈囉!!! 大家好
回應上一篇
可是有的暫存器可以寫入,比如說watchdog
各位有沒有什麼解法的!!!
THX:-D
我看linux driver的书上说到要把cache关掉
请问2410怎么关cache?需要操作 cp15 的c1寄存器,用C语言怎么操作?是否有已经定义好的宏阿?谢谢。十分着急。。。。 外部设备使用的是cs2,16bit宽度。
我现在使用writeb可以把0-255区间的8位写入外部设备,但是高8位也写入了同样的值。
用writew可以把256-65535区间的高8位写入外部设备,但是低8位也写入了同样的值。
如果使用writeb写256-65535区间的数,就写入的都是0。
如果使用writew写0-255区间的数,就写入的也都是0。
急。奇怪。 已经使用汇编把cache禁止,但是linux报错,
cache Unable to handle kernel paging request at virtual address
在ioremap的时候,怎样做到控制地址map的时候,不使用cache和write buffer?
或是其它的什么原因?
有人知道吗? 编译时加上参数:-march=armv4 -mtune=arm9tdmi试试
页:
[1]