Browse Source

Formatting AND RCC clocks enable ALL clocks ALL the time!

makefile_for_cmsis
heck 2 years ago
parent
commit
9bfee7bcd5
  1. 251
      src/main.c

251
src/main.c

@ -13,13 +13,53 @@ RNG_HandleTypeDef hrng;
extern PCD_HandleTypeDef hpcd_USB_OTG_FS; extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
void SystemClock_Config(void) { void SystemClock_Config(void)
RCC_OscInitTypeDef RCC_OscInitStruct = {0}; {
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_OscInitTypeDef RCC_OscInitStruct = { 0 };
RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 };
/** Configure the main internal regulator output voltage // Enable ALL the clocks
*/ __HAL_RCC_SYSCFG_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE(); __HAL_RCC_PWR_CLK_ENABLE();
// ALL GPIO Ports
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
// ALL Timers
__HAL_RCC_TIM1_CLK_ENABLE();
__HAL_RCC_TIM2_CLK_ENABLE();
__HAL_RCC_TIM3_CLK_ENABLE();
__HAL_RCC_TIM4_CLK_ENABLE();
__HAL_RCC_TIM5_CLK_ENABLE();
__HAL_RCC_TIM6_CLK_ENABLE();
__HAL_RCC_TIM7_CLK_ENABLE();
__HAL_RCC_TIM8_CLK_ENABLE();
__HAL_RCC_TIM9_CLK_ENABLE();
__HAL_RCC_TIM10_CLK_ENABLE();
__HAL_RCC_TIM11_CLK_ENABLE();
__HAL_RCC_TIM12_CLK_ENABLE();
__HAL_RCC_TIM13_CLK_ENABLE();
__HAL_RCC_TIM14_CLK_ENABLE();
// ALL DMA Controllers
__HAL_RCC_DMA1_CLK_ENABLE();
__HAL_RCC_DMA2_CLK_ENABLE();
// The DAC
__HAL_RCC_DAC_CLK_ENABLE();
// The RNG
__HAL_RCC_RNG_CLK_ENABLE();
// Configure the main internal regulator output voltage
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/** Initializes the RCC Oscillators according to the specified parameters /** Initializes the RCC Oscillators according to the specified parameters
@ -39,8 +79,8 @@ void SystemClock_Config(void) {
/** Initializes the CPU, AHB and APB buses clocks /** Initializes the CPU, AHB and APB buses clocks
*/ */
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 |
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
@ -55,35 +95,35 @@ void SystemClock_Config(void) {
// Exception and Interrupt handler // Exception and Interrupt handler
// -------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------
void NMI_Handler(void) { void NMI_Handler(void)
while (1) { {
} while (1) {}
} }
void HardFault_Handler(void) { void HardFault_Handler(void)
while (1) { {
} while (1) {}
} }
void MemManage_Handler(void) { void MemManage_Handler(void)
while (1) { {
} while (1) {}
} }
void BusFault_Handler(void) { void BusFault_Handler(void)
while (1) { {
} while (1) {}
} }
void UsageFault_Handler(void) { void UsageFault_Handler(void)
while (1) { {
} while (1) {}
} }
void DebugMon_Handler(void) { void DebugMon_Handler(void) {}
}
void SysTick_Handler(void) { void SysTick_Handler(void)
{
HAL_IncTick(); HAL_IncTick();
#if (INCLUDE_xTaskGetSchedulerState == 1) #if (INCLUDE_xTaskGetSchedulerState == 1)
if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) { if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) {
@ -95,24 +135,28 @@ void SysTick_Handler(void) {
} }
void EXTI0_IRQHandler(void)
void EXTI0_IRQHandler(void) { {
HAL_GPIO_EXTI_IRQHandler(BUT_BLUE_Pin); HAL_GPIO_EXTI_IRQHandler(BUT_BLUE_GPIO_PIN);
} }
void DMA1_Stream5_IRQHandler(void) { void DMA1_Stream5_IRQHandler(void)
{
HAL_DMA_IRQHandler(&hdma_dac1); HAL_DMA_IRQHandler(&hdma_dac1);
} }
void TIM2_IRQHandler(void) { void TIM2_IRQHandler(void)
{
HAL_TIM_IRQHandler(&htim2); HAL_TIM_IRQHandler(&htim2);
} }
void TIM7_IRQHandler(void) { void TIM7_IRQHandler(void)
{
HAL_TIM_IRQHandler(&htim7); HAL_TIM_IRQHandler(&htim7);
} }
void OTG_FS_IRQHandler(void) { void OTG_FS_IRQHandler(void)
{
HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS); HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
} }
@ -121,30 +165,30 @@ void OTG_FS_IRQHandler(void) {
// Peripheral init // Peripheral init
// -------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------
void MX_GPIO_Init(void) { void MX_GPIO_Init(void)
GPIO_InitTypeDef GPIO_InitStruct = {0}; {
HAL_GPIO_WritePin(LED_GREEN_GPIO_PORT, LED_GREEN_GPIO_PIN, GPIO_PIN_RESET);
/* GPIO Ports Clock Enable */ {
__HAL_RCC_GPIOC_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOH_CLK_ENABLE(); memset(&GPIO_InitStruct, 0, sizeof GPIO_InitStruct);
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */ GPIO_InitStruct.Pin = BUT_BLUE_GPIO_PIN;
HAL_GPIO_WritePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin, GPIO_PIN_RESET); GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(BUT_BLUE_GPIO_PORT, &GPIO_InitStruct);
}
/*Configure GPIO pin : PtPin */ {
GPIO_InitStruct.Pin = BUT_BLUE_Pin; GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; memset(&GPIO_InitStruct, 0, sizeof GPIO_InitStruct);
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(BUT_BLUE_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = LED_GREEN_GPIO_PIN;
GPIO_InitStruct.Pin = LED_GREEN_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(LED_GREEN_GPIO_PORT, &GPIO_InitStruct);
HAL_GPIO_Init(LED_GREEN_GPIO_Port, &GPIO_InitStruct); }
/* EXTI interrupt init*/ /* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0); HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0);
@ -156,8 +200,9 @@ void MX_GPIO_Init(void) {
// Peripheral init // Peripheral init
// -------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------
void MX_DAC_Init(void) { void MX_DAC_Init(void)
DAC_ChannelConfTypeDef sConfig = {0}; {
DAC_ChannelConfTypeDef sConfig = { 0 };
hdac_global.Instance = DAC; hdac_global.Instance = DAC;
if (HAL_DAC_Init(&hdac_global) != HAL_OK) { if (HAL_DAC_Init(&hdac_global) != HAL_OK) {
Error_Handler(); Error_Handler();
@ -177,13 +222,11 @@ void MX_DAC_Init(void) {
} }
} }
void HAL_DAC_MspInit(DAC_HandleTypeDef *dacHandle) { void HAL_DAC_MspInit(DAC_HandleTypeDef *dacHandle)
GPIO_InitTypeDef GPIO_InitStruct = {0}; {
GPIO_InitTypeDef GPIO_InitStruct = { 0 };
if (dacHandle->Instance == DAC) { if (dacHandle->Instance == DAC) {
/* DAC clock enable */ /* DAC clock enable */
__HAL_RCC_DAC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**DAC GPIO Configuration /**DAC GPIO Configuration
PA4 ------> DAC_OUT1 PA4 ------> DAC_OUT1
PA5 ------> DAC_OUT2 PA5 ------> DAC_OUT2
@ -213,14 +256,10 @@ void HAL_DAC_MspInit(DAC_HandleTypeDef *dacHandle) {
} }
} }
void HAL_DAC_MspDeInit(DAC_HandleTypeDef *dacHandle) { void HAL_DAC_MspDeInit(DAC_HandleTypeDef *dacHandle)
{
if (dacHandle->Instance == DAC) { if (dacHandle->Instance == DAC) {
__HAL_RCC_DAC_CLK_DISABLE();
// DAC GPIO Configuration
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4 | GPIO_PIN_5); HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4 | GPIO_PIN_5);
/* DAC DMA DeInit */
HAL_DMA_DeInit(dacHandle->DMA_Handle1); HAL_DMA_DeInit(dacHandle->DMA_Handle1);
} }
} }
@ -230,8 +269,9 @@ void HAL_DAC_MspDeInit(DAC_HandleTypeDef *dacHandle) {
// Peripheral init // Peripheral init
// -------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------
void MX_DMA_Init(void) { void MX_DMA_Init(void)
__HAL_RCC_DMA1_CLK_ENABLE(); {
/* DMA interrupt init */ /* DMA interrupt init */
/* DMA1_Stream5_IRQn interrupt configuration */ /* DMA1_Stream5_IRQn interrupt configuration */
@ -244,9 +284,10 @@ void MX_DMA_Init(void) {
// Timers // Timers
// -------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------
void MX_TIM2_Init(void) { void MX_TIM2_Init(void)
TIM_ClockConfigTypeDef sClockSourceConfig = {0}; {
TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_ClockConfigTypeDef sClockSourceConfig = { 0 };
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
htim2.Instance = TIM2; htim2.Instance = TIM2;
htim2.Init.Prescaler = 0; htim2.Init.Prescaler = 0;
@ -268,8 +309,9 @@ void MX_TIM2_Init(void) {
} }
} }
void MX_TIM6_Init(void) { void MX_TIM6_Init(void)
TIM_MasterConfigTypeDef sMasterConfig = {0}; {
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
htim6.Instance = TIM6; htim6.Instance = TIM6;
htim6.Init.Prescaler = 0; htim6.Init.Prescaler = 0;
@ -286,8 +328,9 @@ void MX_TIM6_Init(void) {
} }
} }
void MX_TIM7_Init(void) { void MX_TIM7_Init(void)
TIM_MasterConfigTypeDef sMasterConfig = {0}; {
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
htim7.Instance = TIM7; htim7.Instance = TIM7;
htim7.Init.Prescaler = 10000; htim7.Init.Prescaler = 10000;
@ -304,17 +347,14 @@ void MX_TIM7_Init(void) {
} }
} }
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *tim_baseHandle) { void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *tim_baseHandle)
{
if (tim_baseHandle->Instance == TIM2) { if (tim_baseHandle->Instance == TIM2) {
__HAL_RCC_TIM2_CLK_ENABLE();
/* TIM2 interrupt Init */ /* TIM2 interrupt Init */
HAL_NVIC_SetPriority(TIM2_IRQn, 5, 0); HAL_NVIC_SetPriority(TIM2_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(TIM2_IRQn); HAL_NVIC_EnableIRQ(TIM2_IRQn);
} else if (tim_baseHandle->Instance == TIM6) { } else if (tim_baseHandle->Instance == TIM6) {
__HAL_RCC_TIM6_CLK_ENABLE();
} else if (tim_baseHandle->Instance == TIM7) { } else if (tim_baseHandle->Instance == TIM7) {
__HAL_RCC_TIM7_CLK_ENABLE();
/* TIM7 interrupt Init */ /* TIM7 interrupt Init */
HAL_NVIC_SetPriority(TIM7_IRQn, 5, 0); HAL_NVIC_SetPriority(TIM7_IRQn, 5, 0);
@ -322,15 +362,12 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *tim_baseHandle) {
} }
} }
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *tim_baseHandle) { void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *tim_baseHandle)
{
if (tim_baseHandle->Instance == TIM2) { if (tim_baseHandle->Instance == TIM2) {
__HAL_RCC_TIM2_CLK_DISABLE();
HAL_NVIC_DisableIRQ(TIM2_IRQn); HAL_NVIC_DisableIRQ(TIM2_IRQn);
} else if (tim_baseHandle->Instance == TIM6) { } else if (tim_baseHandle->Instance == TIM6) {
__HAL_RCC_TIM6_CLK_DISABLE();
} else if (tim_baseHandle->Instance == TIM7) { } else if (tim_baseHandle->Instance == TIM7) {
__HAL_RCC_TIM7_CLK_DISABLE();
HAL_NVIC_DisableIRQ(TIM7_IRQn); HAL_NVIC_DisableIRQ(TIM7_IRQn);
} }
} }
@ -340,34 +377,22 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *tim_baseHandle) {
// Random Number Generator (RNG) // Random Number Generator (RNG)
// -------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------
void MX_RNG_Init(void) { void MX_RNG_Init(void)
{
hrng.Instance = RNG; hrng.Instance = RNG;
if (HAL_RNG_Init(&hrng) != HAL_OK) { if (HAL_RNG_Init(&hrng) != HAL_OK) {
Error_Handler(); Error_Handler();
} }
} }
void HAL_RNG_MspInit(RNG_HandleTypeDef *rngHandle) { void Error_Handler(void)
if (rngHandle->Instance == RNG) { {
__HAL_RCC_RNG_CLK_ENABLE();
}
}
void HAL_RNG_MspDeInit(RNG_HandleTypeDef *rngHandle) {
if (rngHandle->Instance == RNG) {
__HAL_RCC_RNG_CLK_DISABLE();
}
}
void Error_Handler(void) {
heck_error_handler(); heck_error_handler();
__disable_irq(); __disable_irq();
while (1) { while (1) {}
}
} }
#ifdef USE_FULL_ASSERT #ifdef USE_FULL_ASSERT
/** /**
* @brief Reports the name of the source file and the source line number * @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred. * where the assert_param error has occurred.
@ -377,29 +402,32 @@ void Error_Handler(void) {
*/ */
void assert_failed(uint8_t *file, uint32_t line) void assert_failed(uint8_t *file, uint32_t line)
{ {
/* User can add his own implementation to report the file name and line number, /* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
} }
#endif /* USE_FULL_ASSERT */ #endif /* USE_FULL_ASSERT */
osThreadId_t defaultTaskHandle; osThreadId_t defaultTaskHandle;
const osThreadAttr_t defaultTask_attributes = { const osThreadAttr_t defaultTask_attributes = {
.name = "defaultTask", .name = "defaultTask",
.stack_size = 128 * 4, .stack_size = 128 * 4,
.priority = (osPriority_t) osPriorityNormal, .priority = (osPriority_t)osPriorityNormal,
}; };
void StartDefaultTask(void *argument) { void StartDefaultTask(void *argument)
{
MX_USB_DEVICE_Init(); MX_USB_DEVICE_Init();
heck_cppmain(); heck_cppmain();
} }
void MX_FREERTOS_Init(void) { void MX_FREERTOS_Init(void)
{
defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes); defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
} }
int main(void) { int main(void)
{
HAL_Init(); HAL_Init();
SystemClock_Config(); SystemClock_Config();
@ -416,9 +444,8 @@ int main(void) {
osKernelStart(); osKernelStart();
} }
void HAL_MspInit(void) { void HAL_MspInit(void)
__HAL_RCC_SYSCFG_CLK_ENABLE(); {
__HAL_RCC_PWR_CLK_ENABLE();
HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0); HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
} }

Loading…
Cancel
Save