LinuxÒÁµéÔ°ÂÛ̳'s Archiver

luchong2000 ·¢±íÓÚ 2007-2-9 09:33

ÈçºÎÐÞ¸ÄGPIO¼Ä´æÆ÷

Çé¿öÊÇÕâÑùµÄ:
ÎÒÃǹ«Ë¾ÏÖÔÚÔÚʹÓÃPowerPCµÄCPU,CPUÉÏÔËÐÐLinux 2.6.13, ÏÖÔÚÎÒÏëÒª¶ÔGPIO²Ù×÷,±àдÁËÒ»¸ö³ÌÐòȥдGPIOÊä³ö,³ÌÐò±àÒëÊÇͨ¹ýÁË,ÔËÐÐÇ°ÃæµÄprintfÖ®ÀàµÄÓï¾äÖ´ÐÐÕý³£,µ«Ö´Ðе½ÐÞ¸ÄGPIO¼Ä´æÆ÷ʱ,³öÏÖ"Segmentation fault"

ÎÒ¹À¼ÆÊDzÙ×÷ϵͳÕý³£ÔËÐÐÖ®ºó½øÈë±£»¤Ä£Ê½,±£»¤Ä£Ê½ÏÂÔËÐеijÌÐòÎÞ·¨¶ÔCPUµÄ¼Ä´æÆ÷Ö±½Ó²Ù×÷,Ó¦¸ÃÔõô°ìÄØ?

GPIOµØÖ·Çé¿öÈçÏÂ:
1.ÔÚ¿ª·¢°åÌṩµÄ.hÖÐ:
#define GPIO_BASE 0xEF600700
#define GPIO0_OR (GPIO_BASE+0x0)

ÎÒÓõľÍÊÇGPIO0_OR

2.³ÌÐò:
int main(int argc, char* argv[])
{
  printf("hello,world!\n"); //Õý³£´òÓ¡
  *(volatile ulong *)GPIO0_OR &= ~0x00000002; //³öSegmentation fault´í

  return 0;
}

tqiu ·¢±íÓÚ 2007-2-10 00:37

linuxÏÂÓ¦ÓóÌÐò²»ÄÜÕâÑùÖ±½Ó·ÃÎÊÓ²¼þÉ豸£¬Ó¦ÓóÌÐòÊôÓÚÓû§²ã£¬ÄãÒª·ÃÎʵÄGIOÊôÓÚÓ²¼þÉ豸ÔÚÄں˲㡣¿ÉÒÔ½«Ó²¼þ¿ØÖƼ´¶ÔGIOµÄ·ÃÎÊ£¬ÊµÏÖ³ÉÒ»¸öÉ豸Çý¶¯³ÌÐò£¬ÌṩÍⲿ¶Áд»òioctl½Ó¿Ú¡£Ó¦ÓóÌÐòͨ¹ý´ò¿ª£¯¶Á£¯Ð´¸ÃÉ豸Íê³É¶Ô¸ÃGIOµÄ·ÃÎÊ¡£¹ØÓÚÇý¶¯³ÌÐòµÄʵÏÖ£¬½¨ÒéÔĶÁ¡¶linux É豸Çý¶¯³ÌÐò¡·Ò»Ê飬ÆäÖÐ×Ö·ûÉ豸һÕ£¬Ó¦¸Ã×ã¹»Ó¦¸¶ÄãÕâ¸öÐèÇó¡£

flag ·¢±íÓÚ 2007-2-10 11:18

Äã¹À¼ÆµÄÊÇÕýÈ·µÄ£¬Í¨³£Ç¶Èëʽ±à³Ì¶ÔÓÚÓ²¼þµØÖ·µÄÖ±½Ó·ÃÎÊ·½Ê½ÊÇͨ¹ýÓ³É䣬½áºÏÓ²¼þ²¼Ïߣ¬½«ÐèÒª·ÃÎʵĵØÖ·Ó³Éäµ½ÄÚ´æ¿Õ¼ä£¬È»ºóÖ±½Ó·ÃÎÊ¡£

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.