LinuxÍøÂç±à³Ì ¿Í»§¶ËÓë·þÎñÆ÷¶ËÒ첽ͨÐÅ
#include <sys/select.h>
#include <sys/time.h>
#include
<sys/types.h>
#include <unistd.h>
int select(int
nfds,fd_set *readfds,fd_set *writefds, fd_set *except fds,struct timeval
*timeout)
void FD_SET(int fd,fd_set *fdset)
void FD_CLR(int fd,fd_set
*fdset)
void FD_ZERO(fd_set *fdset)
int FD_ISSET(int fd,fd_set
*fdset)
¼ÌÐøÇ°ÃæµÄ
LinuxÍøÂç±à³Ì-¿Í»§¶ËÓë·þÎñÆ÷¶ËͨÐÅ(Echo)
£¬½Ó׎²¹ØÓÚ¿Í»§¶ËÓë·þÎñÆ÷¶ËµÄÒ첽ͨѶ
Ò»°ãµÄÀ´Ëµµ±ÎÒÃÇÔÚÏòÎļþ¶Áдʱ,½ø³ÌÓпÉÄÜÔÚ¶Áд³ö×èÈû,Ö±µ½Ò»¶¨µÄÌõ¼þÂú×ã.
±ÈÈçÎÒÃÇ´ÓÒ»¸öÌ×½Ó×Ö¶ÁÊý¾Ýʱ,
¿ÉÄÜ»º³åÇøÀïÃæÃ»ÓÐÊý¾Ý¿É¶Á (ͨÐŵĶԷ½»¹Ã»ÓÐ
·¢ËÍÊý¾Ý¹ýÀ´),Õâ¸öʱºòÎÒÃǵĶÁµ÷ÓþͻáµÈ´ý(×èÈû)Ö±µ½ÓÐÊý¾Ý¿É¶Á.
Èç¹ûÎÒÃDz» Ï£Íû×èÈû,ÎÒÃǵÄÒ»¸öÑ¡ÔñÊÇÓÃselectϵͳµ÷ÓÃ.
Ö»ÒªÎÒÃÇÉèÖúÃselectµÄ¸÷¸ö²ÎÊý,
ÄÇôµ±Îļþ¿ÉÒÔ¶ÁдµÄʱºòselect»Ø"֪ͨ"ÎÒÃÇ Ëµ¿ÉÒÔ¶ÁдÁË.
readfdsËùÓÐÒª¶ÁµÄÎļþÎļþÃèÊö·ûµÄ¼¯ºÏ
writefdsËùÓÐÒªµÄдÎļþÎļþÃèÊö·ûµÄ¼¯ºÏ
exceptfdsÆäËûµÄ·þÒªÏòÎÒÃÇ֪ͨµÄÎļþÃèÊö·û
timeout³¬Ê±ÉèÖÃ.
nfdsËùÓÐÎÒÃÇ¼à¿ØµÄÎļþÃèÊö·ûÖÐ×î´óµÄÄÇÒ»¸ö¼Ó1
ÔÚÎÒÃǵ÷ÓÃselectʱ½ø³Ì»áÒ»Ö±×èÈûÖ±µ½ÒÔϵÄÒ»ÖÖÇé¿ö·¢Éú.
1)ÓÐÎļþ¿ÉÒÔ¶Á.
2)ÓÐÎļþ¿ÉÒÔд.
3)³¬Ê±ËùÉèÖõÄʱ¼äµ½.
ΪÁËÉèÖÃÎļþÃèÊö·ûÎÒÃÇҪʹÓü¸¸öºê.
FD_SET½«fd¼ÓÈëµ½fdset
FD_CLR½«fd´ÓfdsetÀïÃæÇå³ý
FD_ZERO´ÓfdsetÖÐÇå³ýËùÓеÄÎļþÃèÊö·û
FD_ISSETÅжÏfdÊÇ·ñÔÚfdset¼¯ºÏÖÐ
ʹÓÃselectµÄÒ»¸öÀý×Ó
#
include
<
stdio.
h>
#
include
<
sys/
time
.
h>
#
include
<
sys/
types.
h>
#
include
<
unistd.
h>
int
main(
void
)
{
 
Ïà¹ØÎĵµ£º
Ubuntu 7.10
ÔÚ°²×°Ê±£¬Ã»ÓÐÉèÖÃrootÃÜÂ룬ËùÒÔÕâ¾Í±ØÐëÔÚ°²×°Íê³ÉºóÉèÖà ÃüÁîÈçÏ£º
$ sudo passwd root
ÊäÈëÄãÏ£ÍûµÄrootÓû§µÄÃÜÂë
ÆäËüÃüÁ
Ò»¡¢°²×°Grub
$ grub
$ find /boot/grub/stage1
(hd0,*)
$ root (hd0,*)
$ setup (hd0,*)
$ quit
$ sudo dd if=/de ......
linuxµÄÇý¶¯¾ÍÊǸö×Ö·ûÉ豸£¬¿ÉÒÔÓÃread write ioctl mmap²Ù×÷£¬Í¨¹ý/dev/fbx¿ÉÒÔÏñÎļþÒ»ÑùÖ±½Ó¶Áд
½ØÆÁdd if=/dev/fb0 of=snapshot
»Ö¸´cat snapshot > /dev/fb0
¿ªÔ´µÄÓÐfbgrab¹¤¾ß£¬²»¹ýÊÇÉú³ÉpngÎļþ£¬ÎÒ×Ô¼ºÐ´ÁËÒ»¸öÉú³ÉbmpÎļþµÄ¹¤¾ß½Ðfbcap£¬Â¼ÖƳÉavi¸ñʽ£¬Í¨¹ýsocket»òserial°ÑÉ豸µÄ²Ù×÷·¢Ë͵½hostÉÏ£º£ ......
×î½ü¶ÔLinuxµÄÏ߳̽ӿڽøÐÐÁËЩ×ܽᣬҲ²Î¿¼ÁËÍøÂçÉÏÐÖµÜÃǵÄһЩ×ÊÁÏ£¬×Ô¼ºÍ¬Ê±Ò²Ð´ÁËЩ³ÌÐò½øÐвâÊÔ£¬ÏȰѲο¼µÄ
×ÊÁÏÁгöÀ´°É
http://blog.mcuol.com/User/liuzhilii521/Article/12738_1.htm
ÏÂÃæÊÇÎÒµÄһЩÀí½â£º
pthread_key_create(pthread_key_t *key,void (*destructor)(void*))
destructorÕâ¸ö»Øµ÷º¯ÊýÔÚÏß³Ì ......
ÒÔϵÄһЩÎÄ×ÖÖ÷ÒªÀ´Ô´ÓÚkhg£¬johnsonmµÄWrite linux device driver£¬Brennan's Guide to Inline Assembly£¬The Linux A-Z£¬»¹ÓÐÇ廪BBSÉϵÄÓйØdevice driverµÄһЩ×ÊÁÏ. ÕâЩ×ÊÁÏÓеÄÒѾ¹ýʱ£¬ÓеϹÓÐһЩ´íÎó£¬ÎÒÒÀ¾Ý×Ô¼ºµÄÊÔÑé½á¹û½øÐÐÁËÐÞÕý.
Ò»¡¢Linux device driver µÄ¸ÅÄî
ϵͳµ÷ÓÃÊDzÙ× ......
linux´®¿Ú±à³Ì£¨Òªµã×ܽᣩ ÊÕ²Ø
´®¿Ú±à³Ì
²éѯӲ¼þµÄ·½Ê½£º²éѯ·½Ê½¡¢ÖжϷ½Ê½¡¢DMA·½Ê½¡£´®¿ÚºÜ¶àÊÇʹÓÃÖжϷ½Ê½£¬ÕâÖÖ·½Ê½Ò»°ãÀ´½²¶ÔCPU±È½ÏÓÐЧ¡£
UARTµÄ²Ù×÷Ö÷Òª°üÀ¨ÒÔϼ¸¸ö²¿·Ö£º
Êý¾Ý·¢ËÍ£»Êý¾Ý½ÓÊÜ£»²úÉúÖжϣ»²úÉú²¨ÌØÂÊ£»Loopbackģʽ£»ºìÍâģʽ£»×Ô¶¯Á÷¿ØÄ£Ê½£»
&n ......