main.c
#include
#include
#include
#include
#include "joy.h"
#include "vkey.h"
#include
#define mask_up 1
#define mask_down 2
#define mask_left 4
#define mask_right 8
int main(void)
#if 1
if(openvkey()<0)
#endif
printf("hello world\r\n");
while(1)
else if(value==32767)
else if(value==0)
if(mask&mask_down)
}reportvkey(ev_syn, syn_report, 0);
}else if(key==24)
else if(value==32767)
else if(value==0)
if(mask&mask_right)
}reportvkey(ev_syn, syn_report, 0);
}else if(key==11)
else if(key==13)
}else usleep(1000);
}closevkey();
closejoy();
return 0;
}vkey.h vkey.c
#ifndef __vkey_h__
#define __vkey_h__
int reportvkey(uint16_t type, uint16_t keycode, int32_t value);
int openvkey(void);
void closevkey(void);
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
static int fd;
int reportvkey(uint16_t type, uint16_t keycode, int32_t value)
return 0;
}int openvkey(void)
//娉ㄥ唽浜嬩歡
ioctl(fd, ui_set_evbit, ev_syn); //鍚屾浜嬩歡
ioctl(fd, ui_set_evbit, ev_key); //鐫夐敭浜嬩歡
//娉ㄥ唽鐫夐敭
for(i = 0; i < 128; i++)
//鍒涘緩鉶氭嫙璁懼
memset(&uidev, 0, sizeof(struct uinput_user_dev));
snprintf(uidev.name, uinput_max_name_size, "uinput-sample");
uidev.id.bustype = bus_usb;
uidev.id.vendor = 0x1234; //搴旇鏄殢渚垮啟鐨?
uidev.id.product = 0xfedc; //搴旇鏄殢渚垮啟鐨?
uidev.id.version = 1; //搴旇鏄殢渚垮啟鐨?
ret = write(fd, &uidev, sizeof(struct uinput_user_dev));
ret = ioctl(fd, ui_dev_create);
if (ret < 0)
return 0;
}void closevkey(void)
joy.h joy.c
#define __joy_h__
int openjoy(const char *dev);
int readjoy(int *key,int *value);
void closejoy(void);
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
static int fd;
int openjoy(const char *dev)
int readjoy(int *key,int *value)
void closejoy(void)
makefile
cc = gcc
prom = joy2key
deps = $(shell find ./ -name "*.h")
src = $(shell find ./ -name "*.c")
obj = $(src:%.c=%.o)
$(prom): $(obj)
@echo $(src)
$(cc) -o $(prom) $(obj)
%.o: %.c $(deps)
$(cc) -c $< -o $@
clean:
rm -rf $(obj) $(prom)
Linux使用nfs實現磁碟對映
今天工作中遇到的問題,使用某開發板,需要使用linux將檔案對映到開發板系統中,這裡記錄一下,兩個linux系統如何使用nfs實現磁碟對映。假設需要把放在 192.168.100.101 上的檔案對映到 192.168.100.102 上 yum install nfs utils rpcbindv...
linux下使用SSH實現埠對映
在實際的開發過程中,需要在外邊主機訪問區域網內的內網埠,可以將遠端伺服器乙個埠remote port繫結到本地埠port,其中 c是進行資料壓縮,f是後台操作,只有當提示用 戶名密碼的時候才轉向前台。n是不執行遠端命令,在只是埠 時這條命令很有用處。g 是允許遠端主機連線本地 埠。r表明是將遠端主機...
Linux記憶體對映檔案原理詳解及實現步驟
有兩種型別的記憶體對映檔案 2 私有型,當程序建立的對映只是為讀檔案,而不是寫檔案時才會使用這種對映。出於這種目的,私有對映的效率要比共享對映的效率更高。但是對私有對映頁的任何寫操作都會使核心停止對映該檔案中的頁。因此寫操作既不會改變磁碟上的檔案,對訪問相同檔案的其他程序也是不可見的。但是私有記憶體...