dzÎölinux¼üÅÌÉ豸¹¤×÷ºÍ×¢²áÁ÷³Ì
£¨1£©ÔÚ\drivers\input\Input.cÖС£
A£¬subsys_initcall(input_init);
B£¬static int __init input_init(void)ÖÐÍê³É¼¸¸öÖØÒªµÄ²Ù×÷£º
err = class_register(&input_class);ÒÔÊäÈëÀ෽ʽע²áÀà
input_proc_init(); //´´½¨procϵÄĿ¼ºÍÎļþ
register_chrdev(INPUT_MAJOR, "input", &input_fops); //×¢²á×Ö·ûÉ豸Çý¶¯³ÌÐòµ½ÄÚºË
£¨2£©ÔÚdrivers\input\keyboard\S3c-keypad.cÖУ¬ÊÇ×Ô¼ºµÄ°´¼ü´¦ÀíÎļþ¡£
A£¬¶¨Ò司androidÉϲãµÄÂëÖµ
#define KEYCODE_HOME 58
#define KEYCODE_POWER 50
struct s3c_keypad_gpio_key gpio_key_smdk6410[] = {
{IRQ_EINT(6), S3C64XX_GPN(6), 2, KEYCODE_POWER, 1},
{IRQ_EINT(7), S3C64XX_GPN(7), 2, KEYCODE_HOME, 1},
};
·Ö±ðÊÇÍⲿÖжϺţ¬GPIO¿ÚºÅ£¬ÂëÖµ¡£
B£¬probe¹ý³Ì£º
module_init(s3c_keypad_init); //°´¼üinit
platform_driver_register(&s3c_keypad_driver); //×¢²áƽ̨Çý¶¯
s3c_keypad_driverµÄprobeº¯ÊýÊÇÖ÷Òª´¦Àí¹ý³Ì£º
static int __init s3c_keypad_probe(struct platform_device *pdev)
{
struct input_dev *input_dev; //×¢²áÒ»¸öÊäÈëÉ豸
platform_get_resource(pdev, IORESOURCE_MEM, 0);
request_mem_region(res->start, size, pdev->name);
ioremap(res->start, size); //·ÖÅä×ÊÔ´
keypad_clock = clk_get(&pdev->dev, "keypad");
clk_enable(keypad_clock); //»ñµÃkeypadµÄclock
set_bit(EV_KEY, input_dev->evbit); //±êÖ¾input_devÊÇKEYÉ豸
s3c_gpio_cfgpin(gpio_key->gpio, S3C_GPIO_SFN(gpio_key->gpio_af));
Ïà¹ØÎĵµ£º
ÎÞÂÛ΢ÈíÈçºÎרעÓÚ×ÀÃæ£¬XµÄÉè¼Æ»¹ÊÇÄÜÈÃËûÃǺ¹ÑÕ¡£±È½ÏÒ»ÏÂWindowsÔ¶³Ì×ÀÃæ(2008ServerÖÕÓÚÓÐËù¸Ä½ø)ºÍXת·¢µÄЧ¹û¾Í¿ÉÒÔÀí½â£¬ÎªÊ²Ã´*nixµÄÊÀ½çÀïÏÔʾGUI»·¾³ÒÀ¿¿µÄ¾¹È»ÊÇServer-Client¼Ü¹¹¡£
ÔÚWindowsÏ£¬Ö»ÒªÊµÏÖÁ½¸öÒªËØ¾Í¿ÉÒÔʵÏÖXµÄת·¢£º1.X Server·þÎñ£»2.ssh¿Í»§¶Ë¡£Ç°Õß¿ÉÒÔÓÃXming£¬ºóÕß¿ÉÒÔÓÃputty»òopenS ......
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º
£¨1£©ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔÀí£¨³õ²½¶¨Îªarm9£©
£¨2£©±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ£¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£©
£¨3£©±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ»¸öǶÈëʽÈí¼þÏîÄ¿¡£
´ÓÊÂǶÈëʽÈí¼þ¿ª·¢µÄºÃ´¦ÊÇ ......
µÚÒ»´ÎÔÚLinuxÉϰ²×°OracleµÄʱºòÅöµ½Õâ¸öÎÊÌ⣬ºÇºÇ¡£Ö®Ç°ÔÚLinuxÉϰ²×°Oracleʱ£¬Ò»°ã¶¼Ê¹ÓÃRedHatϵÁеÄLinux£¬ÔÚ°²×°¹ý³ÌÖУ¬ÐèÒª×ö´óÁ¿µÄ°²×°Ç°Öù¤×÷£¬Èç°²×°RPM°ü£¬´´½¨×éºÍÓû§£¬ÐÞ¸ÄÄں˲ÎÊý£¬Ð޸Ļ·¾³±äÁ¿µÈ¡£Õâ´ÎʹÓõÄÊÇRedFlagµÄAsianux 3£¬¶øÇÒ×Ô´øOracleµÄ°²×°¸¨Öú¹¤¾ßOrana ......
understanding linux usb ehci device driver£¨2£©
understanding linux usb ehci device driver(2)
lm_tom@163.com
2. linux ehci device driver(ehci hcd)
2.1. linux usb subsystem arch overview(host)
2.2. ehci_hcd
2.3. ehci ʵÏֵĽӿÚ
2.3.1. ehci_pci_setup() (hc_driver->reset)
2.3.2. ehci_run() ( ......
Linux µÄ Input Device ÊÇÖØÒªµÄÒ»個 subsystem£¬ÔÚ進ÐÐ實Àý½é紹ǰ£¬ÏÈ´óÂÔÁ˽âÒ»ÏÂÏà關µÄ API¡£input.cÊÇLinuxµÄÊäÈë驅動³Ìʽ£¬Ö÷ÒªÖ§Ô®鍵盤與»¬ÊóµÄ輸È룻input.c½éÃæÌØÊâµÄµØ·½ÊÇ採ÓÃÁËʼþ£¨event£©µ ......