>안녕하십니까!
>GPIO예제를 이용해서 LCD에 SPI신호를 만들어 보려고 하는데 함수선언에 문제가 있어 올립니다.
>gpio.c에서 아래 함수를 만들고
>
>int  SetPort( int PortIndex, int value )
>{
>        // 출력 전용으로 설정
>        GPDR0 |= ( GPIO_OUTPUT_MASK );
>        
>        if( value )
>        {
>                //Port Set
>                switch( PortIndex )
>                {
>                case 0 : GPSR0 = LCD_RST;                 break;
>                case 1 : GPSR0 = BLU_EN;                 break;
>                case 2 : GPSR0 = LCD_SDI;                break;
>                case 3 : GPSR0 = LCD_SCL;                break;
>                case 4 : GPSR0 = LCD_RS;                 break;
>                case 5 : GPSR0 = LCD_CS;                 break;
>                case 6 : GPSR0 = LCD_PDSB;                break;
>//                default:        
>//                break;
>                }
>        }
>        else
>        {
>                //Port Clear
>                switch( PortIndex )
>                {
>                case 0 : GPCR0 = LCD_RST;                 break;
>                case 1 : GPCR0 = BLU_EN;                 break;
>                case 2 : GPCR0 = LCD_SDI;                break;
>                case 3 : GPCR0 = LCD_SCL;                break;
>                case 4 : GPCR0 = LCD_RS;                 break;
>                case 5 : GPCR0 = LCD_CS;                 break;
>                case 6 : GPCR0 = LCD_PDSB;                break;
>//                default:        
>//                break;
>                }
>        }
>}
>
>gpio.h 파일에 아래와 같이 선언한 다음에
>int  SetPort( int PortIndex, int value );
>
>test.c에서 아래처럼 이 함수를 사용하려고 하는데
>
>void sslcd_reset( void )
>{
>        usleep( 2000 );
>        SetPort(LCD_RST,LOW);                        // BLU_EN : GPIO1
>        usleep( 2000 );
>        SetPort(LCD_RST,HIGH);
>        usleep( 10000 );
>}
>
>함수가 선언되지 않았다고 하면서 에러가 발생합니다.
>밑에 Q/A를 읽어보니 write같은 함수는 linux 커널에 매크로함수로 처리가 되어있어
>사용이 가능한거 같은데 위 같은 경우 SetPort(); 함수를 사용할 수 있는 방법이 없나요?

안녕하세요 FALINUX 이동수 입니다.

우선 LINUX는 현재 커널 영역과 어플리케이션 영역으로 나누어서 관리를 하고 있습니다.
그래서 저희 예제의 gpio.c와 test.c를 수정하셨다면 두 부분은 영역이 다르기 때문에 함수를 찾을 수 없게 될 것입니다.
그래서 권해 드리고 싶은 방법은 앞에서 말씀하신데로 write 또는 ioctl 함수를 사용하셔야 할 것 같습니다.

도움이 되셨으면 좋겠습니다. 좋은 하루 되십시오 ^^