본문 바로가기

ARM9/S3C6410

[S3C6410] GPIO 속도테스트

[S3C6410] GPIO 속도테스트




간단히 gpio.cpp 에서 제공되는 함수를 이용하여 PORTI를 토글시켜 보았다.
토글 속도가 220ns - 2.2Mhz가 나온다. 느린데..
#define Led1Toggle()            GPIO_SetDataAll(eGPIO_I, GPIO_GetDataAll(eGPIO_I) ^ BIT0)


포트를 S3C6410 GPIO 레지스터로 집접 제어하도록 수정해 보았다.
198ns 2.5Mhz로 조금 더 빨라 졌지만 여전히 느리다.

#define Led1Toggle()           PORTI ^= BIT0

GPIDAT레지스터는 0x7F008104에 할당되어 있다.



#define PORTI      (*(volatile unsigned*)0x7F008104)

while(1)
{
    Led1Toggle();
}


페리 클럭이 느린건지... 설정이 문제인지... 토글레지스터가 없긴하지만 다른 MCU속도 측정 결과 를 참고 하면 GPIOO 만으로 제어는 힘들듯..

참고로 단순 ON/OFF만 했을때는 2배 빨라진다. 다른 MCU는 3~4배 이상 빨라지는것과 비교하면 코드 효율이 좋은것 같다.

while(1)
{
    Led1On();
    Led1Off();
}
반응형