资源简介
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
相关资源
- Android TCP_Client
- wget 完整版 for android 支持Android8.0 aa
- 4000套android源码,2058套ios源码,存在
- android背单词源代码
- DownDemo.zip
- 科大讯飞6麦CAE集成指南_android_V1.2
- 手机应用管理器的实现完整版
- 图中找图对比,Java源代码,Android源代
- Android Studio 字体主题样式包
- android系统内置数据库字段描述
- Android手机遥控智能小车源码
- android选择图片或拍照图片上传到服务
- AndroidSdkApiDocsFULL网盘地址.txt
- mqtt的android端jar包
- android简易日记本
- android打地鼠源码
- android 自定义控件 小球圆周运动
- Android仿照苹果界面,手写的计算器
- android opengl 贝塞尔曲线
- Android 强制开启GPS
- Android自定义键盘之中文键盘demo
- android本地文件上传至服务器
- android购书系统
- android 写的猜纸牌游戏源码
- Android 实现闪屏页+功能引导页
- android毕设翻译中英文都有
- Linux下启动和停止jar包运行的脚本
- json实现android客户端与服务器通信,用
- 仿 nrf master control panel的开源BLE调试程
- java连接Linux给用户赋权限utils
评论
共有 条评论