ioctl庫的製作

2021-07-25 12:49:58 字數 1508 閱讀 9503

這個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...