linux-2.6.33 ADC驱动
#define adc_con (unsigned long)ioremap(0x58000000,4)
iowrite32(ioread32(adc_con)|(1<<14)|(0x5<<6),adc_con);
printk("%ld ",ioread32(adc_con));
iowrite32(ioread32(adc_con)|0x1,adc_con);
//printk("%ld",__raw_readl(adc_con));
//do{
// tmp = readl(adc_con);
//}while(((unsigned int)tmp)&0x1);
printk("%ld ",ioread32(adc_con));
//while(!(__raw_readl(adc_con)&0x8000));
printk("yes ok");
打印的数据都是32709 32709 32709,没有变化,为什么?
111111111000101
iowrite32(ioread32(adc_con)|(1<<14)|(0x5<<6),adc_con);
printk("%ld ",ioread32(adc_con));
iowrite32(ioread32(adc_con)|0x1,adc_con);
//printk("%ld",__raw_readl(adc_con));
//do{
// tmp = readl(adc_con);
//}while(((unsigned int)tmp)&0x1);
printk("%ld ",ioread32(adc_con));
//while(!(__raw_readl(adc_con)&0x8000));
printk("yes ok");
打印的数据都是32709 32709 32709,没有变化,为什么?
111111111000101
作者: marshmallow1005 发布时间: 2011-05-08
ioremap出来的是虚拟地址,ioread32需要的是物理地址
作者: steven_miao 发布时间: 2011-05-09