LinuxÄں˷ÃÎÊÍâÉèI/O×ÊÔ´µÄ·½Ê½
ÎÒÃÇÖªµÀĬÈÏÍâÉèI/O×ÊÔ´ÊDz»ÔÚLinuxÄں˿ռäÖеģ¨Èçsram»òÓ²¼þ½Ó¿Ú¼Ä´æÆ÷µÈ£©£¬ÈôÐèÒª·ÃÎʸÃÍâÉèI/O×ÊÔ´£¬±ØÐëÏȽ«ÆäµØÖ·Ó³Éäµ½Äں˿ռäÖÐÀ´£¬È»ºó²ÅÄÜÔÚÄں˿ռäÖзÃÎÊËü¡£
LinuxÄں˷ÃÎÊÍâÉèI/OÄÚ´æ×ÊÔ´µÄ·½Ê½ÓÐÁ½ÖÖ£º¶¯Ì¬Ó³Éä(ioremap)ºÍ¾²Ì¬Ó³Éä(map_desc)¡£
Ò»¡¢¶¯Ì¬Ó³Éä(ioremap)·½Ê½
¶¯Ì¬Ó³É䷽ʽÊÇ´ó¼ÒʹÓÃÁ˱Ƚ϶àµÄ£¬Ò²±È½Ï¼òµ¥¡£¼´Ö±½Óͨ¹ýÄÚºËÌṩµÄioremapº¯Êý¶¯Ì¬´´½¨Ò»¶ÎÍâÉèI/OÄÚ´æ×ÊÔ´µ½ÄÚºËÐéÄâµØÖ·µÄÓ³Éä±í£¬´Ó¶ø¿ÉÒÔÔÚÄں˿ռäÖзÃÎÊÕâ¶ÎI/O×ÊÔ´¡£
Ioremapºê¶¨ÒåÔÚasm/io.hÄÚ£º
#define ioremap(cookie,size) __ioremap(cookie,size,0)
__ioremapº¯ÊýÔÐÍΪ(arm/mm/ioremap.c)£º
void __iomem * __ioremap(unsigned long phys_addr, size_t size, unsigned long flags);
phys_addr£ºÒªÓ³ÉäµÄÆðʼµÄIOµØÖ·
size£ºÒªÓ³ÉäµÄ¿Õ¼äµÄ´óС
flags£ºÒªÓ³ÉäµÄIO¿Õ¼äºÍȨÏÞÓйصıêÖ¾
¸Ãº¯Êý·µ»ØÓ³ÉäºóµÄÄÚºËÐéÄâµØÖ·(3G-4G). ½Ó×űã¿ÉÒÔͨ¹ý¶Áд¸Ã·µ»ØµÄÄÚºËÐéÄâµØÖ·È¥·ÃÎÊÖ®Õâ¶ÎI/OÄÚ´æ×ÊÔ´¡£
¾ÙÒ»¸ö¼òµ¥µÄÀý×Ó: (È¡×Ôs3c2410µÄiisÒôƵÇý¶¯)
±ÈÈçÎÒÃÇÒª·ÃÎÊs3c2410ƽ̨ÉϵÄI2S¼Ä´æÆ÷, ²é¿´datasheet ÖªµÀIISÎïÀíµØÖ·Îª0x55000000£¬ÎÒÃǰÑËü¶¨ÒåΪºêS3C2410_PA_IIS£¬ÈçÏ£º
#define S3C2410_PA_IIS (0x55000000)
ÈôÒªÔÚÄں˿ռä(iisÇý¶¯)ÖзÃÎÊÕâ¶ÎI/O¼Ä´æÆ÷(IIS)×ÊÔ´ÐèÒªÏȽ¨Á¢µ½Äں˵ØÖ·¿Õ¼äµÄÓ³Éä:
our_card->regs = ioremap(S3C2410_PA_IIS, 0x100);
if (our_card->regs == NULL) {
err = -ENXIO;
goto exit_err;
}
´´½¨ºÃÁËÖ®ºó£¬ÎÒÃǾͿÉÒÔͨ¹ýreadl(our_card->regs )»òwritel(value, our_card->regs)µÈIO½Ó¿Úº¯ÊýÈ¥·ÃÎÊËü¡£
¶þ¡¢¾²Ì¬Ó³Éä(map_desc)·½Ê½
ÏÂÃæÖØµã½éÉܾ²Ì¬Ó³É䷽ʽ¼´Í¨¹ýmap_desc½á¹¹Ì徲̬´´½¨I/O×ÊÔ´Ó³Éä±í¡£
ÄÚºËÌṩÁËÔÚϵͳÆô¶¯Ê±Í¨¹ýmap_desc½á¹¹Ì徲̬´´½¨I/O×ÊÔ´µ½Äں˵ØÖ·¿Õ¼äµÄÏßÐÔÓ³Éä±í(¼´page table)µÄ·½Ê½£¬ÕâÖÖÓ³Éä±íÊÇÒ»ÖÖÒ»Ò»Ó³ÉäµÄ¹ØÏµ¡£³ÌÐòÔ±¿ÉÒÔ×Ô¼º¶¨Òå¸ÃI/OÄÚ´æ×ÊÔ´Ó³ÉäºóµÄÐéÄâµØÖ·¡£´´½¨ºÃÁ˾²Ì¬Ó³Éä±í£¬ÔÚÄں˻òÇý¶¯ÖзÃÎʸÃI/O×ÊԴʱÔòÎÞÐèÔÙ½øÐÐioreamp¶¯Ì¬Ó³É䣬¿ÉÒÔÖ±½Óͨ¹ýÓ³ÉäºóµÄI/OÐéÄâµØÖ·È¥·ÃÎ
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
1. ×¼±¸Ìõ¼þ
1.1 WASËùÖ§³ÖµÄ Linux ²Ù×÷ϵͳ
²é¿´²Ù×÷ϵͳÇëÓà lsb_release ÃüÁî
# lsb_release – a
1.2 WAS6.1Network Deployment Èí¼þ°ü
2. °²×° WAS²½Öè (rootÓû§²Ù×÷)
......
¡¶¾«Í¨unixÏÂcÓïÑÔ-±à³ÌÓëÏîĿʵ¼ù¡·Ñ§Ï°±Ê¼Ç
1.¿âµÄ·ÖÀà
¿â¿É·ÖΪ¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ¡£
a.¾²Ì¬¿â
¾²Ì¬¿âµÄ´úÂëÔÚ±àÒëʱÁ´½Óµ½Ó¦ÓóÌÐòÖУ¬Òò´Ë±àÒëʱ¿âÎļþ±ØÐè´æÔÚ£¬±ØÐëҪͨ¹ý"-l"²ÎÊý´«µÝ¸ø±àÒëÆ÷¡£Ó¦ÓóÌÐò¿ªÊ¼Ö´ÐÐʱ£¬¿âº ......
The new USB "On-The-Go" (OTG) capabilities are not yet widely
understood, or even generally available. The most visible feature of
OTG is that it defines the behavior of intelligent "Dual-Role" USB
devices, such as cameras or wireless handsets, which act either as USB
host or ......