Skip to content

Commit 2e506ba

Browse files
authored
Merge pull request #15356 from jeromecoutant/PR_F103XE
STM32F1: add MCU_STM32F103xD and MCU_STM32F103xG support
2 parents 06566fc + f3f030e commit 2e506ba

24 files changed

+3565
-28
lines changed

targets/TARGET_STM/PeripheralPins.h

+5
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@
5252
#define AFIO_REMAP_TIM2_PARTIAL_1 14
5353
#define AFIO_REMAP_TIM2_PARTIAL_2 15
5454
#define AFIO_REMAP_TIM4_ENABLE 16
55+
#define AFIO_REMAP_TIM9_ENABLE 17
56+
#define AFIO_REMAP_TIM10_ENABLE 18
57+
#define AFIO_REMAP_TIM11_ENABLE 19
58+
#define AFIO_REMAP_TIM13_ENABLE 20
59+
#define AFIO_REMAP_TIM14_ENABLE 21
5560
#endif
5661

5762

targets/TARGET_STM/TARGET_STM32F1/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
add_subdirectory(TARGET_STM32F103x8 EXCLUDE_FROM_ALL)
55
add_subdirectory(TARGET_STM32F103xB EXCLUDE_FROM_ALL)
66
add_subdirectory(TARGET_STM32F103xC EXCLUDE_FROM_ALL)
7+
add_subdirectory(TARGET_STM32F103xD EXCLUDE_FROM_ALL)
78
add_subdirectory(TARGET_STM32F103xE EXCLUDE_FROM_ALL)
9+
add_subdirectory(TARGET_STM32F103xG EXCLUDE_FROM_ALL)
810
add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL)
911

1012
add_library(mbed-stm32f1 INTERFACE)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Copyright (c) 2020 ARM Limited. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
5+
set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f103xe.S)
6+
set(LINKER_FILE TOOLCHAIN_GCC_ARM/stm32f103xd.ld)
7+
elseif(${MBED_TOOLCHAIN} STREQUAL "ARM")
8+
set(STARTUP_FILE TOOLCHAIN_ARM/startup_stm32f103xe.S)
9+
set(LINKER_FILE TOOLCHAIN_ARM/stm32f103xd.sct)
10+
endif()
11+
12+
add_library(mbed-stm32f103xd INTERFACE)
13+
14+
target_include_directories(mbed-stm32f103xd
15+
INTERFACE
16+
.
17+
)
18+
19+
target_sources(mbed-stm32f103xd
20+
INTERFACE
21+
${STARTUP_FILE}
22+
)
23+
24+
mbed_set_linker_script(mbed-stm32f103xd ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
25+
26+
target_link_libraries(mbed-stm32f103xd INTERFACE mbed-stm32f1)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/* mbed Microcontroller Library
2+
*******************************************************************************
3+
* Copyright (c) 2014, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* Redistribution and use in source and binary forms, with or without
7+
* modification, are permitted provided that the following conditions are met:
8+
*
9+
* 1. Redistributions of source code must retain the above copyright notice,
10+
* this list of conditions and the following disclaimer.
11+
* 2. Redistributions in binary form must reproduce the above copyright notice,
12+
* this list of conditions and the following disclaimer in the documentation
13+
* and/or other materials provided with the distribution.
14+
* 3. Neither the name of STMicroelectronics nor the names of its contributors
15+
* may be used to endorse or promote products derived from this software
16+
* without specific prior written permission.
17+
*
18+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
*******************************************************************************
29+
*/
30+
#ifndef MBED_PERIPHERALNAMES_H
31+
#define MBED_PERIPHERALNAMES_H
32+
33+
#include "cmsis.h"
34+
35+
#ifdef __cplusplus
36+
extern "C" {
37+
#endif
38+
39+
typedef enum {
40+
ADC_1 = (int)ADC1_BASE,
41+
ADC_2 = (int)ADC2_BASE,
42+
ADC_3 = (int)ADC3_BASE
43+
} ADCName;
44+
45+
typedef enum {
46+
DAC_1 = (int)DAC_BASE
47+
} DACName;
48+
49+
typedef enum {
50+
UART_1 = (int)USART1_BASE,
51+
UART_2 = (int)USART2_BASE,
52+
UART_3 = (int)USART3_BASE,
53+
UART_4 = (int)UART4_BASE,
54+
UART_5 = (int)UART5_BASE
55+
} UARTName;
56+
57+
#define DEVICE_SPI_COUNT 3
58+
typedef enum {
59+
SPI_1 = (int)SPI1_BASE,
60+
SPI_2 = (int)SPI2_BASE,
61+
SPI_3 = (int)SPI3_BASE
62+
} SPIName;
63+
64+
typedef enum {
65+
I2C_1 = (int)I2C1_BASE,
66+
I2C_2 = (int)I2C2_BASE
67+
} I2CName;
68+
69+
typedef enum {
70+
PWM_1 = (int)TIM1_BASE,
71+
PWM_2 = (int)TIM2_BASE,
72+
PWM_3 = (int)TIM3_BASE,
73+
PWM_4 = (int)TIM4_BASE,
74+
PWM_5 = (int)TIM5_BASE,
75+
PWM_8 = (int)TIM8_BASE
76+
} PWMName;
77+
78+
typedef enum {
79+
CAN_1 = (int)CAN1_BASE
80+
} CANName;
81+
82+
typedef enum {
83+
USB_FS = (int)USB_BASE
84+
} USBName;
85+
86+
#ifdef __cplusplus
87+
}
88+
#endif
89+
90+
#endif

0 commit comments

Comments
 (0)