okmx6q-c,linux:io操作询问
您好:在使用贵公式okmx6q-c+linux(uboot、linux、rootfs均使用贵公司提供的image),遇到了io读写的问题。
问题描述:iowrite32写入val到某一寄存器,回读的值不是val,而是默认值
补充:使用readl/writel或者直接*gpio1=**,**=*gpio1仍然有此问题
简单的测试代码见附注
谢谢
附注:
简单的测试代码:
static int tmp_test(void)
{
void __iomem *gpio1 = NULL;
int regval = 0;
/* remap gpio memory address */
gpio1 = ioremap(0x0209C000, 16*1024);
printk(KERN_WARNING "%s:remap gpio1 %p\n", __func__, gpio1);
if (NULL == gpio1)
return -ENOMEM;
regval = ioread32(gpio1);
printk(KERN_WARNING "%s:regval %x,\n", __func__, regval);
regval &= ~(0xff);
iowrite32(regval, gpio1);
printk(KERN_WARNING "%s:write 0x%x, read %x\n", __func__, regval, ioread32(gpio1));
iounmap(gpio1);
}
打印的信息:
tmp_test:remap gpio1 c0840000
tmp_test:regval 3e01087c,
tmp_test:write 0x3e010800, read 3e01087c 您好,您需要确认一下您所操作的IO是否处于可操作状态。
页:
[1]