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 ...
随机推荐
- Properties的用法
/** * Description:Properties是HashTable的子類,其存儲形式鍵值對. */ import java.util.*; public class PropertysTes ...
- Twitter注册
Twitter注册 - (一般分享不了是回调地址不对) 1.打开twitter的官网https://dev.twitter.com,如果还没有注册账号的,需要注册账号,已经注册账号的,请先登录: 2. ...
- c#百分比
<div class="inner" style="width:@string.Format("{0:P1}", item.Maturitys) ...
- ExtJS之Ext.getDom
<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...
- 使用XShell工具密钥认证登录Linux系统
如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥.哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方式登 ...
- Java-数据结构与算法-逢3减1-面向对象
1.要求:有一群人围成一圈数数,逢3退1人,要求算出最后留下来的人的下标2.用面向对象思想,有三个步骤:(1)有哪些类:找名词--"有一群人围成一圈",所以有类People,Peo ...
- Hibernate笔记——C3P0配置
Hibernate作为持久层(ORM)框架,操作数据库,自然也就离不开数据库连接池了.其支持多种连接池,这里就用最熟悉的C3P0连接池. C3P0连接池前面已经介绍了并使用很多次了就不再详细说明了. ...
- PageLayoutControl的基本操作
整理了下对PageLayoutControl的基本功能操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...
- MyBatis学习总结_01_MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- Maven实战(六)--- dependencies与dependencyManagement的区别
在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结下来. 1.DepencyManagem ...