diff options
| -rw-r--r-- | stm32f091/main.c | 21 | ||||
| -rw-r--r-- | stm32f091/makefile | 28 | ||||
| -rw-r--r-- | stm32f091/stm32f0xx_hal_conf.h | 100 | ||||
| -rw-r--r-- | stm32f091/stm32f0xx_hal_msp.c | 32 | ||||
| -rw-r--r-- | stm32f091/stm32f0xx_hal_msp.h | 9 | 
5 files changed, 154 insertions, 36 deletions
| diff --git a/stm32f091/main.c b/stm32f091/main.c index 5e5071e..3ada476 100644 --- a/stm32f091/main.c +++ b/stm32f091/main.c @@ -2,25 +2,28 @@  #include <task.h>  #include <stm32f0xx.h>  #include <stdint.h> -#include <stm32f0xx_hal_gpio.h> +#include <stm32f0xx_hal.h>  void task_1() { -	uint8_t led = 1; +	// uint8_t led = 1;  	while (1) { -		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, led); -		led ^= 1; +		// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, led); +		// led ^= 1; +		HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);  		vTaskDelay(1000 / portTICK_RATE_MS);  	}  }  int main() { -	HAL_GPIO_Init(GPIOA, &(GPIO_InitTypeDef) { -		.Mode = GPIO_MODE_OUTPUT_PP, -		.Pull = GPIO_NOPULL, -		.Pin = GPIO_PIN_5 -	}); +	HAL_Init(); +	GPIO_InitTypeDef GPIO_InitStruct; +	GPIO_InitStruct.Pin = GPIO_PIN_5; +	GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; +	GPIO_InitStruct.Pull = GPIO_NOPULL; +	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; +	HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);  	xTaskCreate(task_1, "task1", 128, NULL, 1, NULL);  	vTaskStartScheduler(); diff --git a/stm32f091/makefile b/stm32f091/makefile index bba85f4..5a185de 100644 --- a/stm32f091/makefile +++ b/stm32f091/makefile @@ -20,8 +20,10 @@ SHARED_FLAGS += -I./lib/STM32-base/startup  SHARED_FLAGS += -I./lib/FreeRTOS-Kernel/include  SHARED_FLAGS += -I./lib/FreeRTOS-Kernel/portable/GCC/ARM_CM0/  SHARED_FLAGS += -I. +SHARED_FLAGS += -O1  SHARED_FLAGS += -ffunction-sections  SHARED_FLAGS += -fdata-sections +SHARED_FLAGS += -Wl,--gc-sections  SHARED_FLAGS += -mlittle-endian  SHARED_FLAGS += -mthumb  SHARED_FLAGS += -specs=nosys.specs @@ -47,16 +49,22 @@ OBJS += lib/FreeRTOS-Kernel/croutine.o \          lib/FreeRTOS-Kernel/timers.o \          lib/FreeRTOS-Kernel/portable/GCC/ARM_CM0/port.o \          lib/FreeRTOS-Kernel/portable/MemMang/heap_4.o -OBJS += lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_gpio.o -# OBJS += lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_gpio.o \ -#         lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_cortex.o \ -#         lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_flash.o \ -#         lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_i2c.o \ -#         lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_i2s.o \ -#         lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_pwr.o \ -#         lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_rtc.o \ -#         lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_uart.o \ -#         lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_usart.o +OBJS += lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_rcc.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_rcc_ex.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_i2c.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_i2c_ex.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_gpio.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_dma.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_cortex.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_pwr.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_pwr_ex.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_flash.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_flash_ex.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_tim.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_tim_ex.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_uart.o \ +        lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_uart_ex.o  .PHONY: flash clean diff --git a/stm32f091/stm32f0xx_hal_conf.h b/stm32f091/stm32f0xx_hal_conf.h index 48ec387..fc27221 100644 --- a/stm32f091/stm32f0xx_hal_conf.h +++ b/stm32f091/stm32f0xx_hal_conf.h @@ -19,29 +19,95 @@  #define DATA_CACHE_ENABLE 0U  #define USE_SPI_CRC 0U +#define HAL_RCC_MODULE_ENABLED  #define HAL_MODULE_ENABLED -#define HAL_UART_MODULE_ENABLED -#define HAL_CORTEX_MODULE_ENABLED -#define HAL_DMA_MODULE_ENABLED -#define HAL_FLASH_MODULE_ENABLED +#define HAL_I2C_MODULE_ENABLED  #define HAL_GPIO_MODULE_ENABLED -#define HAL_EXTI_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED  #define HAL_PWR_MODULE_ENABLED -#define HAL_RCC_MODULE_ENABLED -#define HAL_I2C_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_TIM_MODULE_ENABLED +#define HAL_UART_MODULE_ENABLED -#include <stm32f0xx_hal.h> +#ifdef HAL_RCC_MODULE_ENABLED  #include <stm32f0xx_hal_rcc.h> -// #include <stm32f0xx_hal_dma.h> +#endif +#ifdef HAL_GPIO_MODULE_ENABLED  #include <stm32f0xx_hal_gpio.h> -// #include <stm32f0xx_hal_cortex.h> -// #include <stm32f0xx_hal_flash.h> -// #include <stm32f0xx_hal_i2c.h> -// #include <stm32f0xx_hal_i2s.h> -// #include <stm32f0xx_hal_pwr.h> -// #include <stm32f0xx_hal_rtc.h> -// #include <stm32f0xx_hal_uart.h> -// #include <stm32f0xx_hal_usart.h> +#endif +#ifdef HAL_DMA_MODULE_ENABLED +#include <stm32f0xx_hal_dma.h> +#endif +#ifdef HAL_CORTEX_MODULE_ENABLED +#include <stm32f0xx_hal_cortex.h> +#endif +#ifdef HAL_ADC_MODULE_ENABLED +#include <stm32f0xx_hal_adc.h> +#endif +#ifdef HAL_CAN_MODULE_ENABLED +#include <stm32f0xx_hal_can.h> +#endif +#ifdef HAL_CEC_MODULE_ENABLED +#include <stm32f0xx_hal_cec.h> +#endif +#ifdef HAL_COMP_MODULE_ENABLED +#include <stm32f0xx_hal_comp.h> +#endif +#ifdef HAL_CRC_MODULE_ENABLED +#include <stm32f0xx_hal_crc.h> +#endif +#ifdef HAL_DAC_MODULE_ENABLED +#include <stm32f0xx_hal_dac.h> +#endif +#ifdef HAL_FLASH_MODULE_ENABLED +#include <stm32f0xx_hal_flash.h> +#endif +#ifdef HAL_I2C_MODULE_ENABLED +#include <stm32f0xx_hal_i2c.h> +#endif +#ifdef HAL_I2S_MODULE_ENABLED +#include <stm32f0xx_hal_i2s.h> +#endif +#ifdef HAL_IRDA_MODULE_ENABLED +#include <stm32f0xx_hal_irda.h> +#endif +#ifdef HAL_IWDG_MODULE_ENABLED +#include <stm32f0xx_hal_iwdg.h> +#endif +#ifdef HAL_PCD_MODULE_ENABLED +#include <stm32f0xx_hal_pcd.h> +#endif +#ifdef HAL_PWR_MODULE_ENABLED +#include <stm32f0xx_hal_pwr.h> +#endif +#ifdef HAL_RTC_MODULE_ENABLED +#include <stm32f0xx_hal_rtc.h> +#endif +#ifdef HAL_SMARTCARD_MODULE_ENABLED +#include <stm32f0xx_hal_smartcard.h> +#endif +#ifdef HAL_SMBUS_MODULE_ENABLED +#include <stm32f0xx_hal_smbus.h> +#endif +#ifdef HAL_SPI_MODULE_ENABLED +#include <stm32f0xx_hal_spi.h> +#endif +#ifdef HAL_TIM_MODULE_ENABLED +#include <stm32f0xx_hal_tim.h> +#endif +#ifdef HAL_TSC_MODULE_ENABLED +#include <stm32f0xx_hal_tsc.h> +#endif +#ifdef HAL_UART_MODULE_ENABLED +#include <stm32f0xx_hal_uart.h> +#endif +#ifdef HAL_USART_MODULE_ENABLED +#include <stm32f0xx_hal_usart.h> +#endif +#ifdef HAL_WWDG_MODULE_ENABLED +#include <stm32f0xx_hal_wwdg.h> +#endif  #ifdef USE_FULL_ASSERT  #define assert_param(expr) ((expr) ? (void)0U : assert_failed((char *)__FILE__, __LINE__)) diff --git a/stm32f091/stm32f0xx_hal_msp.c b/stm32f091/stm32f0xx_hal_msp.c new file mode 100644 index 0000000..8fd7330 --- /dev/null +++ b/stm32f091/stm32f0xx_hal_msp.c @@ -0,0 +1,32 @@ +#include "stm32f0xx_hal_msp.h" + +void HAL_MspInit(void) { +	return; +  __HAL_RCC_SYSCFG_CLK_ENABLE(); +  __HAL_RCC_PWR_CLK_ENABLE(); +  HAL_NVIC_SetPriority(PendSV_IRQn, 3, 0); +} + +void HAL_UART_MspInit(UART_HandleTypeDef* huart) { +	return; +  GPIO_InitTypeDef GPIO_InitStruct = {0}; +  if(huart->Instance==USART2) { +    __HAL_RCC_USART2_CLK_ENABLE(); +    __HAL_RCC_GPIOA_CLK_ENABLE(); +    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; +    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; +    GPIO_InitStruct.Pull = GPIO_NOPULL; +    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; +    GPIO_InitStruct.Alternate = GPIO_AF1_USART2; +    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); +  } +} + +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) { +	return; +  if(huart->Instance==USART2) { +    __HAL_RCC_USART2_CLK_DISABLE(); +    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3); +  } +} + diff --git a/stm32f091/stm32f0xx_hal_msp.h b/stm32f091/stm32f0xx_hal_msp.h new file mode 100644 index 0000000..3ffdf48 --- /dev/null +++ b/stm32f091/stm32f0xx_hal_msp.h @@ -0,0 +1,9 @@ +#pragma once + +#include <stm32f0xx_hal.h> +#include <stm32f0xx_hal_uart.h> + +void HAL_MspInit(void); +void HAL_UART_MspInit(UART_HandleTypeDef* huart); +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart); + |