/***********************************************************************
* 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 差异的更多相关文章

  1. I.MX6 Linux Serial Baud Rate hacking

    /******************************************************************************** * I.MX6 Linux Seri ...

  2. I.MX6 Linux mipi配置数据合成

    /*************************************************************************** * I.MX6 Linux mipi配置数据合 ...

  3. I.MX6 linux Qt 同时支持Touch、mouse

    /***************************************************************************** * I.MX6 linux Qt 同时支持 ...

  4. I.MX6 Linux udev porting

    /*********************************************************************** * I.MX6 Linux udev porting ...

  5. I.MX6 Linux 自动获取AR1020 event input节点

    /*********************************************************************** * I.MX6 Linux 自动获取AR1020 ev ...

  6. I.MX6 Linux kernel LVDS backlight enable

    /*************************************************************************** * I.MX6 Linux kernel LV ...

  7. I.MX6 Linux Qt 启动流程跟踪

    /************************************************************************** * I.MX6 Linux Qt 启动流程跟踪 ...

  8. I.MX6 Linux I2C device& driver hacking

    /******************************************************************************************* * I.MX6 ...

  9. I.MX6 Linux 3.0.35 SD boot

    /********************************************************************************* * I.MX6 Linux 3.0 ...

随机推荐

  1. F.I.S本地环境的搭建教程

    一.准备开发环境: 1.安装JRE 2.安装nodejs 最好是msi文件,比较省事. 3.(如果是PHP项目)安装php. 首先下载php(我的是5.5.15版本,win7 64位系统) zip,然 ...

  2. 刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第五章 3(Sorting/Searching)

    第一题:340 - Master-Mind Hints UVA:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Item ...

  3. GridControl Find/Clear 添加图标

    public static void ControlFind(GridControl grid) { FindControl fControl = null; foreach (Control ite ...

  4. excel设置下拉菜单,并且不同值会显示不同颜色

    工作中常常要用的excel,每次都会有新的需求,然后不会,然后百度,然后过段时间可能就又忘了,于是就想说,自己记录下来~~~因为自己用的都是2010,其实哪个版本都差不多,都是应该可以找到相应的按钮滴 ...

  5. 微软VSS的超级BUG

    发现问题:今天一个新同事,无意中发现他直接就登录进VSS了,并且还是“admin”用户: 解决问题:于是开始在网上找度娘和谷歌帮忙,真是不查不要紧,一查吓一跳,VSS本身就存在这个bug,并且是一个超 ...

  6. 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 ...

  7. Spine的纹理导出问题

    发现美术给过来的资源,集合到unity后,发现用Spine的默认材质Spine/Skeleton有毛边问题.对比demo的图片后发现demo的图片(都是png格式)没有白色块,而自己的图片有. 原因是 ...

  8. qt中如何启动其他应用程序(如果不成功,还有许多原因即QProcess::ProcessError可供分析)

    类 QDesktopServices 提供的方法 访问 常用的桌面 服务 , 如 浏览 器 . 播放器. 电子邮件客户端 . 我们 使用 QDesktopServices :: openUrl(url ...

  9. 对QT的理解——能在公司里不做Java,不做很偏门的产品,不使用偏门的语言,还有钱挣,要有感恩的心

    我的理解: QT做应用软件可以很强大,界面足够漂亮(最有意思的是QSS,让我刮目相看),应该是足够了.同时QT也提供了源码,不过超级复杂,难以理解,所以还是无法深入底层.另外它提供了一个额外的好处,就 ...

  10. Hibernate笔记——第一个简单实例

     1. 首先进行框架配置 导包 hibernate配置xml文件 ======================= 2. 创建并配置POJO类 Hibernate是操作持久化层的框架,和数据库打交道,其 ...