一、 DM6446 GPIO的介绍
说到LINUX 驱动移植,没有移植过的朋友,或刚刚进入LINUX领域的朋友,最好去看看《LINUX 设备驱动程序》第三版,有个理论或感性的认识。该版本是基于2.6.10的基础上描述的,经典读物,网上有电子版,但是建议花几十元买本书是值得的。
GPIO是嵌入式系统最简单、最常用的资源了,比如点亮LED,控制蜂鸣器,输出高低电平,检测按键,等等。GPIO分输入和输出,在Montavista linux-2.6.18中,有关GPIO的最底层的寄存器驱动,是在linux-2.6.18_pro500\arch\arm\mach-davinci目录下的gpio.c,这个是寄存器级的驱动,搞过单片机MCU的朋友应该比较熟悉寄存器级的驱动。根据DM6446的芯片DATASHEET,DM6446的GPIO分为3组BANK,BANK01组包括GPIO0~GPIO31,BANK23组包括GPIO32~GPIO63,BANK45组包括GPIO64~GPIO70,由于硬件资源的原因,DM6446并不是GPIO管脚就是纯粹的GPIO脚,GPIO管脚和其他一些标准接口复用相同的引脚