您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术静态映射机制的原理分析 正文
静态映射机制的原理分析

静态映射机制的原理分析

点击数:7866 次   录入时间:03-04 11:46:02   整理:http://www.55dianzi.com   嵌入式系统-技术

    unsigned long mask;

    unsigned long con;

    unsigned long flags;

    if (pin < S3C2410_GPIO_BANKB) {

    mask = 1 << S3C2410_GPIO_OFFSET(pin);

    } else {

    mask = 3 << S3C2410_GPIO_OFFSET(pin)*2;

    }

    LOCal_irq_save(flags);

    con = __raw_readl(base + 0x00);

    con &= ~mask;

    con |= function;

    __raw_writel(con, base + 0x00);

    local_irq_restore(flags);

    }

    其中,比较关键的一个地方:

    void __iomem *base = S3C2410_GPIO_BASE(pin);

    这一行中,S3C2410_GPIO_BASE定义如下:

    #define S3C2410_GPIO_BASE(pin) ((((pin) & ~31) >> 1) + S3C24XX_VA_GPIO)

    至此,GPIO的静态映射就看得很明白了。

    下面来看其他外设的静态映射:

    在s3c24xx_init_io()函数中,除了iotable_init()以为,还会在最后调用,

    (CPU->map_io)(mach_desc, size);

    而CPU的这个map_io在arch/arm/mach-s3c2410/cpu.c里面定义如下:

    static struct cpu_table cpu_ids[] __initdata = {

    {

    .idcode = 0x32410000,

    .iDMAsk = 0xffffffff,

    .map_io = s3c2410_map_io,

    .init_clocks = s3c2410_init_clocks,

    .init_uarts = s3c2410_init_uarts,

    .init = s3c2410_init,

    .name = name_s3c2410

    },

    ...

    }

    再查看s3c2410_map_io(),函数代码如下:

    void __init s3c2410_map_io(struct map_desc *mach_desc, int mach_size)

    {

    /* register our io-tables */

    iotable_init(s3c2410_iodesc, ARRAY_SIZE(s3c2410_iodesc));

    iotable_init(mach_desc, mach_size);

    }

    接下来看结构s3c2410_iodesc [arch/arm/mach-s3c2410/s3c2410.c],代码如下,

    /* Initial IO mappings */

    static struct map_desc s3c2410_iodesc[] __initdata = {

    IODESC_ENT(USBHOST),

    IODESC_ENT(USBDEV),

    IODESC_ENT(CLKPWR),

    IODESC_ENT(LCD),

    IODESC_ENT(TIMER),

    IODESC_ENT(ADC),

    IODESC_ENT(WATCHDOG),

    };

    赫然发现IODESC_ENT(TIMER)这一行,结合之前GPIO的类似分析,IODESC_ENT宏如下:

    #define IODESC_ENT(x) { (unsigned long)S3C24XX_VA_##x, S3C2410_PA_##x, S3C24XX_SZ_##x, MT_DEVICE }

    至此,TIMER, USBHOST,USBDEV,lcd,adc,watchdog等的静态映射都看得很明白了。



上一页  [1] [2] 


本文关键字:暂无联系方式嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术

《静态映射机制的原理分析》相关文章>>>