ÈçºÎÔÚǶÈëʽLINUXÄÚºËÖÐÔö¼Ó×Ô¼ºµÄÉ豸Çý¶¯³ÌÐò
Çý¶¯³ÌÐòµÄʹÓÿÉÒÔ°´ÕÕÁ½ÖÖ·½Ê½±àÒ룬һÖÖÊǾ²Ì¬±àÒë½øÄںˣ¬ÁíÒ»ÖÖÊDZàÒë³ÉÄ£¿éÒÔ¹©¶¯Ì¬¼ÓÔØ¡£ÓÉÓÚuClinux²»Ö§³ÖÄ£¿é¶¯Ì¬¼ÓÔØ£¬¶øÇÒǶÈëʽLINUX²»Äܹ»Ïó×ÀÃæLINUXÄÇÑùÁé»îµÄʹÓÃinsmod/rmmod¼ÓÔØÐ¶ÔØÉ豸Çý¶¯³ÌÐò£¬Òò¶øÕâÀïÖ»½éÉܽ«É豸Çý¶¯³ÌÐò¾²Ì¬±àÒë½øuClinuxÄں˵ķ½·¨¡£
¡¡¡¡ÏÂÃæÒÔUCLINUXΪÀý£¬½éÉÜÔÚÒ»¸öÒÔÄ£¿é·½Ê½³öÏÖµÄÇý¶¯³ÌÐòtest.c»ù´¡Ö®ÉÏ£¬½«Æä±àÒë½øÄں˵ÄһϵÁв½Ö裺
¡¡¡¡£¨1£© ¸Ä¶¯test.cÔ´´ø´úÂë
¡¡¡¡µÚÒ»²½£¬½«ÔÀ´µÄ£º
¡¡¡¡#include
¡¡¡¡#include
¡¡¡¡char kernel_version[]=UTS_RELEASE;
¡¡¡¡¸Ä¶¯Îª£º
¡¡¡¡#ifdef MODULE
¡¡¡¡#include
¡¡¡¡#include
¡¡¡¡char kernel_version[]=UTS_RELEASE;
¡¡¡¡#else
¡¡¡¡#define MOD_INC_USE_COUNT
¡¡¡¡#define MOD_DEC_USE_COUNT
¡¡¡¡#endif
¡¡¡¡µÚ¶þ²½£¬Ð½¨º¯Êýint init_test(void)
¡¡¡¡½«É豸ע²áдÔÚ´Ë´¦£º
¡¡¡¡result=register_chrdev(254,"test",&test_fops);
¡¡¡¡£¨2£© ½«test.c¸´ÖƵ½/uclinux/linux/drivers/charĿ¼Ï£¬²¢ÇÒÔÚ/uclinux/linux/drivers/charĿ¼ÏÂmem.cÖУ¬int chr_dev_init( )º¯ÊýÖÐÔö¼ÓÈçÏ´úÂ룺
¡¡¡¡#ifdef CONFIG_TESTDRIVE
¡¡¡¡init_test();
¡¡¡¡#endif
¡¡¡¡£¨3£© ÔÚ/uclinux/linux/drivers/charĿ¼ÏÂMakefileÖÐÔö¼ÓÈçÏ´úÂ룺
¡¡¡¡ifeq($(CONFIG_TESTDRIVE),y)
¡¡¡¡L_OBJS+=test.o
¡¡¡¡Endif
¡¡¡¡£¨4£© ÔÚ/uclinux/linux/arch/m68knommuĿ¼ÏÂconfig.inÖÐ×Ö·ûÉ豸¶ÎÀïÔö¼ÓÈçÏ´úÂ룺
¡¡¡¡bool 'support for testdrive' CONFIG_TESTDRIVE y
¡¡¡¡£¨5£© ÔËÐÐmake menuconfig£¨ÔÚmenuconfigµÄ×Ö·ûÉ豸ѡÏîÀïÄã¿ÉÒÔ¿´¼ûÎÒÃǸոÕÌí¼ÓµÄ'support for testdrive'Ñ¡Ï²¢ÇÒÒѾ±»Ñ¡ÖУ©£»make dep£»make linux£»make linux.text£»make linux.data£»cat linux.text linux.data > linux.bin¡£
¡¡¡¡£¨6£© ÔÚ /uclinux/romdisk/romdisk/dev/Ŀ¼Ï´´½¨É豸£º
¡¡¡¡mknod test c 254 0
¡¡¡¡²¢ÇÒÔÚ/uclinux/appsrc/ÏÂÔËÐÐmake£¬Éú³ÉеÄRomdisk.s19Îļþ¡£
¡¡¡¡µ½ÕâÀÔÚUCLINUXÖÐÔö¼ÓÉ豸Çý¶¯³ÌÐòµÄ¹¤×÷¿ÉÒÔ˵ÊÇÍê³ÉÁË£¬Ö»Òª½«ÐµÄlinux.binÓëRomdisk.s19ÉÕÈëÄ¿±ê°åÖУ¬Äã¾Í¿ÉÒÔʹÓÃ×Ô¼ºµÄÐÂÉ豸testÁË¡£
Çý¶¯³ÌÐòµÄʹÓÿÉÒÔ°´ÕÕÁ½ÖÖ·½Ê½±àÒ룬һÖÖÊǾ²Ì¬±àÒë½øÄںˣ¬ÁíÒ»ÖÖÊDZàÒë³ÉÄ£¿éÒÔ¹©¶¯Ì¬¼ÓÔØ¡£ÓÉÓÚuClinux²»Ö§³ÖÄ£¿é¶¯Ì¬¼ÓÔØ£¬¶øÇÒǶÈëʽLINUX²»Äܹ»Ïó×ÀÃæLINUXÄÇÑùÁé»îµÄʹÓ
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
Ê×ÏÈÉêÃ÷,ÎÒÊDzËÄñ.²Ëµ½Ê²Ã´³Ì¶È,´ó¼Ò¿´¿´ÏÂÃæµÄ´úÂë.
´úÂëÒªÇó:È¡µÃ1000´Îµ¥¶À´´½¨½ø³ÌµÄʱ¼ä.
[code:1:fdac913669]#include
#include
#include
#include
#include
strut timeval {
long tv_sec; /* ÃëÊý */
long tv_usec; /* ΢ÃëÊý  ......
1 ÄÚ´æµØÖ·
linuxÖУ¬ÎÒÃDZØÐëÇø·ÖÈýÖÖ²»Í¬µÄµØÖ·
Âß¼µØÖ·£º»úÆ÷ÓïÑÔÖ¸ÁîÖÐÓÃÀ´Ö¸¶¨Ò»¸ö²Ù×÷ÊýºÍÒ»¸öÖ¸ÁîµÄµØÖ·£®ÔÚX86ÖУ¬Ã¿Ò»¸öÂß¼µØÖ·¶¼ÓÉÒ»¸ö¶Î(segment)ºÍÆ«ÒÆÁ¿(offset)×é³É£®
ÏßÐÔµØÖ·(Ò²³ÆÐéÄâµØÖ·)£ºÊÇÒ»¸ö32λÎÞ·ûºÅº¯Êý£¬¿ÉÒÔ±íʾ¸ß´ï4GBµÄµØÖ·£¬·¶Î§´Ó0x00000000µ½0 ......