STR911 GPIO 토글링 속도 측정
기본 예제로 클럭 설정시 25Mhz에서
SCU_MCLKSourceConfig(SCU_MCLK_OSC); /*Use OSC as the default clock source*/
SCU_PCLKDivisorConfig(SCU_PCLK_Div1); /* ARM Peripheral bus clokdivisor = 1*/
대략 600kHz 정도 출력된다.
PLL 클럭으로 설정시
SCU_MCLKSourceConfig(SCU_MCLK_PLL); /*Use OSC as the default clock source*/
SCU_PCLKDivisorConfig(SCU_PCLK_Div1); /* ARM Peripheral bus clokdivisor = 1*/
SCU_PLLCmd (ENABLE);
1.85Mhz, 280ns 정도 나온다.
이건... AVR수준인데... [다른 MCU속도 측정 결과]
클럭 설정에 대한 매뉴얼을 더 읽어봐야 할것 같지만 아무래도 PLL설정에 문제가 있는것 같고 GPIO를 위해 포인터 접근하는 부분도 문제가 있을것 같다...
추후 테스트 하는대로 정리 하도록->
코드를 살펴보니 어셈블 되었을때 4개의 명령어로 처리된다. 그래도 이정도 속도는 아닌데... PLL설정 부분을 확인하는것이 필요하다.
67 while(1)
68 {
69 GPIO2->DR[0x3FC] ^= 0xFF;
\ ??main_1:
\ 0000006C FC03D4E5 LDRB R0,[R4, #+1020]
\ 00000070 FF0020E2 EOR R0,R0,#0xFF
\ 00000074 FC03C4E5 STRB R0,[R4, #+1020]
\ 00000078 FBFFFFEA B ??main_1
\ ??main_0:
\ 0000007C ........ DC32 GPIO_InitStructure
70 }
while(1)
{
GPIO2->DR[0x3FC] ^= 0xFF;
}
{
GPIO2->DR[0x3FC] ^= 0xFF;
}
기본 예제로 클럭 설정시 25Mhz에서
SCU_MCLKSourceConfig(SCU_MCLK_OSC); /*Use OSC as the default clock source*/
SCU_PCLKDivisorConfig(SCU_PCLK_Div1); /* ARM Peripheral bus clokdivisor = 1*/
대략 600kHz 정도 출력된다.
PLL 클럭으로 설정시
SCU_MCLKSourceConfig(SCU_MCLK_PLL); /*Use OSC as the default clock source*/
SCU_PCLKDivisorConfig(SCU_PCLK_Div1); /* ARM Peripheral bus clokdivisor = 1*/
SCU_PLLCmd (ENABLE);
1.85Mhz, 280ns 정도 나온다.
이건... AVR수준인데... [다른 MCU속도 측정 결과]
클럭 설정에 대한 매뉴얼을 더 읽어봐야 할것 같지만 아무래도 PLL설정에 문제가 있는것 같고 GPIO를 위해 포인터 접근하는 부분도 문제가 있을것 같다...
추후 테스트 하는대로 정리 하도록->
코드를 살펴보니 어셈블 되었을때 4개의 명령어로 처리된다. 그래도 이정도 속도는 아닌데... PLL설정 부분을 확인하는것이 필요하다.
67 while(1)
68 {
69 GPIO2->DR[0x3FC] ^= 0xFF;
\ ??main_1:
\ 0000006C FC03D4E5 LDRB R0,[R4, #+1020]
\ 00000070 FF0020E2 EOR R0,R0,#0xFF
\ 00000074 FC03C4E5 STRB R0,[R4, #+1020]
\ 00000078 FBFFFFEA B ??main_1
\ ??main_0:
\ 0000007C ........ DC32 GPIO_InitStructure
70 }
반응형