안녕하세요..

>#define GPIO_OUTPUT_MASK        ( MASK_GPIO_LED_1 | MASK_GPIO_LED_2 | MASK_GPIO_LED_3 | MASK_GPIO_LED_4 )
>
>이렇게 되면 GPIO_OUTPUT_MASK는 bit stream으로 어떻게 표현되는거죠??


==>> 0x3B 가 됩니다..   ( 11 1100 )



>그 후에 gpio.c에서
>
>GPDR0 |= ( GPIO_OUTPUT_MASK );
>
>이렇게 설정이 되는데...GPDR0은 0x40E0000C로 초기화 되어있는걸로 알고 있습니다..
>GPDR0은 저 instruction후에는 어떻게 바뀌고, LED를 제어하는 gpio 2,3,4,5를 설정하는걸로 알고 있는데 어떻게 그것이 가능하게 되는것인지...

===>> GPDR은 GPIO를 입력으로 설정할 것인지 출력으로 설정할 것인지를 결정하는 것입니다.
            각 비트가 1로 설정이 되면 출력, 0으로 설정이 되면 입력이 됩니다.
            따라서 위의 코드는 gpio 2,3,4,5 이 출력으로 설정된 것입니다.


>그리고 예제 파일 gpio.c의 gpio출력 함수에서 GPSR0과 GPCR0을 설정해주는 이유를...

==> 위에서 GPIO가 출력으로 설정되었기 떄문에 GPIO를 LOW 또는 High로 제어할 수 있습니다.
        이 제어레지스트가 GPSR과 GPCR입니다.
        GPSR 은 비트를 SET하는 레지스트 이며, GPCR은 비트를 Clear 하는 레지스트입니다.

좀더 자세한 내용은 PAX255 user's manual 에서 GPIO 레지스트 부분을 참조하세요..


그럼 수고하세요...