/***********************************************************************
* 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. JSP 页面传参和接受参数

    <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding=&q ...

  2. uva 10817

    Problem D: Headmaster's Headache Time limit: 2 seconds The headmaster of Spring Field School is cons ...

  3. POJ 1477

    #include <iostream> #define MAXN 100 using namespace std; int _[MAXN]; int main() { //freopen( ...

  4. Activity学习(二)——生命周期

    一.什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面.在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Ac ...

  5. javascript中onclick事件能调用多个方法吗

    Q: javascript中onclick事件能调用多个方法吗? A: 可以的,方法如下onclick="aa();bb();cc();"每个方法用“;”分号隔开就行了

  6. (转)android屏幕适配

    声明:eoe文章著作权属于作者,受法律保护,转载时请务必以超链接形式附带如下信息 原文作者: zhuangyujia 原文地址: http://my.eoe.cn/zhuangyujia/archiv ...

  7. 《从零开始学习jQuery》及《jQuery风暴》学习笔记

    第一章 jQuery入门 1.用$()函数其实是一个事件,使用这个函数调用的方法,会在DOM加载完毕.资源文件加载完之前触发. 第二章 必须知道的JavaScript知识 1.JavaScript实际 ...

  8. C#中检测某个类(方法、程序集等各种部分)是否应用了指定的特性以及对特性的一些简单操作

    前言:不管是自定义的一些特性,或者是C#中内置的特性,均继承自Attribute这个类,这个类也提供了一些方法,方便我们使用. Attribute类有三个静态方法:1.IsDefined,如果有指定的 ...

  9. adb 安卓opencv manager报错:adb server is out of date.killing

    原因:ref:http://jingyan.baidu.com/article/d621e8da0dee022865913fce.html      最后发现360mobil.exe占用 5037 通 ...

  10. Android NDK 和 OpenCV 整合开发总结(3)

    Android NDK 和 OpenCV 整合开发总结(3) http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-open ...