I.MX6 Linux、Jni ioctl 差异
/***********************************************************************
* I.MX6 Linux、Jni ioctl 差异
* 声明:
* 在使用Jni的ioctl()的过程中,发现不能像普通的Linux函数那样使用,
* 必须使用3各参数的ioctl()函数。
*
* 2015-12-20 深圳 南山平山村 曾剑锋
**********************************************************************/ #include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <jni.h> #include "android/log.h"
static const char *TAG="Buzz";
#define LOGE(fmt, args...) __android_log_print(ANDROID_LOG_ERROR, TAG, fmt, ##args) #define BUZZER_ENABLE 82
#define BUZZER_FREQENCY 83
#define BUZZER_DISABLE 84 /*
* Class: com_android_buzz_Buzz
* Method: enable
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_android_buzz_Buzz_enable
(JNIEnv *env, jobject obj) {
int fd = open("/dev/buzzer", O_RDWR);
if ( fd == - ) {
LOGE("open buzzer device error.");
return;
} // ioctl(fd, BUZZER_ENABLE); // 不能这样使用
ioctl(fd, BUZZER_ENABLE, ); // 得这么使用 close(fd); //LOGE("enable buzzer device. ");
} /*
* Class: com_android_buzz_Buzz
* Method: setFrequency
* Signature: (I)V
*/
JNIEXPORT void JNICALL Java_com_android_buzz_Buzz_setFrequency
(JNIEnv *env, jobject obj, jint frequency) { int fd = open("/dev/buzzer", O_RDWR);
if ( fd == - ) {
LOGE("open buzzer device error.");
return;
} ioctl(fd, BUZZER_FREQENCY, frequency); close(fd); //LOGE("set buzzer device frequency. ");
} /*
* Class: com_android_buzz_Buzz
* Method: disable
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_android_buzz_Buzz_disable
(JNIEnv *env, jobject obj) { int fd = open("/dev/buzzer", O_RDWR);
if ( fd == - ) {
LOGE("open buzzer device error.");
return;
} // ioctl(fd, BUZZER_DISABLE); // 不能这样使用
ioctl(fd, BUZZER_DISABLE, ); // 得这么使用 close(fd); //LOGE("disable buzzer device. ");
}
I.MX6 Linux、Jni ioctl 差异的更多相关文章
- I.MX6 Linux Serial Baud Rate hacking
/******************************************************************************** * I.MX6 Linux Seri ...
- I.MX6 Linux mipi配置数据合成
/*************************************************************************** * I.MX6 Linux mipi配置数据合 ...
- I.MX6 linux Qt 同时支持Touch、mouse
/***************************************************************************** * I.MX6 linux Qt 同时支持 ...
- I.MX6 Linux udev porting
/*********************************************************************** * I.MX6 Linux udev porting ...
- I.MX6 Linux 自动获取AR1020 event input节点
/*********************************************************************** * I.MX6 Linux 自动获取AR1020 ev ...
- I.MX6 Linux kernel LVDS backlight enable
/*************************************************************************** * I.MX6 Linux kernel LV ...
- I.MX6 Linux Qt 启动流程跟踪
/************************************************************************** * I.MX6 Linux Qt 启动流程跟踪 ...
- I.MX6 Linux I2C device& driver hacking
/******************************************************************************************* * I.MX6 ...
- I.MX6 Linux 3.0.35 SD boot
/********************************************************************************* * I.MX6 Linux 3.0 ...
随机推荐
- F.I.S本地环境的搭建教程
一.准备开发环境: 1.安装JRE 2.安装nodejs 最好是msi文件,比较省事. 3.(如果是PHP项目)安装php. 首先下载php(我的是5.5.15版本,win7 64位系统) zip,然 ...
- 刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第五章 3(Sorting/Searching)
第一题:340 - Master-Mind Hints UVA:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Item ...
- GridControl Find/Clear 添加图标
public static void ControlFind(GridControl grid) { FindControl fControl = null; foreach (Control ite ...
- excel设置下拉菜单,并且不同值会显示不同颜色
工作中常常要用的excel,每次都会有新的需求,然后不会,然后百度,然后过段时间可能就又忘了,于是就想说,自己记录下来~~~因为自己用的都是2010,其实哪个版本都差不多,都是应该可以找到相应的按钮滴 ...
- 微软VSS的超级BUG
发现问题:今天一个新同事,无意中发现他直接就登录进VSS了,并且还是“admin”用户: 解决问题:于是开始在网上找度娘和谷歌帮忙,真是不查不要紧,一查吓一跳,VSS本身就存在这个bug,并且是一个超 ...
- Android Non-UI to UI Thread Communications(Part 2 of 5)
Original:http://www.intertech.com/Blog/android-non-ui-to-ui-thread-communications-part-2-of-5/ his i ...
- Spine的纹理导出问题
发现美术给过来的资源,集合到unity后,发现用Spine的默认材质Spine/Skeleton有毛边问题.对比demo的图片后发现demo的图片(都是png格式)没有白色块,而自己的图片有. 原因是 ...
- qt中如何启动其他应用程序(如果不成功,还有许多原因即QProcess::ProcessError可供分析)
类 QDesktopServices 提供的方法 访问 常用的桌面 服务 , 如 浏览 器 . 播放器. 电子邮件客户端 . 我们 使用 QDesktopServices :: openUrl(url ...
- 对QT的理解——能在公司里不做Java,不做很偏门的产品,不使用偏门的语言,还有钱挣,要有感恩的心
我的理解: QT做应用软件可以很强大,界面足够漂亮(最有意思的是QSS,让我刮目相看),应该是足够了.同时QT也提供了源码,不过超级复杂,难以理解,所以还是无法深入底层.另外它提供了一个额外的好处,就 ...
- Hibernate笔记——第一个简单实例
1. 首先进行框架配置 导包 hibernate配置xml文件 ======================= 2. 创建并配置POJO类 Hibernate是操作持久化层的框架,和数据库打交道,其 ...