Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¿ªÆôlinux ÄÚºËÏß³Ì

º¯Êý˵Ã÷£º
kthread_create£º´´½¨Ï̡߳£
struct task_struct *kthread_create(int (*threadfn)(void *data),void *data,const char *namefmt, ...);
Ï̴߳´½¨ºó£¬²»»áÂíÉÏÔËÐУ¬¶øÊÇÐèÒª½«kthread_create() ·µ»ØµÄtask_structÖ¸Õë´«¸øwake_up_process()£¬È»ºóͨ¹ý´Ëº¯ÊýÔËÐÐÏ̡߳£
kthread_run £º´´½¨²¢Æô¶¯Ï̵߳ĺ¯Êý£º
struct task_struct *kthread_run(int (*threadfn)(void *data),void *data,const char *namefmt, ...);
kthread_stop£ºÍ¨¹ý·¢ËÍÐźŸøỊ̈߳¬Ê¹Ö®Í˳ö¡£
int kthread_stop(struct task_struct *thread);
Ïß³ÌÒ»µ©Æô¶¯ÆðÀ´ºó£¬»áÒ»Ö±ÔËÐУ¬³ý·Ç¸ÃÏß³ÌÖ÷¶¯µ÷ÓÃdo_exitº¯Êý£¬»òÕ߯äËûµÄ½ø³Ìµ÷ÓÃkthread_stopº¯Êý£¬½áÊøÏ̵߳ÄÔËÐС£
µ«Èç¹ûÏ̺߳¯ÊýÕýÔÚ´¦ÀíÒ»¸ö·Ç³£ÖØÒªµÄÈÎÎñ£¬Ëü²»»á±»Öжϵġ£µ±È»Èç¹ûÏ̺߳¯ÊýÓÀÔ¶²»·µ»Ø²¢ÇÒ²»¼ì²éÐźţ¬Ëü½«ÓÀÔ¶¶¼²»»áÍ£Ö¹¡£
 
´úÂ룺
 #include <linux/kthread.h>
#include <linux/module.h>
#ifndef SLEEP_MILLI_SEC
#define SLEEP_MILLI_SEC(nMilliSec)\
do { \
long timeout = (nMilliSec) * HZ / 1000; \
while(timeout > 0) \
{ \
timeout = schedule_timeout(timeout); \
} \
}while(0);
#endif
static struct task_struct * MyThread = NULL;
static int MyPrintk(void *data)
{
char *mydata = kmalloc(strlen(data)+1,GFP_KERNEL);
memset(mydata,'\0',strlen(data)+1);
strncpy(mydata,data,strlen(data));
while(!kthread_should_stop())
{
SLEEP_MILLI_SEC(1000);
printk("%s\n",mydata);
}
kfree(mydata);
return 0;
}
static int __init init_kthread(void)
{
MyThread = kthread_run(MyPrintk,"hello world","mythread");
return 0;
}
static void __exit exit_kthread(void)
{
if(MyThread)
{
printk("stop MyThread\n");
kthread_stop(MyThread);
}
}
module_init(init_kthread);
module_exit(exit_kthread);
MODULE_AUTHOR("YaoGang");
Õâ¸öÄÚºËÏ̵߳Ä×÷ÓþÍÊÇÿ¸ôÒ»Ãë´òÓ¡Ò»¸ö“hello world”¡£
ÖµµÃÒ»ÌáµÄÊÇkthread_should_stopº¯Êý£¬ÎÒÃÇÐèÒªÔÚ¿ªÆôµÄÏß³ÌÖÐǶÈë¸Ãº¯Êý£¬·ñÔòkthread_stopÊDz»Æð×÷Óõġ£


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

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 Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

linuxÆô¶¯ÐÅÏ¢ÍêÈ«Ïê½â Àý×Ó

 ÕªÒª
ÎÒÃÇÔÚÕâÀïÌÖÂÛµÄÊǶÔǶÈëʽlinuxϵͳµÄÆô¶¯¹ý³ÌµÄÊä³öÐÅÏ¢µÄ×¢ÊÍ£¬Í¨¹ýÎÒÃǵÄÌÖÂÛ£¬´ó¼Ò»á¶ÔǶÈëʽlinuxÆô¶¯¹ý³ÌÖгöÏֵġ¢ÒÔǰ¸Ð¾õÊìϤµÄ¡¢µ«È´ÓÖËÆÊǶø·ÇµÄ¶«Î÷ÓÐÒ»¸öÈ·ÇеÄÁ˽⣬²¢ÇÒÄÜÁ˽⵽ÕâЩÊä³öÐÅÏ¢µÄÀ´ÁúÈ¥Âö¡£
ǶÈëʽlinuxµÄÆô¶¯ÐÅÏ¢ÊÇÒ»¸öºÜÖµµÃÎÒÃÇÈ¥ºÃºÃÑо¿µÄ¶«Î÷£¬ËüÄܽ«Ò»·ùËõӰͼ³ÊÏÖÔÚÎÒà ......

Linuxϵͳ¹ÜÀíʵ¼ù(6)£ºÏµÍ³µÇ¼ÅäÖÃ

     1¡¢/etc/modules.confÎļþ£º
ÔÚDebian/UbuntuÅÉϵÖÐÃûΪ/etc/modules£¬ÔÚÓÐЩLinuxϵͳÖÐÒ²ÓÃÃû/etc/conf.modules¡£¸ÃÅäÖÃÎļþ¶¨ÒåÁ˸÷ÖÖÐèÒªÔÚÆô¶¯Ê±¼ÓÔØµÄÄ£¿éµÄ²ÎÊýÐÅÏ¢¡£ÕâÀïÖ÷Òª×ÅÖØÌÖÂÛ¹ØÓÚÍø¿¨µÄÅäÖá£ÔÚʹÓÃLinux×öÍø¹ØµÄÇé¿öÏ£¬Linux·þÎñÆ÷ÖÁÉÙÐèÒªÅäÖÃÁ½¿éÍø¿¨¡£ÎªÁ˼õÉÙÆô¶¯Ê±¿ÉÄܳö ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ