[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에 할당되어 있다.
페리 클럭이 느린건지... 설정이 문제인지... 토글레지스터가 없긴하지만 다른 MCU속도 측정 결과 를 참고 하면 GPIOO 만으로 제어는 힘들듯..
참고로 단순 ON/OFF만 했을때는 2배 빨라진다. 다른 MCU는 3~4배 이상 빨라지는것과 비교하면 코드 효율이 좋은것 같다.
while(1)
{
Led1On();
Led1Off();
}
간단히 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();
}
while(1)
{
Led1Toggle();
}
페리 클럭이 느린건지... 설정이 문제인지... 토글레지스터가 없긴하지만 다른 MCU속도 측정 결과 를 참고 하면 GPIOO 만으로 제어는 힘들듯..
참고로 단순 ON/OFF만 했을때는 2배 빨라진다. 다른 MCU는 3~4배 이상 빨라지는것과 비교하면 코드 효율이 좋은것 같다.
while(1)
{
Led1On();
Led1Off();
}
반응형