Android 从硬件到应用:一步一步向上爬 1 -- 从零编写底层硬件驱动程序

本文将介绍如何从零开始编写Android底层硬件驱动,以TI AM335X Starter Kit为例,通过设置GPIO时钟、输出使能及数据输出,控制LED状态。通过编写驱动程序android_gpio.c并编译生成uImage,成功创建AdrIO设备,为后续的硬件调用打下基础。
摘要由CSDN通过智能技术生成

硬件平台: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࿱

第一章 建立ANDROID应用开发环境 - 5 - 1.1 步骤一:下载并安装JDK (JAVA SE DEVELOPMENT KIT) - 5 - 1.2 步骤二:下载并安装ADT集成开发环境和ANDROID SDK - 6 - 1.2.1 下载Android SDK (API 17) - 7 - 1.2.2 启动ADT集成开发环境 (Android Developer Tools) - 8 - 1.3 步骤三:创建ANDROID模拟器 - 9 - 1.4 步骤四:开发第一个ANDROID程序 (验证开发环境是否搭建成功) - 11 - 1.4.1 创建HelloWorld工程 - 11 - 1.4.2 在模拟器运行Android程序 - 13 - 1.5 步骤五:建立TINY4412调试环境 - 13 - 1.5.1 安装USB ADB驱动程序 - 13 - 1.5.2 在Tiny4412上测试ADB功能 - 14 - 1.5.3 通过USB ADB在Tiny4412上运行程序 - 16 - 1.5.4 在Tiny4412上调试Android程序 - 18 - 第二章 在ANDORID程序中访问硬件 - 20 - 2.1 如何使用函数库(LIBFRIENDLYARM-HARDWARE.SO)? - 20 - 2.2 函数库(LIBFRIENDLYARM-HARDWARE.SO)接口说明 - 22 - 2.2.1 通用的输入输出接口 - 22 - 2.2.2 串口通讯的接口说明 - 23 - 2.2.3 开关LED的接口说明 - 24 - 2.2.4 让PWM蜂鸣器发声和停止发声的接口说明 - 24 - 2.2.5 读取ADC的转换结果的接口说明 - 24 - 2.2.6 I2C接口说明 - 25 - 2.2.7 SPI接口说明 - 26 - 2.2.8 GPIO接口说明 - 28 - 2.3 示例程序说明 - 29 - 2.3.1 在板LED示例 - 29 - 2.3.2 GPIO示例 - 30 - 2.3.3 串口通讯示例 - 34 - 2.3.4 PWM示例 - 35 - 2.3.5 A/D转换示例 - 36 - 2.3.6 I2C& EEPROM示例 - 36 - 2.3.7 SPI示例 - 37 - 2.4 在ADT中导入示例工程 - 37 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Marvin_wu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值