Çó½Ì£¬2410 arm9¿ª·¢°å io ²Ù×÷
#include <stdio.h>#include <stdlib.h>
#include <unistd.h>
#include <sys/io.h>
main()
{
unsigned int d;
iopl(3);
printf("begin!\n");
d=inb(0x0032);
printf("d=%x\n",d);
printf("Succeed!\n");
}
ÎÒ¸Õѧϰ£¬ÃþË÷ÖУ¬Õâ¶Î³ÌÐòÊÇÏëÊÔÊÔ ioµÄ²Ù×÷£¬ÒòΪÐèÒªÓÿª·¢°å²É¼¯¿ª¹ØÁ¿¡£
±àÒë ͨ¹ý£¬ ÔÚ¿ª·¢°åÉÏÔËÐÐ ²»¶Ô£¬³öÏÖ ... unhandled page fault at pc=0x400ge81c, lr=0x00008448 (bad address =0x00)...
ºÜ³¤
Õâ´úÂëÓÐʲôÎÊÌ⣬Çë½Ì°¡£¬ Çý¶¯»¹²»ÊǺܶ®£¬±ÈÈçiopl ºÍinb Õâ2¸öº¯ÊýÒ²µÚÒ»´ÎÓã¬Ð»Ð» ÎÒ¶¼ÊÔÁËÔÚ µçÄÔ ÉÏÐéÄâ»úÏÂlinux¿ÉÒÔÓ㬵«ÔÚ arm¿ª·¢°åÉϾͳö´í£¬ÊDz»ÊÇ ioplºÍiopermÕâ2¸öº¯Êý²»ÄÜÔÚarmÉÏÓð¡ ²»ÄÜÓõϰ£¬ÓÃʲô·½·¨¿ÉÒÔ¶Á io£¬ ±ÈÈçÓÃ/dev/port£¬ÈçºÎʹÓÃÄÜÏêϸ½²ÏÂÂð£¬Ð»Ð»ÁË
Ò³:
[1]