LINUX ÄÚ´æÓ³Éä
ÔÚ³£¹æIOÖУ¬ÎÒÃÇÒ»°ã¶¼ÊÇÈÏΪºÍÎļþϵͳ×öIO²Ù×÷×ÜÊÇÎÞ·¨±ÜÃâµÄ±ØÐë²»ÑáÆä·³µÄwrite£¬read£¬¶øÊÂʵÉÏÕâÖÖ·½Ê½ÔÚ½øÐÐһЩ´óÎļþ²Ù×÷µÄʱºò£¬ÏÔµÃÊ®·ÖµÄ²»±ã£¬ÏÂÃæÕâ¶Î´úÂ뼴չʾÁËÈç¹û½«ÎïÀíÓ²ÅÌÉϵÄÊý¾ÝÓ³Éäµ½ÄÚ´æÖУ¬ÎÒÃÇÏñ²Ù×÷ÆÕͨµÄÄÚ´æÒ»Ñù¶ÔÎļþ½øÐжÁд£º
#include <sys/mman.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <iostream>
#include <string.h>
using namespace std;
main(int argc, char** argv) // map a normal file as shared mem:
{
int fd,i;
char *p_map;
char cs[]="helloworld";
fd=open( argv[1],O_CREAT|O_RDWR,00777 );
p_map = (char*)mmap(NULL,10,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
for(i = 0;i<10;i++)
{
cout << *(p_map+i);
}
memcpy(p_map,cs,10);
munmap(p_map,10);
}
½á¹ûÈçÏ£º
Administrator@GZHT-D1FF475D33 /LINUX/pro/hello
$ ./man1.exe cc
qwertyuiop
Administrator@GZHT-D1FF475D33 /LINUX/pro/hello
$ cat cc
helloworld
Ïà¹ØÎĵµ£º
ʲôÊÇÇý¶¯£¿
×îͨË׵ĽâÊ;ÍÊÇ“ÇýʹӲ¼þÉ豸Ðж¯”
×÷Óã¿
É豸Çý¶¯Óëµ×²ãÓ²¼þÖ±½Ó´ò½»µÀ£¬°´ÕÕÓ²¼þÉ豸µÄ¾ßÌ幤×÷·½Ê½¶ÁдÉ豸¼Ä´æÆ÷£¬Íê³ÉÉ豸µÄÂÖѯ¡¢Öжϴ¦Àí¡¢DMAͨÐÅ£¬½øÐÐÎïÀíÄÚ´æÏòÐéÄâÄÚ´æµÄÓ³É䣬×îÖÕʹͨÐÅÉ豸Äܹ»ÊÕ·¢Êý¾Ý£¬Ê¹ÏÔʾÉ豸Äܹ»ÏÔʾÎÄ×ÖºÍ»Ãæ£¬Ê¹´æ´¢É豸Äܹ»¼Ç¼ÎļþºÅÊý¾Ý
¼ÆË ......
ÖÐ¶ÏÆÁ±ÎµÄʹÓ÷½·¨£º
local_irq_disable() //¹ØÖжÏ
local_irq_enable() //¿ªÖжÏ
ÕâÁ½¸öº¯Êý¶¼Ö»ÄܽûÖ¹ºÍʹÄܱ¾cpuÄÚµÄÖжϣ¬Òò´Ë£¬²¢²»Äܽâ¾öSMP¶àcpuÒý·¢µÄ¾ºÌ¬¡£Òò´Ë£¬µ¥¶ÀʹÓÃÖÐ¶ÏÆÁ±Îͨ³£²»ÊÇÒ»ÖÖÖµµÃÍÆ¼öµÄ±ÜÃ⾺̬µÄ·½·¨£¬ËüÊÊÒËÓë×ÔÐýËøÁªºÏʹÓÃ
ÁíÍ⣬local_irq_save(flags)³ýÁ˽øÐнûÖ¹ÖжϲÙ×÷ÒÔÍ⣬»¹± ......
ÖжϣºcpuÔÚÖ´ÐгÌÐòµÄ¹ý³ÌÖУ¬³öÏÖÁËijЩͻ·¢Ê¼þʱcpu±ØÐëÔÝÍ£Ö´Ðе±Ç°µÄ³ÌÐò£¬×ªÈ¥´¦ÀíÍ»·¢Ê¼þ£¬´¦ÀíÍê±ÏºócpuÓÖ·µ»ØÔ³ÌÐò±»ÖжϵÄλÖò¢¼ÌÐøÖ´ÐÐ
¸ù¾ÝÖжÏÈë¿ÚÌø×ª·½·¨µÄ²»Í¬£¬ÖжϷÖΪÏòÁ¿ÖжϺͷÇÏòÁ¿Öжϡ£
²ÉÓÃÏòÁ¿ÖжϵÄcpuͨ³£Îª²»Í¬µÄÖжϷÖÅ䲻ͬµÄÖжϺţ¬µ±¼ì²âµ½Ä³ÖжϺŵÄÖжϵ½À´ºó£¬¾Í×Ô¶¯Ì ......
typedef void (*lpFunction) ();//¶¨ÒåÒ»¸öÎÞ²ÎÊý£¬ÎÞ·µ»ØÀàÐ͵ĺ¯ÊýÖ¸ÕëÀàÐÍ
//¶¨ÒåÒ»¸öº¯ÊýÖ¸Õ룬ָÏòcpuÆô¶¯ºóËùÖ´ÐеĵÚÒ»ÌõÖ¸ÁîµÄλÖÃ
lpFunction lpReset = (lpFunction)0xF000FFF0;
lpReset();//µ÷Óú¯Êý
MMUÍ£¹©ÐéÄâµØÖ·ºÍÎïÀíµØÖ·µÄÓ³Éä¡¢ÄÚ´æ·ÃÎÊȨÏÞ±£»¤ºÍCache»º´æ¿ØÖƵÈÓ²¼þÖ§³Ö¡£²Ù×÷ϵͳÄں˽èÖ ......
½ñÌ죬°ÑwindowsÏµĹ¤³Ìµ¼Èëµ½ÁËLinuxÏÂeclipseÖУ¬ÓÉÓÚÒÔǰµÄ¹¤³Ì´úÂ룬¶¼ÊÇGBK±àÂëµÄ£¬¶øUbuntuĬÈÏÊDz»Ö§³ÖGBK±àÂëµÄ¡£ËùÒÔ£¬Ê×ÏÈÎÒÃÇÒªÏÈÈÃUbuntuÖ§³ÖGBK£¬·½·¨ÈçÏ£º
1.
ÐÞ¸Ä/var/lib/locales /supported.d/localÎļþ,ÔÚÎļþÖÐÌí¼Ó
z ......