无网不进  
软硬件开发

编写C程序快速测试硬件驱动:

在Android 源码根目录下的external文件夹创建driver_test文件夹:

cd external

mkdir driver_test

cd driver_test

创建Android.mk:

 

[javascript] view plain copy
 
  1. LOCAL_PATH := $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3. LOCAL_MODULE_TAGS := optional  
  4. LOCAL_MODULE := driver_test  
  5. LOCAL_SRC_FILES := driver_test.c  
  6. include $(BUILD_EXECUTABLE)  

创建driver_test.c:

 

 

[javascript] view plain copy
 
  1. #include <stdio.h>    
  2. #include <stdlib.h>    
  3. #include <fcntl.h>    
  4.         
  5. int main(int argc, char *argv[])    
  6. {    
  7.     int  fd;    
  8.     int  val=0;    
  9.     
  10.     fd=open("/dev/AdrIO",O_RDWR);    
  11.         
  12.     if(fd<0)    
  13.     {    
  14.         printf("open device failed !\n");    
  15.         exit(1);    
  16.     }    
  17.     else    
  18.     {    
  19.         printf("open success ! \n");    
  20.     }    
  21.           
  22.     write(fd,argv[1],1);    
  23.             
  24.     close(fd);    
  25.     return 0;    
  26. }    

回到Android源码根目录:make driver_test

 

最初可能会提示错误:

 

host c++: libhost <= build/libs/host/pseudolocalize.cpp/bin/bash: g++: 未找到命令

make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o] 错误 127

解决:

sudo -i
aptitude install g++

sudo apt-get install build-essential

安装完成后再执行:make driver_test

最终编译完成:

 

[javascript] view plain copy
 
  1. Install: out/target/product/generic/system/lib/libm.so  
  2. Install: out/target/product/generic/system/bin/driver_test  

将out/target/product/generic/system/bin/driver_test拷贝到AM335X文件系统中,启动Android

 

运行:

./driver_test 1 (这时D1亮)

 

./driver_test 0 (这时D1灭)

测试成功,利用此方法可以快速测试android下的linux内核驱动

posted on 2018-01-10 13:44  无网不进  阅读(141)  评论(0)    收藏  举报