LINUX½ø³Ì¼äͨÐÅ
Linux ½ø³Ì¼äͨÐÅѧϰ
1.Linux ¼ä½ø³ÌͨÐŵķÖÀà
1. ¹ÜµÀͨÐÅ£¨pipe£©ºÍÃüÃû¹ÜµÀ£¨FIFO£©
2. Ðźţ¨Èí¼þÖжϣ©
3. ÏûÏ¢¶ÓÁÐ
4. ¹²ÏíÄÚ´æ
5. ÐźÅÁ¿
6. SOCKET
1.1¹ÜµÀͨÐÅ
¹ÜµÀͨÐÅÖ÷Òª·ÖÆÕͨ¹ÜµÀºÍÃüÃû¹ÜµÀ¡£
ËûÃÇÖ®¼äµÄ²î±ð¾ÍÔÚÓÚÆÕͨ¹ÜµÀÊʺÏͬһ¸ö׿ÏȵÄÁ½¸ö½ø³ÌÖ®¼äµÄͨÐÅ£¬¶øÃüÃû¹ÜµÀÔò²»ÊܸÃÏÞÖÆ¡£
¹ÜµÀÏà¹Øº¯ÊýÓÐ:
Int pipe(int filedes[2]);
Pipe º¯ÊýÓÃÓÚÔÚÄÚºËÖпª±ÙÒ»¿é»º³åÇøÓÃÓÚͨÐÅ£¬filedesÊÇ´«µÝ¸øÓû§µÄÁ½¸öÎļþÃèÊö·û¡£Filedes[0]ÓÃÓÚ¶Á£¬filedes[1]ÓÃÓÚд¡£
µ÷Óóɹ¦·µ»Ø0£¬·ñÔò·µ»Ø-1.
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pipe_fd[2];
pid_t pid;
char buf_r[100];
char* p_wbuf;
int r_num;
memset(buf_r,0,sizeof(buf_r));
if(pipe(pipe_fd)<0)
{
printf("pipe create error\n");
return -1;
}
if((pid=fork())==0)
{
printf("\n");
&nbs
Ïà¹ØÎĵµ£º
½ñÌìÖÕÓÚ°ÑOmapL137µÄ°å×ÓÅÜÆðÁËLinuxºÍÆä´øµÄdemo¡£ºÏÖÚ´ï¶ÔÕâ¸ö°å×Ó¶«Î÷×öµÄºÜÉÙ£¬°Ñomapl137µÄÌØµã¶¼Ã»ÓÐչʾ³öÀ´¡£¿É¾Í¿àÁËÎÒÃÇÕâЩÏëÒªÓÃÕâ¸öƬ×ÓµÄÈËÁË¡£¹úÄÚÍæÕâ¸öµÄÈË»¹²»¶à£¬ËùÓÐ×ÊÁϾÍÓ²×ÅͷƤÂýÂýÄ¥°É¡£
ǰ¶Îʱ¼äubootÊÇÓÉdspÄDZßÓÃnandwrite¹¤³Ìд½øÀ´µÄ£¬ÆäУÑ鷽ʽºÍubootµÄeccУÑéËÆºõÓгåÍ»£¬ ......
ǶÈëʽLinuxÆô¶¯·ÖΪÁ½¸ö²¿·Ö£¬ÏµÍ³Òýµ¼ÓëLinuxÆô¶¯¡£ÏµÍ³Òýµ¼½«Íê³ÉLinux×°ÈëÄÚ´æÇ°£¬³õʼ»¯CPUºÍÏà¹ØI/OÉ豸£¬²¢½«Linuxµ÷ÈëÄÚ´æµÄ¹¤×÷¡£ÏµÍ³Òýµ¼Ö÷ÒªÓÉBootLoaderʵÏÖ¡£ÔÚBootLoader½«LinuxÄں˵÷ÈëÄÚ´æÖ®ºó£¬½«È¨Á¦½»¸øLinuxKernel£¬½øÈëLinuxµÄÆô¶¯²¿·Ö¡£ÒÔÏÂÏêϸ·ÖÎöÆô¶¯µÄ¹ý³ÌÓëʹÓõÄÎļþ¡£
Ò»¡¢ÏµÍ³Òýµ¼ÓëBootLoa ......
Ò»:ǰÑÔ
I2cÊÇphilipsÌá³öµÄÍâÉè×ÜÏß.I2CÖ»ÓÐÁ½ÌõÏß,Ò»Ìõ´®ÐÐÊý¾ÝÏß:SDA,Ò»ÌõÊÇʱÖÓÏßSCL.ÕýÒòΪÕâÑù,Ëü·½±ãÁ˹¤³ÌÈËÔ±
µÄ²¼Ïß.ÁíÍâ,I2CÊÇÒ»ÖÖ¶àÖ÷»ú¿ØÖÆ×ÜÏß.ËüºÍUSB×ÜÏß²»Í¬,USBÊÇ»ùÓÚmaster-slave»úÖÆ,ÈκÎÉ豸µÄͨÐűØÐëÓÉÖ÷»ú·¢Æð²Å¿ÉÒÔ.¶ø
I2C ÊÇ»ùÓÚmulti master»úÖÆ.һͬ×ÜÏßÉÏ¿ÉÔÊÐí¶à¸ömaster.¹ØÓÚI2CÐÒéµÄÖª ......
Linux
ÏÂÉèÖö˿ÚȨÏÞµÄϵͳµ÷ÓÃÓÐÁ½¸ö£º
ioperm
ºÍ
iopl
¡£
Ò»¡¢
ioperm
ºÍ
iopl
½éÉÜ¡£
1.ioperm
¹¦ÄÜÃèÊö£º
Ϊµ÷Óýø³ÌÉèÖÃ
I/O
¶Ë¿Ú·ÃÎÊȨÄÜ¡£
ioperm
µÄʹÓÃÐèÒª¾ßÓг¬¼¶Óû§µÄȨÏÞ£¬Ö»ÓеͶ˵Ä
[0-0x3ff] I/O
¶Ë¿Ú¿É±»ÉèÖã¬ÒªÏëÖ¸¶¨¸ü¶à¶Ë¿ÚµÄȨÄÜ£¬¿ÉʹÓÃ
iopl
º¯Êý¡£ÕâÒ»µ÷ÓÃÖ»¿ÉÓÃÓ ......