s3c2410_gpio_cfgpin中获得基地址语句如下:
void __iomem *base = S3C24XX_GPIO_BASE(pin);
__iomem 不太明白什么用处,直接去掉,编译调试同样没有问题。
通过打印得到
[root@FriendlyARM /mnt]# insmod debug.ko
S3C24XX_GPIO_BASE(0[0x0])=0xfb000000
S3C24XX_GPIO_BASE(32[0x20])=0xfb000010
S3C24XX_GPIO_BASE(64[0x40])=0xfb000020
S3C24XX_GPIO_BASE(96[0x60])=0xfb000030
S3C24XX_GPIO_BASE(128[0x80])=0xfb000040
S3C24XX_GPIO_BASE(160[0xa0])=0xfb000050
S3C24XX_GPIO_BASE(192[0xc0])=0xfb000060
也就是a b c d e f g端口基地址通过宏S3C24XX_GPIO_BASE直接计算得到 0xfb0 00000 -0xfb0 00060,然后通过base +0或8 可以操作con或pull。
我的疑问是,没发觉这玩意怎么保护硬件的呀? 也没有用到什么内存映射嘛,请教高人点拨!
[ 此帖被kasim在2009-11-01 21:01重新编辑 ]