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

linuxËøµÄÓ¦ÓÃ

ѧ¹ý²Ù×÷ϵͳµÄÈËÖªµÀÓÐÒ»¸ö·Ç³£ÖøÃûµÄÎÊÌ⣺¶ÁÕߣ­Ð´ÕßÎÊÌâ¡£¶ÁÕߣ­Ð´ÕßÎÊÌâÊÇָϵͳµ±ÖеĵÄ×ÊÔ´ÔÚijһʱ¼äÀï¿ÉÒÔͬʱÔÊÐí¶à¸ö½ø³Ì¶Á£¬µ«Ö»ÔÊÐíÒ»¸ö½ø³Ìд¡£Õâ¸ö½ø³Ìͬ²½ÎÊÌâµÄ½â·¨ÓÐÐí¶àÖÖ£¬ÔÚwindowϵͳÀïÓû¥³â±äÁ¿À´½øÐнø³ÌµÄͬ²½¡£ÔÚLinuxÀïÓÐÁíÒ»ÖÖ·½·¨£¬ÄǾÍÊÇÎļþËø£¬ÎļþËøÀïµÄÎļþ²»µ¥µ¥Ö»Ö¸Æ½Ê±Ëù˵µÄÎļþËüÓ¦°üº­¸ü¹ã·ºµÄº¬Òâ¡£¼´Ò²Ö¸ÏµÍ³ËùÓпÉÒÔ·ÃÎʵÄϵͳ×ÊÔ´¡£¿ÉÒÔ¸øÎļþ¼Ó¶ÁËø£¬Ò²¿ÉÒÔ¸øÎļþ¼ÓÐ´Ëø£¬Ò»¸ö½ø³Ì¸øÒ»¸öÎļþ¼Ó¶ÁËøºóÆäËûµÄ½ø³ÌÒ²¿ÉÒÔ¸øÕâ¸öÎļþ¼Ó¶ÁËø£¬µ«ÊDz»¿ÉÒÔ¸øÕâ¸öÎļþ¼ÓÐ´Ëø£¬Ö±µ½¸øÕâ¸öÎļþ¼Ó¶ÁËøµÄËùÓнø³Ì¶¼ReleaseÁËËü×Ô¼ºËù¼ÓµÄËøºó²Å¿ÉÒÔ¡£Èç¹ûÒ»¸ö½ø³Ì¸øÒ»¸öÎļþ¼ÓÐ´Ëøºó£¬²»ÔÊÐíÆäËü½ø³Ì¶ÔÕâ¸öÎļþ¼ÓÈκεÄËø¡£ÏÂÃæÊÇËøµÄ¾ßÌåÓ¦Óᣣ¯
ÆäÖÐÓõ½Á˶à¸öϵͳº¯Êý£ºfcntl(),getpid(),getchar,open(),flock£¬read(),write()¡£
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<string.h>
int lock_set(int fd,struct flock *lock)
{
    if(fcntl(fd,F_SETLK,lock)==0)
{
    if(lock->l_type==F_RDLCK)
        printf("set read lock,pid:%d\n",getpid());
    else if(lock->l_type==F_WRLCK)
        printf("set write lock,pid:%d\n",getpid());
    else if(lock->l_type=F_UNLCK)
        printf("release lock,pid:%d\n",getpid());
}
    else
    {
        printf("set lock operatiion fail\n");
        return -1;
}
    return 0;
}
int lock_test(int fd,struct flock *lock)
{
    if(fcntl(fd,F_GETLK,lock)==0)
{
    if(lock->l_type==F_UNLCK)
        printf("lock can be set by fd\n");
    else{
 if(lock->l_type=F_RDLCK)
        printf("can't set lock,read lock can be set by:%d\n",lock->l_pid);
    el


Ïà¹ØÎĵµ£º

linux Çý¶¯¼ÓÔØ²âÊÔÃüÁî

#insmod ./driver_xx.ko
´Ëʱ#cat /proc/devices ÄÜ¿´µ½ driver_xx É豸
#mknod /dev/mygpio c 230 0 (230ÊÇÖ÷É豸ºÅ£¬0ÊÇ×ÓÉ豸ºÅ£©
{ÕâÀï¿ÉÒÔÐÞ¸ÄÉ豸Ãû³Æ,µ«ÊÇÒªºÍ²âÊÔ³ÌÐòÖÐÒ»Ö fd_pio = open(“/dev/mygpio”, O_RDWR);
×îºÃºÍregister_chrdev(MY_PIO_MAJOR, "mygpio", &my_pio_fops)ÖеÄÒ»ÖÂ}
ʹ ......

linux»·¾³±äÁ¿ÉèÖÃ×ܽá(×ªÔØ)

1¡¢×ܽᱳ¾°
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not
found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²
ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾°¸Àý»ùÓÚRedHat ......

linux socket±à³ÌÏà¹ØÖªÊ¶µÄ×ܽá

1£ºsocket±à³ÌÖвÉÓõÄЭÒé×åÖ÷ÒªÓÐÁ½ÖÖ
£º
   1>£ºÍøÂçЭÒé×å(ÐÎʽÈ磺AF_INET, PF_INETµÈ)
   2>£º±¾µØunixÓò¸ñʽµÄЭÒé×å(ÐÎʽÈ磺AF_LOCAL, AF_UNIXµÈ)
   ×¢£ºÐ­Òé×åµÄÑ¡ÔñÌåÏÖÔÚ  int  socket(int domain, inst type, int protocol)º¯ÊýµÄµÚÒ»¸ö²ÎÊý´¦¡£
2£ºÕâÁ½ ......

±àÒëÃüÁamlogic open linux£© ѧϰ±Ê¼Ç

•ËùÓбàÒëµ÷ÊÔÃüÁî¶¼ÔÚui_ref/trunk/bld_xxxÏÂÃæÖ´ÐÐ,¾ßÌåÄĸöbldÒª¸ù¾ÝÄúʹÓõİå×Ó¾ö¶¨;
•Make #±àÒëÈ«²¿,°üÀ¨kernel, busybox, packagesµÈ;
•Make root #±àÒëÎļþϵͳ;
•Make yaffs#°ÑÎļþϵͳ´ò°üÉú³ÉyaffsÎļþϵͳµÄÓ³Ïñrootfs.yaffsimage,²¢±£´æÔÚbuildĿ¼;
•±àÒëÄÚºË
▫Make k. ......

linuxÓ²ÅÌ·ÖÇø¼°Îļþϵͳ

  Ó²Å̽ӿÚÊÇÓ²ÅÌÓëÖ÷»úϵͳ¼äµÄÁ¬½Ó²¿¼þ£¬×÷ÓÃÊÇÔÚÓ²ÅÌ»º´æºÍÖ÷»úÄÚ´æÖ®¼ä´«ÊäÊý¾Ý¡£²»Í¬µÄÓ²Å̽ӿھö¶¨×ÅÓ²ÅÌÓë¼ÆËã»úÖ®¼äµÄÁ¬½ÓËÙ¶È£¬ÔÚÕû¸öϵͳÖУ¬Ó²Å̽ӿڵÄÓÅÁÓÖ±½ÓÓ°Ïì×ųÌÐòÔËÐпìÂýºÍϵͳÐÔÄܺûµ¡£´ÓÕûÌåµÄ½Ç¶ÈÉÏ£¬Ó²Å̽ӿڷÖΪIDE¡¢SATA¡¢SCSIºÍ¹âÏËͨµÀËÄÖÖ£¬IDE½Ó¿ÚÓ²Å̶àÓÃÓÚ¼ÒÓòúÆ·ÖУ¬Ò²²¿·ÖÓ¦ÓÃÓÚ· ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ