기능 정의 :
1 HAL_StatusTypeDef HAL_Init ( 공극 ) 이 { 3 / * 구성 플래시 인출, 명령 캐시, 데이터 캐시 * / 4 의 #if (INSTRUCTION_CACHE_ENABLE = 0U!) 5 __HAL_FLASH_INSTRUCTION_CACHE_ENABLE (); 6 #endif 다음 / * * INSTRUCTION_CACHE_ENABLE / 7 8 의 #if (DATA_CACHE_ENABLE = 0U!) 9 __HAL_FLASH_DATA_CACHE_ENABLE (); 10 #endif 다음 / DATA_CACHE_ENABLE * * / 11 (12) 의 #if (PREFETCH_ENABLE = 0U!) 13 __HAL_FLASH_PREFETCH_BUFFER_ENABLE (); (14) #endif 다음 / PREFETCH_ENABLE * * / 15 16 / * 설정 인터럽트 그룹 우선 * / 17 HAL_NVIC_SetPriorityGrouping (NVIC_PRIORITYGROUP_4); 18 19 / * 타임베이스 소스로 systick 사용하고 (재설정 HSI 후 기본 클럭)을 1ms의 진드기를 구성 * / 20 HAL_InitTick (TICK_INT_PRIORITY); 21 (22) / * 저레벨 하드웨어 초기화 * / 23 HAL_MspInit (); 24 (25) / * 리턴 기능 상태 * / 26 리턴 HAL_OK; 27 }
1. 구성 플래시 프리 페치, 명령어 캐시, 데이터 캐시
1 / * 구성 플래시 인출, 명령 캐시, 데이터 캐시 * / 2 의 #if (! = INSTRUCTION_CACHE_ENABLE 0U) 3 __HAL_FLASH_INSTRUCTION_CACHE_ENABLE (); 4 #endif 다음 / * * INSTRUCTION_CACHE_ENABLE / 5 6 의 #if (DATA_CACHE_ENABLE = 0U!) 7 __HAL_FLASH_DATA_CACHE_ENABLE (); 8 #endif 다음 / * * DATA_CACHE_ENABLE / 9 10 의 #if (PREFETCH_ENABLE = 0U!) 11 __HAL_FLASH_PREFETCH_BUFFER_ENABLE (); 12 #endif 다음 / PREFETCH_ENABLE * * /
2. 인터럽트의 우선 순위 그룹화
1 / * 설정 인터럽트 그룹 우선 순위 * / 2 HAL_NVIC_SetPriorityGrouping (NVIC_PRIORITYGROUP_4);
STM32F429은 분리 인터럽트 . 5 개 그룹, 그룹 0-4 . 패킷이 제공된다 SCB-> AIRCR 등록 bit10 ~ (8)을 정의한다. 인터럽트 우선 순위는 그룹 0에 응답하여, 네 선점 우선 순위를 나타내는 4이다.
3. Systick는 "stm32f4xx_hal_conf.h"파일에 정의 된 우선 순위, TICK_INT_PRIORITY 매개 변수를 중단, 기본 값은 0x0F의 가장 낮은 우선 순위는
1 / * 타임베이스 소스로 systick 사용하고 (재설정 HSI 후 기본 클럭)을 1ms의 진드기를 구성 * / 2 HAL_InitTick (TICK_INT_PRIORITY);
약한 함수로 정의되는 제 수행 MSP 콜백 함수는 사용자 파일로 구현 될 수있다
1 / * 저레벨 하드웨어 초기화 * / 2 HAL_MspInit ();