Hal init Flow 분석

Hal init 과정을 분석해 보았다. HAL init 시 아래와 같은 함수를 호출 한다.

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

RCC Clock Configuration 설정 순서

STM32에서 Clock Configuration을 설정하는 과정을 확인해 보았다.
SystemClock Config => HAL_RCC_ClockConfig 함수가 호출되어 Clock Configuration이 설정이 된다. 호출 과정을 분석한 내용을 정리해 보았다.
Oscillator를 설정하기 위해 아래와 같이 설정 후 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2)를 호출 한다.
Clock 설정은 아래와 같이 세팅했다.
clock_setting ~~~ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

RCC Oscillators 설정 순서

STM32에서 Oscillator를 설정하는 과정을 확인해 보았다.
SystemClock Config => HAL_RCC_OscConfig 함수가 호출되어 Oscillator가 설정이 된다. 호출 과정을 분석한 내용을 정리해 보았다.
Oscillator를 설정하기 위해 아래와 같이 설정 후 HAL_RCC_OscConfig(&RCC_OscInitStruct)를 호출 한다.
Clock 설정은 아래와 같이 세팅했다.
clock_setting
system_architecture
stm32f103xx_performace_block_diagram
clock_tree ~~~ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

Systick 세팅 순서

Systick 설정 순서는 아래와 같다. Systick 이란 Cortex-M 시리즈 마이크로컨트롤러의 코어에 기본적으로 동일하게 내장된 24비트 타이머다.

Pagination