這個ioctl的庫,可以與驅動層通過ioctl來通訊。編譯後生產test_ioctl的可執行文件。放在/system/bin下面。
可以在adb下面使用。來驗證驅動的正確性。
test_ioctl.c
#include
#include
#include
#include
#include
#include
/*下面定義應該與接收端對應*/
#define num 0x58
#define ioctl_start _io(num, 0x01)
#define ioctl_stop _io(num, 0x02)
#define ioctl_set _iow(num,0x03, unsigned int)
/*test_ioctl cmd:
0: stop
1: start
other: set parameter
*/int main(int argc, char **argv)
//fd = open("/dev/tty", o_rdwr | o_noctty | o_ndelay);
printf("test argc-->>%d\n",argc);
printf("test argv[0]-->>%s\n",argv[0]);
printf("test argv[1]-->>%s\n",argv[1]);
//printf("test argv[2]-->>%s\n",argv[2]);
//fd = open("/dev/ttymt1", o_rdwr );
fd = open(argv[1], o_rdwr );
// fd = open("/dev/fmtransmitter", o_rdonly);
if(fd <=0 )
else
sleep(5);
switch(cmd)
int val = strtoul(argv[3], 0, 0);
printf("ioctl_set val = %d\n", val);
ioctl(fd,ioctl_set, &val);
break;
default:
break;
}close(fd);
return 0;
}android.mk
local_path := $(call my-dir)
include $(clear_vars)
local_src_files := test_ioctl.c
local_shared_libraries := \
libcutils
local_certificate := platform
local_module := test_ioctl
include $(build_executable)
靜態庫的製作
靜態庫和動態庫 1.靜態庫 a和.framework 1.鏈結時,靜態庫會被完整地複製到可執行檔案中,被多次使用就有多分冗餘 2.核心 封裝,不讓別人看 lipo info 靜態庫 檢視靜態庫支援哪些架構 i386 iphone模擬器 3gs 4s x86 64 iphone模擬器 5s 6p ar...
靜態庫的製作
最近公司需要把一套流程封裝起來,採用了靜態庫的做法,順便記錄下靜態庫的製作過程。新建工程選擇framework,當然選擇static library也可以,static library的.a h 資源檔案就相當於framework,尤其是資源檔案,如果用static library,還需單獨供給使用...
靜態庫製作
靜態庫 要被包含到源程式中的庫 優點 執行速度快 缺點 占用系統資源比較多 使用的場合 對時間要求很高的場合 靜態庫的製作 1 把所有的源程式 c檔案 製作成目標檔案 o 檔案 gcc c mul.c o mul.o gcc c sub.c o sub.o gcc c add.c o add.o 2...