תÌù£ºÊóÑÛ¿´Linuxµ÷¶ÈÆ÷ £¨2£©
ת×Ô http://hi.baidu.com/grantzhou/blog/item/56a91cf3b685cdc90a46e09d.html
ËÄ¡¢sched_setscheduler()ϵͳµ÷Óá£
Õâ¸öϵͳµ÷Óõĵ÷Óòã´ÎºÍ´úÂë¶¼±Ènice¸´ÔÓЩ£¬ËùÉæ¼°µÄÒ²Óв»ÉÙÎÒÃÇÕâÀï²»¸ÐÐËȤµÄ¶«Î÷£¬Òò´Ë¾Í²»ÔÙÒÔչʾ´úÂëµÄ·½·¨½éÉÜËüÃÇÁË¡£ÕâÀï½öÔÚ¹¦Äܲã´ÎÉÏ£¬´ÓÓënice()¶Ô±ÈµÄ½Ç¶ÈÉ϶ÔËü×öÒ»¸ö¼òÒª½éÉÜ£º
1¡¢ÒòΪsched_setscheduler()ϵͳµ÷Óò»½ö¿ÉÒÔÐ޸ĵ±Ç°ÈÎÎñµÄµ÷¶È²ßÂÔºÍÓÅÏȼ¶£¬»¹¿ÉÒÔÐÞ¸ÄÖ¸¶¨ÈÎÎñµÄÕâ¸öÐÅÏ¢¡£ËùÒÔ£¬ËüµÄºÏ·¨ÐÔ¼ì²é¸üÑϸñЩ£¬×îÖØÒªµÄÊÇÔö¼ÓÁËÓû§Éí·ÝÑéÖ¤£¬µ±È»Õâ¸ö¼ì²éÒÀ¾ÉÊÇÔÚtask_struct½á¹¹ÉÏ×öµÄ¡£
2¡¢ºÍnice()Ò»Ñù£¬sched_setscheduler()Ò²²»ÌرðÇø·Ö½ø³ÌºÍỊ̈߳¬½«Á½Õß×÷µÈͬ´¦Àí£¬¸ÃÈÎÎñÒ²»áÓÐÖØÐ¼ÓÈëÔËÐжÓÁеÄÐÐΪ¡£
3¡¢sched_setscheduler()Ö»Ð޸Ķ¯Ì¬ÓÅÏȼ¶£¬¶ÔÓÚĬÈϵ÷¶È²ßÂÔ£¬Ëü±»ÉèÖÃΪÓ뾲̬ÓÅÏȼ¶ÏàµÈ¡£
Îå¡¢¾²Ì¬ÓÅÏȼ¶ÀïµÄèÄå¡£
˵ÁËÕâô¶à¾²Ì¬ÓÅÏȼ¶ÈçºÎÈçºÎ£¬Ëüµ½µ×ÊǸöÊ²Ã´ÍæÒâ¶ù£¿ÏÖÔÚ¾ÍÈÃÎÒÃǰþµôÆäÉÏËùÓпÉÄܵÄ"ºÄ×ÓÒ©"£¬ÅªÇå³þËüµ½µ×ÊÇÔõÑùÓ°Ïì½ø³ÌµÄ¡£"¾²Ì¬ÓÅÏȼ¶"£¬Ö®ËùÒÔ¹ÚÖ®ÒÔ"¾²Ì¬"ǰ׺£¬ÊÇÒòΪÄÚºË×Ô¼º´Ó²»Ö÷¶¯ÐÞ¸ÄËü£¬Ö»ÓÐͨ¹ýϵͳµ÷ÓòÅÄÜÐÞ¸ÄËü¡£ÄÇô£¬ËüÔÚµ÷¶ÈÀïµ½µ×°çÑÝʲô½ÇɫĨ£¿Èݰ³×ÐϸµÀÀ´£º
1¡¢¼ÆËãÈÎÎñʱ¼äƬ¡£
ÈôúÂë˵»°£¬ÏÈ¿´task_timeslice()ʵÏÖ£º
/*
* task_timeslice() scales user-nice values [ -20 ... 0 ... 19 ]
* to time slice values: [800ms ... 100ms ... 5ms]
*
* The higher a thread's priority, the bigger timeslices
* it gets during one round of execution. But even the lowest
* priority thread gets MIN_TIMESLICE worth of execution time.
*/
#define SCALE_PRIO(x, prio) \
max(x * (MAX_PRIO - prio) / (MAX_USER_PRIO/2), MIN_TIMESLICE)
static inline unsigned int task_timeslice(task_t *p)
{
if (p->static_prio < NICE_TO_PRIO(0))
return SCALE_PRIO(DEF_TIMESLICE*4, p->static_prio);
else
return SCALE_PRIO(DEF_TIMESLICE, p->static_prio);
}
´ÓÃû×ÖÉÏÒ²¿´µÃ³öÀ´£¬Õâ¸öº¯Êý¾ÍÊÇÓÃÀ´¼ÆËãÈÎÎñʱ¼äƬµÄ¡£Ò»°ã˵À´£¬Ö»ÓÐÔÚʱ¼äƬÏûºÄ¹âµÄʱºò²ÅÖØÐ¼ÆËãÈÎÎñµÄʱ¼äƬ£¬¶øÕâ¸ö¼ÆËã¹ý³ÌÖ»Ó뾲̬ÓÅÏȼ¶Óйء£Õâ¸öº¯ÊýµÄÂß¼ºÜ¼òµ¥£¬Èç¹ûÈÎÎñpµÄniceÖµ<0£¨Ò²¾ÍÊÇ˵¾²Ì¬ÓÅÏÈ
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ÎÒÊÇÒ»¸öƽ·²µÄÈí¼þ¹¤³Ìʦ
һֱϣÍû¹ú²úÈí¼þÄܹ»´ó·ÅÒì²Ê
¿ÉÕýËùνϣÍûÔ½´ó£¬Ê§ÍûÒ²Ô½´ó
Ô½À´Ô½¸Ð¾õµ½ÒªÏë°ÑÈí¼þ×ö´ó×öÇ¿
ʵÔÚÊÇÌ«ÄÑÌ«ÄÑÁË
ÓÞÃÁÈçÎÒÔõôҲ¿´²»µ½¹âÃ÷µÄ´óµÀ
¿ÉÊÇÄѾͲ»×öÁË
¶àÉÙÖÇÕߣ¬×ÜÊÇ¿´×¼ÁËÒ»¸ö·½Ïò£¬¼á³ÖÔÚÒ»¸öСµÄÁìÓò×öϸ×öר×öÇ¿.......
linux¸øÁ˺ܶàÈËÒ»¸öÏ£Íû£¬¿ªÔ´µÄÊÀ½çÈúܶàÈËÈç³Õ ......
7.1.1 Linux·ÖÇø¼ò½é
Ëùν·ÖÇø£¬¾ÍÊÇ´ÅÅÌÉϽ¨Á¢µÄÓÃÓÚ´æ´¢Êý¾ÝºÍÎļþµÄµ¥¶ÀÇøÓò²¿·Ö¡£´ÅÅÌ·ÖÇø¿ÉÒÔ·ÖΪÖ÷·ÖÇøºÍÀ©³ä·ÖÇø£¬ÆäÖÐÖ÷·ÖÇø¾ÍÊǰüº¬²Ù×÷ϵͳÆô¶¯Ëù±ØÐëµÄÎļþºÍÊý¾ÝµÄ´ÅÅÌ·ÖÇø£»À©³ä·ÖÇøÒ»°ãÓÃÀ´´æ·ÅÊý¾ÝºÍÓ¦ÓóÌÐòÎļþ¡£Ò»¸ö´ÅÅÌ×î¶à¿É·ÖΪ4¸ö·ÖÇø£¬×î¶à¿ÉÒÔÓÐ4¸öÖ÷·ÖÇø£¬¼´È«²¿·ÖÇø¶¼±»»®·ÖΪÖ÷·ÖÇø¡£Èç¹ ......
ELDK;Ö§³ÖGDBµÄBDIGDB Firmware FOR Linux£»»ùÓÚwindowsµÄǶÈëʽLinux½»²æ¿ª·¢¹¤¾ßÈí¼þINSIGHT GNUPROXTOOLS ;Ö§³ÖGDBµÄBDIGDB FIRMWARE FOR WINDOWS
bootloader
German DENK U-boot GNU
fuction:
network support;(tftp\Bootp);;;FlashRAM ;´®¿Údeng¶àÖÖ·½Ê½ÏÂÔØ ......
Linux ÖÐÈçºÎ²éѯºÍÐ¶ÔØÒѰ²×°µÄÈí¼þ
¡¡¡¡LinuxÈí¼þµÄ°²×°ºÍÐ¶ÔØÒ»Ö±ÊÇÀ§ÈÅÐí¶àÐÂÓû§µÄÄÑÌâ¡£ÔÚWindowsÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÈí¼þ×Ô´øµÄ°²×°Ð¶ÔسÌÐò»òÔÚ¿ØÖÆÃæ°åÖеēÌí¼Ó/ɾ³ý³ÌÐò” À´ÊµÏÖ¡£ÓëÆäÏàÀàËÆ£¬ÔÚLinuxÏÂÓÐÒ»¸ö¹¦ÄÜÇ¿´óµÄÈí¼þ°²×°Ð¶Ôع¤¾ß£¬ÃûΪRPM¡£Ëü¿ÉÒÔÓÃÀ´½¨Á¢¡¢°²×°¡¢²éѯ¡¢¸üС¢Ð¶ÔØÈí¼þ¡£¸Ã¹¤ ......