간혹 코드 수행시간을 타이트하게 관리 해야할 경우가 있습니다. 이럴 땐 각 함수별로 혹은 코드 흐름중에 해당 코드 수행시간을 측정할 수 있다면 좀 더 시간관리가 용이할 수 있습니다. 다행히 Arm cotex-m3, m4 에서는 CoreDebug라는 register를 통해 CPU cycle을 측정 해 볼 수 있습니다. uint32_t cycles = 0; CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; DWT->CYCCNT = 0; // 수행코드 삽입 cycles = DWT->CYCCNT; 물론 수행코드 사이에 interrupt가 발생하게되면 오차가 발생할 수 있습니다. cycles는 Core clock..
지난 포스트에서 좀 더 자세히 CubeMX에서 설정 부터 UART(USART) Printf - HAL & Polling을 설명해보도록 하겠습니다. 실제로 어플리케이션을 개발할 때 내부 동작 순서나 Debugging을 위해 자주 사용하는 printf() Log 출력하는 방법을 STM32G431RB Nucleo board를 사용해서 UART를 통해 구현해보겠습니다. CubeMX(혹은 CubeIDE)핀 설정은 아래와 같이 해줍니다. LPUART : PA2, PA3 BUTTON : PC13 STM32G4 Nucleo board에는 LPUART PA2,PA3을 통해서 UART VCP로 사용할 수 있습니다. 내부 회로도를 확인해 보면 PA2, PA3 핀은 ST-Link와 연결되어 최종적으로 PC에 Virtual C..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.