Skip to content

Commit

Permalink
STM32F1: add MCU_STM32F103xG support
Browse files Browse the repository at this point in the history
  • Loading branch information
jeromecoutant committed Jan 3, 2023
1 parent 2003e34 commit ade24e8
Show file tree
Hide file tree
Showing 13 changed files with 1,798 additions and 0 deletions.
5 changes: 5 additions & 0 deletions targets/TARGET_STM/PeripheralPins.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@
#define AFIO_REMAP_TIM2_PARTIAL_1 14
#define AFIO_REMAP_TIM2_PARTIAL_2 15
#define AFIO_REMAP_TIM4_ENABLE 16
#define AFIO_REMAP_TIM9_ENABLE 17
#define AFIO_REMAP_TIM10_ENABLE 18
#define AFIO_REMAP_TIM11_ENABLE 19
#define AFIO_REMAP_TIM13_ENABLE 20
#define AFIO_REMAP_TIM14_ENABLE 21
#endif


Expand Down
1 change: 1 addition & 0 deletions targets/TARGET_STM/TARGET_STM32F1/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ add_subdirectory(TARGET_STM32F103xB EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_STM32F103xC EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_STM32F103xD EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_STM32F103xE EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_STM32F103xG EXCLUDE_FROM_ALL)
add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL)

add_library(mbed-stm32f1 INTERFACE)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f103xg.S)
set(LINKER_FILE TOOLCHAIN_GCC_ARM/stm32f103xg.ld)
elseif(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(STARTUP_FILE TOOLCHAIN_ARM/startup_stm32f103xg.S)
set(LINKER_FILE TOOLCHAIN_ARM/stm32f103xg.sct)
endif()

add_library(mbed-stm32f103xg INTERFACE)

target_include_directories(mbed-stm32f103xg
INTERFACE
.
)

target_sources(mbed-stm32f103xg
INTERFACE
${STARTUP_FILE}
)

mbed_set_linker_script(mbed-stm32f103xg ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})

target_link_libraries(mbed-stm32f103xg INTERFACE mbed-stm32f1)
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
/* mbed Microcontroller Library
*******************************************************************************
* Copyright (c) 2014, STMicroelectronics
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************
*/
#ifndef MBED_PERIPHERALNAMES_H
#define MBED_PERIPHERALNAMES_H

#include "cmsis.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
ADC_1 = (int)ADC1_BASE,
ADC_2 = (int)ADC2_BASE,
ADC_3 = (int)ADC3_BASE
} ADCName;

typedef enum {
DAC_1 = (int)DAC_BASE
} DACName;

typedef enum {
UART_1 = (int)USART1_BASE,
UART_2 = (int)USART2_BASE,
UART_3 = (int)USART3_BASE,
UART_4 = (int)UART4_BASE,
UART_5 = (int)UART5_BASE
} UARTName;

#define DEVICE_SPI_COUNT 3
typedef enum {
SPI_1 = (int)SPI1_BASE,
SPI_2 = (int)SPI2_BASE,
SPI_3 = (int)SPI3_BASE
} SPIName;

typedef enum {
I2C_1 = (int)I2C1_BASE,
I2C_2 = (int)I2C2_BASE
} I2CName;

typedef enum {
PWM_1 = (int)TIM1_BASE,
PWM_2 = (int)TIM2_BASE,
PWM_3 = (int)TIM3_BASE,
PWM_4 = (int)TIM4_BASE,
PWM_5 = (int)TIM5_BASE,
PWM_6 = (int)TIM6_BASE,
PWM_7 = (int)TIM7_BASE,
PWM_8 = (int)TIM8_BASE,
PWM_9 = (int)TIM9_BASE,
PWM_10 = (int)TIM10_BASE,
PWM_11 = (int)TIM11_BASE,
PWM_12 = (int)TIM12_BASE,
PWM_13 = (int)TIM13_BASE,
PWM_14 = (int)TIM14_BASE,
} PWMName;

typedef enum {
CAN_1 = (int)CAN1_BASE
} CANName;

typedef enum {
USB_FS = (int)USB_BASE
} USBName;

#ifdef __cplusplus
}
#endif

#endif
Loading

0 comments on commit ade24e8

Please sign in to comment.