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 ...
随机推荐
- FM算法
1.FM背景 在计算广告中,CTR预估(click-through rate)是非常重要的一个环节,因为DSP后面的出价要依赖于CTR预估的结果.在前面的相关博文中,我们已经提到了CTR中相关特征工程 ...
- HDU 4027 Can you answer these queries?(线段树的单点更新+区间查询)
题目链接 题意 : 给你N个数,进行M次操作,0操作是将区间内的每一个数变成自己的平方根(整数),1操作是求区间和. 思路 :单点更新,区间查询,就是要注意在更新的时候要优化,要不然会超时,因为所有的 ...
- (转)android屏幕适配
声明:eoe文章著作权属于作者,受法律保护,转载时请务必以超链接形式附带如下信息 原文作者: zhuangyujia 原文地址: http://my.eoe.cn/zhuangyujia/archiv ...
- Linux多线程之互斥
题目 共要卖票20张,由命令行输入窗口数,由线程模拟窗口.每卖掉一张票,屏幕显示由几号窗口所卖,一并显示剩余票数 思路 由于票数 ticket_cnt 是全局变量,因此每当一个线程将其减一(卖出一张票 ...
- html 页面表单如果是disabled,则不能提交到服务器端,request.getParameter得到的将为null
html 页面表单如果是disabled,则不能提交到服务器端,request.getParameter得到的将为null 解决方法:使用hidden 利用javascript赋值,传递到后台
- 处理11gR2 RAC集群资源状态异常INTERMEDIATE,CHECK TIMED OUT
注意节点6,7的磁盘CRSDG的状态明显不正常.oracle@ZJHZ-PS-CMREAD-SV-RPTDW06-DB-SD:~> crsctl status resource -t |less ...
- SQL SERVER ->> Wait Stats
等待状态是隔离SQL SERVER性能问题的一个重要手段,从实例级别入手.可以大概看出SQL SERVER在过去某段时间内是否处于某种资源的吃紧状态.不过取决于你是否有建立有效的性能数据收集机制.sy ...
- Seajs demo
index.html <!doctype html> <html lang="en"> <head> <meta charset=&quo ...
- 重置mysql的root密码
由于本人记性比较差,今天的mysql的root密码又忘记了,咋办呢?只能重置root的密码了.具体的操作步骤如下: 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行, ...
- C#题型补充
让用户输入一个奇数,打印菱形,最长的行内容个数为用户输入的个数,并且由英文字母拼接而成 Console.Write("请输入一个数字:"); try { int a = Conve ...