linux/Android LED deamon

/*
 * author:          chwenj@gmail.com.
 * Agreement:       GPL.
 */
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <termios.h>
#include <errno.h>
#include <pthread.h>
#include <time.h>
#include<signal.h>

#define DEVICE_FILE "/dev/gpio_cdev"

typedef struct {
    unsigned char count;  //GPIO序列
    unsigned char data;   //GPIO电平状态
} gpio_userspace_t;

int fd;

void init_deamon()
{
    int pid;
    int i;

    if (pid < 0)
        exit(0);
    else if (pid < 0)
        exit(1);

    setsid();

    if (pid = fork())
        exit(0);
    else if (pid < 0)
        exit(1);

    chdir("/system");
    umask(0);

    return;
}

int main(int argc, char **argv)
{
    int fd;
    gpio_userspace_t gpio;

    signal(SIGCHLD, SIG_IGN);

    init_deamon();

    while (1) {
        fd = open(DEVICE_FILE, O_RDWR);
        
        //#PH23: LED off
        gpio.count = 6;   //GPIO序列号
        gpio.data = 1;    //GPIO电平值
        write(fd, &gpio, sizeof(gpio_userspace_t));

        sleep(4);

        //#PH23: LED on
        gpio.count = 6;   //GPIO序列号
        gpio.data = 0;    //GPIO电平值
        write(fd, &gpio, sizeof(gpio_userspace_t));
    
        sleep(4);

        close(fd);
    
    }

    return 0;
}

<pre name="code" class="html">LOCAL_PATH:= $(call my-dir)

ifeq (a, a) 
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= led-service.c
LOCAL_MODULE := led-service
LOCAL_SHARED_LIBRARIES:= libcutils libutils
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE) 
endif

 
<pre name="code" class="html">service led-service /system/bin/led-service
class main
user root
group root
oneshot

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值