linuxµÄ´¥ÃþÆÁÖ®ËÄ£ºandroidµÄtslib¶ÔϲãLinuxµÄ¿ØÖÆ
£¨1£©ÈýÐǵĴ¥ÃþÆÁÇý¶¯s3c-ts.c£º
s3c_ts_init-¡·platform_driver_register(&s3c_ts_driver)£»
static struct platform_driver s3c_ts_driver = {
.probe = s3c_ts_probe,
.driver = {
.owner = THIS_MODULE,
.name = "s3c-ts",},
};
ͨ¹ý"s3c-ts"×Ö·û´®Óëdev-ts.cµÄs3c_device_tsÖеÄname×Ö´®Æ¥Å䣬ʵÏÖ×¢²á¡£
static int __init s3c_ts_probe(struct platform_device *pdev)
{
platform_get_resource(pdev, IORESOURCE_MEM, 0); //»ñµÃMEM×ÊÔ´
request_mem_region(res->start, size, pdev->name); //»ñµÃMEM×ÊÔ´´óС
ioremap(res->start, size); //¶ÔMEM×ÊÔ´ÖØÐÂIO
clk_enable(ts_clock); //TSµÄCLKʹÄÜ
struct s3c_ts_mach_info *s3c_ts_cfg = s3c_ts_get_platdata(&pdev->dev); //»ñµÃĬÈϵÄtsÅäÖÃÊý¾Ý£¬Èç²ÉÑùÂÊ£¬Í¨µÀ
struct input_dev *input_dev = input_allocate_device();
ts->dev->name = s3c_ts_name;
ts->dev->phys = ts->phys;
ts->dev->id.bustype = BUS_RS232;
ts->dev->id.vendor = 0xDEAD;
ts->dev->id.product = 0xBEEF;
ts->dev->id.version = S3C_TSVERSION; //ÍêÉÆtsµÄinput_dev²ÎÊý
ts_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
request_irq(ts_irq->start, stylus_updown, IRQF_SAMPLE_RANDOM, "s3c_updown", ts);
Ïà¹ØÎĵµ£º
Ò»¡¢¸ÅÊö
ϵͳµ÷ÓÃÊÇÒ»¸öÈíÖжϣ¬ÖжϺÅÊÇ0x80£¬ËüÊÇÉϲãÓ¦ÓóÌÐòÓëLinuxϵͳÄں˽øÐн»»¥Í¨ÐŵÄΨһ½Ó¿Ú¡£Í¨¹ýint 0x80£¬¾Í¿ÉʹÓÃÄÚºË×ÊÔ´¡£²»¹ý£¬Í¨³£Ó¦ÓóÌÐò¶¼ÊÇʹÓþßÓбê×¼½Ó¿Ú¶¨ÒåµÄCº¯Êý¿â¼ä½ÓµÄʹÓÃÄں˵Äϵͳµ÷Ó㬼´Ó¦ÓóÌÐòµ÷ÓÃCº¯Êý¿âÖеĺ¯Êý£¬Cº¯Êý¿âÖÐ ......
ÔÛ¾Í˵˵linuxÔõôһ²½µ½Î»ÉèÖÃϵͳʱ¼ä¡£ÄÃlinuxÐéÄâ»ú×öʵÑéµÄÅóÓÑ»áÖªµÀ¡£µ±Äã°Ñlinux»¹Ôµ½Ä³¸öµãµÄʱºò£¬vmware°ï²»ÁËÄã°Ñϵͳʱ¼äÒ²¸øÖØÉèÁË¡£ËùÒÔÕâʱºò¾ÍÒªÊÖ¹¤À´¸ã¡£¹ØÓÚÕ¦Éèlinuxʱ¼ä¡£ÍøÉϽéÉÜÒ²ºÜ¶à£¬µ«ÊǶ¼ÊdzÀ´³È¥µÄ¶«Î÷¡£ÄÇÔõô²ÅÄܸßЧ¿ì½ÝµÄÉèÖÃϵͳʱ¼äÄØ£¿
&nb ......
LINUXÏÂUSB1.1É豸ѧϰС¼Ç(4)_uhci(2)
À´Ô´: ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º 2009.03.14 16:44¡¡(¹²ÓÐÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
ºÃ~ ÏÖÔÚÍòʾ㱸,ֻǷuhciÓ²¼þµÄ×¢²áÁË
ÏÖÔÚ̸һÏÂuhciÓ²¼þµÄ×é³É,uhciµÄÓ²¼þ·ÖΪÁ½¸ö´óµÄ²¿·Ö,Ö÷»ú¿ØÖÆÆ÷ºÍ¸ù¼¯Ï߯÷,ÈçÏÂͼ
µ±Ìá½»uhciÓ²¼þµÄ×¢²áµ½pci×ÜÏߺó,¾¹ýÒ»ÂÖÆ¥Åä,Ö ......
ÏÖÔÚÔݶ¨µÄѧϰĿ±êΪһ¸öUSBÊó±êµÄÉ豸µ½Ö÷»úµÄ´«Êä¹ý³ÌÈí¼þÉϵĹᴩ(»áÉæ¼°µ½²¿·ÖÓ²¼þ µ«ÊDZ¾È˵ĵçµç·֪ʶÓÐÏÞ Éæ¼°µÄÁ¿²»»á¶à)
ѧϰµÄ¿ò¼ÜÈçÏÂ:
1. USB1.1ÐÒé
A. ¿ØÖÆ´«Êä
B. Öжϴ«Êä
2. &n ......