资源简介
Android系统中上层UI是使用Java语言完成的,涉及到底层驱动的话,需要SO库(JNI层)的连接。所以针对LED控制,将从底层驱动、JNI层SO连接库和上层UI界面进行设计。
此处LED驱动程式采用动态编译,可随时进行修改、编译和载入驱动。但需要手动加载驱动和创建设备节点.

代码片段和文件信息
/* linux/drivers/dmatek/pad4412_led/led.c
*
* DMATEK
* lyp
* 2016.04.12
*
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LED_ON 1
#define LED_OFF 0
#define LED_MAJOR 230
#define led_name “led“
#define EXYNOS4412_baseADDR 0x11400000
#define EXYNOS4412_GPK3CON (* (volatile unsigned int *)0x114000A0)//(EXYNOS4412_baseADDR + 0xA0)
#define EXYNOS4412_GPK3DAT (* (volatile unsigned int *)0x114000A4)//(EXYNOS4412_baseADDR + 0xA4)
#define GPIO_GPK3_LED18 EXYNOS4_GPK3(3) //led 18
#define GPIO_GPK3_LED19 EXYNOS4_GPK3(4) //led 19
static void led_off(int led_num)
{
//int gpk3dat;
//gpk3dat = __raw_readl(EXYNOS4412_GPK3DAT);
switch(led_num)
{
case 1: //led1
//gpk3dat &=~(1<<3); //D18
gpio_direction_output(GPIO_GPK3_LED180);
break;
case 2: //led2
//gpk3dat &=~(1<<4); //D19
gpio_direction_output(GPIO_GPK3_LED190);
break;
default:
break;
}
//__raw_writel(gpk3datEXYNOS4412_GPK3DAT);
}
static void led_on(int led_num)
{
//int gpk3dat;
//gpk3dat = __raw_readl(EXYNOS4412_GPK3DAT);//S3C_GPBDAT
switch(led_num)
{
case 1: //led1
//gpk3dat |= (1<<3); //D18
gpio_direction_output(GPIO_GPK3_LED181);
break;
case 2: //led2
//gpk3dat |= (1<<4); //D19
gpio_direction_output(GPIO_GPK3_LED191);
break;
default:
break;
}
//__raw_writel(gpk3datEXYNOS4412_GPK3DAT);
}
static ssize_t led_read(struct file *file char __user *buf size_t count loff_t *offset)
{
return count;
}
static ssize_t led_write(struct file *file const char __user *buf size_t count loff_t *offset)
{
return 0;
}
static int led_open(struct inode *inode struct file *file)
{
printk(“led_open +++++++1\n“ );
gpio_direction_output(GPIO_GPK3_LED180);
gpio_direction_output(GPIO_GPK3_LED190);
/*unsigned int val;
val = readl(EXYNOS4412_GPK3CON);
val &= ~ (0xff <<0);
val |= (1 << 12)|(1<<16);
writel(val EXYNOS4412_GPK3CON); //将GPK3和GPK4设置为输出模式
val = readl(EXYNOS4412_GPK3DAT);
val &= ~ ((1 <<3)|(1<<4));
writel(val EXYNOS4412_GPK3DAT); //将GPK3和GPK4置为低*/
printk(“led_open -------1\n“ );
return 0;
}
/* release command for led device file */
static int led_close(struct inode *inode struct file *file)
{
// printk(“led_close +++1\n“);
return 0;
}
/* ioctl command for led device file */
//static int led_ioctl(struct
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4533 2016-04-13 09:42 led.c
文件 63792 2016-04-12 17:53 led.ko
文件 402 2016-04-12 10:09 Makefile
- 上一篇:Android TCP_Client
- 下一篇:intelHaxm.exe
相关资源
- pc与android通过usb socket实现手机通信
- android毕业设计
- 百度地图自定义Markerandroid
- Android分区工具包
- android-support-v4.jar已打包进去源代码
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- 个人根据Android移动开发案例详解手写
- 在linux系统下用java执行系统命令实例
- android 视频播放器 项目和原码
- Android【动画】【特效】 17种动画特效
- 基于Android智能家居详细设计(经典)
- android通过JDBC连接Mysql数据库
- Android通讯录的源代码
- android 瀑布流Demo
- 指纹传感器FPC1080在android下的驱动
- delphi xe5 android 调用照相机摄像头拍照
- Android手机连连看游戏源码
- android-sdk-windows v2.3离线完整版
- android 底部弹出菜单(带透明背景)
- Android工程模式简介.rar
- Android蓝牙和Cors网络开发源码
- Android powermanger wakelock
- Android v7的一些jar包
- 最新android supportV7包
- android图片压缩工具类分享
- 单机搭建Android(解决Network is unreach
- 安装libwebkitgtk提示没有可用的软件包
- Android上监听收到的短信(SMS)
- android电商app源码
- Android代码-多功能拨号盘源码.zip
评论
共有 条评论