1 /*----------------------------------------------------------------------------
4 *----------------------------------------------------------------------------*/
6 #include "stm32f2xx_hal.h" // Keil::Device:STM32Cube HAL:Common
7 #include "cmsis_dv.h" // ARM.API::CMSIS Driver Validation:Framework
9 #ifdef RTE_CMSIS_RTOS_RTX
10 extern uint32_t os_time;
12 uint32_t HAL_GetTick(void) {
17 #ifdef RTE_CMSIS_RTOS2
19 * Override default HAL_GetTick function
21 uint32_t HAL_GetTick (void) {
22 static uint32_t ticks = 0U;
25 if (osKernelGetState () == osKernelRunning) {
26 return ((uint32_t)osKernelGetTickCount ());
29 /* If Kernel is not running wait approximately 1 ms then increment
30 and return auxiliary tick counter value */
31 for (i = (SystemCoreClock >> 14U); i > 0U; i--) {
32 __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP();
33 __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP();
39 /*----------------------------------------------------------------------------
40 * SystemClock_Config: System Clock Configuration
41 *----------------------------------------------------------------------------*/
42 void SystemClock_Config(void);
43 void SystemClock_Config(void) {
44 RCC_OscInitTypeDef RCC_OscInitStruct;
45 RCC_ClkInitTypeDef RCC_ClkInitStruct;
47 /* Enable HSE Oscillator and activate PLL with HSE as source */
48 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
49 RCC_OscInitStruct.HSEState = RCC_HSE_ON;
50 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
51 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
52 RCC_OscInitStruct.PLL.PLLM = 25;
53 RCC_OscInitStruct.PLL.PLLN = 240;
54 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
55 RCC_OscInitStruct.PLL.PLLQ = 5;
56 HAL_RCC_OscConfig(&RCC_OscInitStruct);
58 /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
60 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK |
61 RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
62 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
63 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
64 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
65 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
66 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3);
77 #if defined(RTE_CMSIS_RTOS) || defined(RTE_CMSIS_RTOS2)
78 osKernelInitialize ();
81 HAL_Init(); /* Initialize the HAL Library */
83 SystemClock_Config(); /* Configure the System Clock */
85 #if defined(RTE_CMSIS_RTOS2)
86 osThreadNew(cmsis_dv, NULL, NULL);
91 #if defined(RTE_CMSIS_RTOS) || defined(RTE_CMSIS_RTOS2)