硬件平台:TI AM335X Starter Kit
开发源码:TI-Android-ICS-4.0.3-DevKit-EVM-SK-3.0.1.bin
主机系统:Ubuntu 10.04
这次写《Android 从硬件到应用》是想尝试从底层的最简单的GPIO硬件驱动开始,一步一步的向上走,经过硬件抽象层HAL、JNI方法等,最终编写出APP,达到硬件调用的目的,期间会增加一些Android下C程序测试底层驱动的细节。既然是从零编写驱动,那就要脱离源码包里已有的一些api函数,从硬件电路开始。找到EVM板GPIO处原理图:
我要控制LED D1的状态,如上图所示,D1接了Q4,也就是BSS138,N沟道的MOS器件,AM335X_GPIO_LED4为高电平时,Q4的栅极漏极导通,D1为亮,反之,灭。首先设置GPIO时钟:
一、CM_PER_GPIO1_CLKCTRL:地址0x44E000AC 要装载的值为 0x00040002
接着设置GPIO1输出使能:
二、GPIO_OE