zoukankan      html  css  js  c++  java
  • 从LINUX 驱动 到APK (2)

    通过c语言实现对对应节点的操作修改对应的参数值

      此次在实现了对应的内核驱动的基础上实现linux应用程序访问对用的驱动节点的过程。实现过程:添加对用的实现文件,添加编译规则,编译实现

      1、添加对用的实现文件

        选择合适的位置存放相关源码,本次我存放在:vendorwelcome 目录下,新建welcome.c

        Tips:在编译出现未定义的情况,有可能是内核升级后没有对应的头文件,可以linux下使用终端man 函数名 可以看到函数使用及定义的相关头文件,添加即可

    #include <stdio.h>
    #include <stdlib.h>
    #include <fcntl.h>
    #include <unistd.h>
    //驱动节点为内核生成的节点
    #define DEVICE_NAME "/dev/welcomf"
    
    int main (int argc,char** argv){
        int fd = -1;
        int val = 0;
        fd = open(DEVICE_NAME,O_RDWR);
        if(fd == -1){
            printf("Failed to open device %s.%m
    ",DEVICE_NAME);
            return -1;
        }
        
        printf("Read original value : 
    ");
        read(fd,&val,sizeof(val));
        printf("val = %d.
    ",val);
    
        val = 2;
        printf("write value %d to %s.
    ",val,DEVICE_NAME);
        write(fd,&val,sizeof(val));
    
        printf("Read  value again : 
    ");
        read(fd,&val,sizeof(val));
        printf("val = %d.
    ",val);
    
        return 0;
    }

      2、添加编译规则 在此目录下添加 Android.mk    

    LOCAL_PATH:=$(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE_TAGS:=optional
    LOCAL_MODULE:=welcomebin
    LOCAL_SRC_FILES:=$(call all-subdir-c-files)
    include $(BUILD_EXECUTABLE)

      3、编译实现 直接编译模块 mmm vendor/welcome

        然后打包下载 ,或者直接将生产的bin文件使用adb push到system/bin 目录即可----如果不能使用注意节点权限问题

       通过adb 进入到相应目录运行该bin文件即可。能正确输出log 及结果 即完成代码

  • 相关阅读:
    NetSuite Batch Process Status
    NetSuite generated bank files and the Bank Reconciliation process
    Global Search file content in Gitlab repositories, search across repositories, search across all files
    FedEx Package Rate Integration with NetSuite direct integrate by WebServices
    git Merge branches
    git tag and NetSuite deployment tracking
    API 读写cookie的方法
    C# 生成缩略图
    解决jquery操作checkbox全选全不选无法勾选问题
    JS读取写入删除Cookie方法
  • 原文地址:https://www.cnblogs.com/atlas2016/p/7574357.html
Copyright © 2011-2022 走看看