bdyz1016 发表于 2013-6-8 15:57:15

#define CPLD_BANK0_BASE 0XE0000000请问这是什么地址

#define CPLD_BANK0_BASE (0XE0000000)
static int __init s3c2410_key_init(void)
{
    int ret;
    // 初始化Bank6设置
      unsigned int bswcon = inl((unsigned int)S3C2410_BWSCON);
             bswcon = (bswcon & 0xFFFCFFFF) | 0x00000000;
             outl(bswcon,(unsigned int)S3C2410_BWSCON);
             bswcon = inl((unsigned int)S3C2410_BWSCON);
      注释说初始化bank6,bank6不是27-24吗

             outb(0xFF,0xE0000000+0x02600000);
      outb(0xF9,0xE0000000+0x02600000);
             .......
static irqreturn_t key_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
unsigned char vector,tmp;
   
vector = inb(CPLD_BANK0_BASE + 0x02200000);                              
tmp = inb(CPLD_BANK0_BASE + 0x02600000);                                 
if(0 == (vector & 0x4)){
    printk("key1\n");
    outb(tmp | (1<<2), CPLD_BANK0_BASE+0x02600000);   
    inb(CPLD_BANK0_BASE + 0x02600000);
    outb(tmp & (~(1<<2)), CPLD_BANK0_BASE+0x02600000);
}
else if(0 == (vector & 0x2)){
    printk("key2\n");
    outb(tmp | (1<<1), CPLD_BANK0_BASE+0x02600000);   
    inb(CPLD_BANK0_BASE + 0x02600000);
    outb(tmp & (~(1<<1)), CPLD_BANK0_BASE+0x02600000);   
}

return IRQ_HANDLED;
}

亚瑟王 发表于 2013-6-9 09:53:56

不知道你贴的代码从哪里来的,在我的印象中天嵌科技没有提供过类似的代码的。

bdyz1016 发表于 2013-6-9 12:07:33

不是天嵌的,我们教材上的。是个按键中断的,用到了CPLD
页: [1]
查看完整版本: #define CPLD_BANK0_BASE 0XE0000000请问这是什么地址