Ò»¸öÈ˲ªÒ»´Î²»ÄÑ£¬ÄѵÄÊDzªÒ»±²×Ó……
×î½ü·ÖÐĵÄʺܶ࣬²ªµÃÔ½À´Ô½ÉÙÁË£¡
´ò¿ªmmuÊÇÒ»¼þÉñÊ¥µÄ¹¤×÷£¬ÐèÒª×Ðϸ¡¢ÔÙ×Ðϸ……
´Ó__v7_setupº¯Êý·µ»ØÀ´£¬½øÈëµ½__enable_mmu¹ý³Ì£¬×öÆð·ÉÇ°µÄ×îºóÈ·ÈÏ£º
__enable_mmu:
#ifdef CONFIG_ALIGNMENT_TRAP
orr r0, r0, #CR_A
#else
bic r0, r0, #CR_A
#endif
¸ù¾ÝÅäÖÃÑ¡Ï¾ö¶¨ÊÇ·ñ´ò¿ªÊý¾Ý¶ÔÆë¼ì²é£¬Ò»°ãÊÇÒª´ò¿ªµÄ£»
#ifdef CONFIG_CPU_DCACHE_DISABLE
bic r0, r0, #CR_C
#endif
¸ù¾ÝÅäÖÃÑ¡Ï¾ö¶¨ÊÇ·ñ¹Ø±Õ¿ªÊý¾Ý»º³åÇø£¬Ò»°ãÊDz»ÐèÒª¹Ø±ÕµÄ£»
#ifdef CONFIG_CPU_BPREDICT_DISABLE
bic r0, r0, #CR_Z
#endif
¸ù¾ÝÅäÖÃÑ¡Ï¾ö¶¨ÊÇ·ñÒª¹Ø±Õ·ÖÖ§Ô¤²â¹¦ÄÜ£¬Ò»°ãÊDz»ÐèÒª¹Ø±ÕµÄ£»
#ifdef CONFIG_CPU_ICACHE_DISABLE
bic r0, r0, #CR_I
#endif
¸ù¾ÝÅäÖÃÑ¡Ï¾ö¶¨ÊÇ·ñ¹Ø±Õ¿ªÖ¸Á³åÇø£¬Ò»°ãÊDz»ÐèÒª¹Ø±ÕµÄ£»
mov r5, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \
domain_val(DOMAIN_IO, DOMAIN_CLIENT))
½áºÏÊý¾ÝÊֲᣬ´Ë¶ÎÊǽ«D0¡¢D1Á½¸öÓò£¬D1¶ÔÓ¦ÓÚUSERÓò£¬D0¶ÔÓ¦ÓÚKERNELºÍTABLEÓò£¬ÅäÖÃΪ¹ÜÀíģʽ£¬¶ÔÕâÁ½¸öÓòµÄ·ÃÎʺÍÖ´Ðв»ÊÜTLBÖÐÏàÓ¦±ê־λӰÏ죬D2Óò£¬¶ÔÓ¦ÓÚIOÓò£¬ÅäÖÃΪ¿Í»§Ä£Ê½£¬¶Ô´ËÓòµÄ·ÃÎÊÊÜTLBÖÐÏàÓ¦±ê־λµÄ¼ì²é£»
mcr p15, 0, r5, c3, c0, 0 @ load domain access register
дÈëÓò·ÃÎÊ¿ØÖƼĴæÆ÷£¬ÆäʵºÍ__v7_setupº¯ÊýÖÐдÈëµÄÖµÏàͬ£»
mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
__v7_setupº¯ÊýÖÐÒ²ÒѾд¹ýÕâ¸ö¼Ä´æÆ÷ÁË£»
b __turn_mmu_on
__turn_mmu_on¾ÍÔÚºóÃæ½ô¸ú×Å£¬²»Ã÷°×ΪºÎ»¹Òªbһϣ»
ENDPROC(__enable_mmu)
ÔÙ¿´¿´½ô½Ó×ŵÄ__turn_mmu_onº¯Êý£º
/*
* Enable the MMU. This completely changes the structure of the visible
* memory space. You will not be able to trace execution through this.
* If you have an enquiry about this, *please* check the linux-arm-kernel
* mailing list archives BEFORE sending another post to the list.
*
* r0 = cp#15 control register
* r13 = *virtual* address to jump to upon co
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......