Merge branch 'master' of https://github.com/etx/Espruino into etx-master

Tweaks for new build system and to remove Nucleo-specific USB define
This commit is contained in:
Gordon Williams 2017-03-09 09:58:59 +00:00
commit a277d8c412
8 changed files with 5771 additions and 71 deletions

134
boards/NUCLEOF413ZH.py Normal file
View File

@ -0,0 +1,134 @@
#!/bin/false
# -*- coding: utf8 -*-
# This file is part of Espruino, a JavaScript interpreter for Microcontrollers
#
# Copyright (C) 2013 Gordon Williams <gw@pur3.co.uk>
# Copyright (C) 2014 Alain Sézille for NucleoF411RE specific lines of this file
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# ----------------------------------------------------------------------------------------
# This file contains information for a specific board - the available pins, and where LEDs,
# Buttons, and other in-built peripherals are. It is used to build documentation as well
# as various source and header files for Espruino.
# ----------------------------------------------------------------------------------------
import pinutils;
info = {
'name' : "ST NUCLEO-F413ZH",
'link' : [ "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320"],
'default_console' : "EV_SERIAL3", # USART3 by default, the Nucleo's USB is actually running on this too
'default_console_tx' : "D8", # USART2_TX on PD8,
'default_console_rx' : "D9", # USART2_RX on PD9
'variables' : 7423, # (128-12)*1024/16-1
'binary_name' : 'espruino_%v_nucleof413zh.bin',
'build' : {
'optimizeflags' : '-O3 -w',
'libraries' : [
'USB_HID',
'NET',
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'NUCLEO=1',
'DEFINES+=-DUSE_USB_OTG_FS=1 -DUSB_NO_VBUS_SENSE=1',
'STLIB=STM32F413xH',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f413xx.o'
]
}
};
chip = {
'part' : "STM32F411RET6",
'family' : "STM32F4",
'package' : "LQFP144",
'ram' : 320, # 0x0001 8000 long, from 0x2000 0000 to 0x2001 7FFF
'flash' : 1536, # 0x0008 0000 long, from 0x0800 0000 to 0x0807 FFFF
'speed' : 100,
'usart' : 6,
'spi' : 4,
'i2c' : 3,
'adc' : 1,
'dac' : 0,
'saved_code' : {
# code size 225248 = 0x36FE0 starts at 0x0800 0000 ends at 0x0803 6FE0
# so we have some left room for Espruino firmware and no risk to clear it while saving
'address' : 0x08060000, # flash_saved_code_start 0x0806 0000 to 0x807 5000
# we have enough flash space in this single flash page to save all of the ram
'page_size' : 131072, # size of pages : on STM32F411, last 2 pages are 128 Kbytes
# we use the last flash page only, furthermore it persists after a firmware flash of the board
'pages' : 1, # count of pages we're using to save RAM to Flash,
'flash_available' : 512 # binary will have a hole in it, so we just want to test against full size
},
#'place_text_section' : 0x08010000, # note flash_available above # TODO USELESS
};
devices = {
'OSC' : { 'pin_1' : 'H0', # MCO from ST-LINK fixed at 8 Mhz, boards rev MB1136 C-02
'pin_2' : 'H1' },
'OSC_RTC' : { 'pin_1' : 'C14', # MB1136 C-02 corresponds to a board configured with on-board 32kHz oscillator
'pin_2' : 'C15' },
'LED1' : { 'pin' : 'B0'},
'LED2' : { 'pin' : 'B14'},
'LED3' : { 'pin' : 'B7'},
'BTN1' : { 'pin' : 'C13',
'inverted' : False, # 1 when unpressed, 0 when pressed! (Espruino board is 1 when pressed)
'pinstate': 'IN_PULLUP', # to specify INPUT, OUPUT PULL_UP PULL_DOWN..
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
},
'USB' : { #'pin_otg_pwr' : 'C0',
#'pin_vsense' : 'A9',
'pin_dm' : 'A11',
'pin_dp' : 'A12',
#'pin_vbus' : 'A9',
'pin_id' : 'A10', },
'NUCLEO_A' : [ 'A0','A1','A4','B0','C1','C0' ],
'NUCLEO_D' : [ 'A3','A2','A10','B3','B5','B4','B10','A8','A9','C7','B6','A7','A6','A5','B9','B8' ],
};
# left-right, or top-bottom order
board = {
'left' : [ 'C10', 'C12', 'VDD', 'BOOT0', 'NC', 'NC', 'A13', 'A14', 'A15', 'GND', 'B7', 'C13', 'C14', 'C15', 'H0', 'H1', 'VBAT', 'C2', 'C3'],
'left2' : [ 'C11', 'D2', 'E5V', 'GND', 'NC', 'IOREF', 'RESET', '3V3', '5V', 'GND', 'GND', 'VIN', 'NC', 'A0', 'A1', 'A4', 'B0', 'C1', 'C0'],
'right2' : [ 'C9', 'B8', 'B9', 'AVDD', 'GND', 'A5', 'A6', 'A7', 'B6','C7','A9','A8','B10','B4','B5','B3','A10','A2','A3'],
'right' : [ 'C8', 'C6', 'C5', 'U5V', 'NC', 'A12', 'A11', 'B12', 'NC', 'GND', 'B2', 'B1', 'B15', 'B14', 'B13', 'AGND', 'C4', 'NC', 'NC'],
};
board["_css"] = """
#board {
width: 713px;
height: 800px;
left: 200px;
background-image: url(img/NUCLEOF411RE.jpg);
}
#boardcontainer {
height: 1020px;
}
#left {
top: 310px;
right: 640px;
}
#left2 {
top: 310px;
left: 85px;
}
#right {
top: 310px;
left: 615px;
}
#right2 {
top: 310px;
right: 105px;
}
""";
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f413.csv', 6, 9, 10)
pins = pinutils.scan_pin_af_file(pins, 'stm32f413_af.csv', 0, 1)
return pinutils.only_from_package(pinutils.fill_gaps_in_pin_list(pins), chip["package"])

110
boards/pins/stm32f413.csv Normal file
View File

@ -0,0 +1,110 @@
UQFN48,WLCSP49,LQFP64,LQFP100,UFBGA100,LQFP144,Name,Type,IO,Alternate,Additional
0,0,0,1,B2,1,PE2,I/O,FT,TRACECLK/EVENTOUT,
0,0,0,2,A1,2,PE3,I/O,FT,TRACED0/EVENTOUT,
0,0,0,3,B1,3,PE4,I/O,FT,TRACED1/EVENTOUT,
0,0,0,4,C2,4,PE5,I/O,FT,TIM9_CH1/TRACED2/EVENTOUT,
0,0,0,5,D2,5,PE6,I/O,FT,TIM9_CH2/TRACED3/EVENTOUT,
0,0,0,0,D3,0,VSS,S,,,
0,0,0,0,C4,0,VDD,S, ,,
1,B7,1,6,E2,6,VBAT,S, ,,
2,D5,2,7,C1,7,PC13-ANTI_TAMP,I/O,FT,EVENTOUT,RTC_TAMP1/RTC_OUT/RTC_TS
3,C7,3,8,D1,8,PC14-OSC32_IN(PC14),I/O,FT,EVENTOUT,OSC32_IN
4,0,4,9,E1,9,PC15-OSC32_OUT(PC15),I/O,FT,EVENTOUT,OSC32_OUT
0,0,0,10,F2,0,VSS,S,,,
0,0,0,11,G2,0,VDD,S,,,
5,D7,5,12,F1,23,PH0-OSC_IN(PH0),I/O,FT,EVENTOUT,OSC_IN
6,D6,6,13,G1,24,PH1-OSC_OUT(PH1),I/O,FT,EVENTOUT,OSC_OUT
7,E7,7,14,H2,25,NRST,I/O,RST,EVENTOUT,
0,0,8,15,H1,26,PC0,I/O,FT,EVENTOUT,ADC1_IN10
0,0,9,16,J2,27,PC1,I/O,FT,EVENTOUT,ADC1_IN11
0,0,10,17,J3,28,PC2,I/O,FT,SPI2_MISO/I2S2ext_SD/EVENTOUT,ADC1_IN12
0,0,11,18,K2,29,PC3,I/O,FT,SPI2_MOSI/I2S2_SD/EVENTOUT,ADC1_IN13
0,0,0,19,0,0,VDD,S,,,
8,E6,12,20,0,0,VSSA-VREF-,S,,,
0,0,0,0,J11,0,VSSA,S,,,
0,0,0,0,K1,0,VREF-,S,,,
9,0,13,0,0,0,VDDA-VREF+,S,,,
0,0,0,21,L1,0,VREF+,S,,,
0,F7,0,22,M1,0,VDDA,S,,,
10,F6,14,23,L2,34,PA0-WKUP(PA0),I/O,FT,USART2_CTS/TIM2_CH1/TIM2_ETR/TIM5_CH1/EVENTOUT,ADC1_IN0/WKUP
11,G7,15,24,M2,35,PA1,I/O,FT,USART2_RTS/TIM2_CH2/TIM5_CH2/EVENTOUT,ADC1_IN1
12,E5,16,25,K3,36,PA2,I/O,FT,USART2_TX/TIM5_CH3/TIM9_CH1/TIM2_CH3/EVENTOUT,ADC1_IN2
13,E4,17,26,L3,37,PA3,I/O,FT,USART2_RX/TIM5_CH4/TIM9_CH2/TIM2_CH4/EVENTOUT,ADC1_IN3
0,0,18,27,0,38,VSS,S,,,
0,0,19,28,0,39,VDD,S,,,
0,0,0,0,E3,0,BYPASS_REG,I,FT,,
14,G6,20,29,M3,40,PA4,I/O,FT,SPI1_NSS/SPI3_NSS/USART2_CK/I2S3_WS/EVENTOUT,ADC1_IN4
15,F5,21,30,K4,41,PA5,I/O,FT,SPI1_SCK/TIM2_CH1/TIM2_ETR/EVENTOUT,ADC1_IN5
16,F4,22,31,L4,42,PA6,I/O,FT,SPI1_MISO/TIM3_CH1/TIM1_BKIN/EVENTOUT,ADC1_IN6
17,F3,23,32,M4,43,PA7,I/O,FT,SPI1_MOSI/TIM3_CH2/TIM1_CH1N/EVENTOUT,ADC1_IN7
0,0,24,33,K5,44,PC4,I/O,FT,EVENTOUT,ADC1_IN14
0,0,25,34,L5,45,PC5,I/O,FT,EVENTOUT,ADC1_IN15
18,G5,26,35,M5,46,PB0,I/O,FT,TIM3_CH3/TIM1_CH2N/EVENTOUT,ADC1_IN8
19,G4,27,36,M6,47,PB1,I/O,FT,TIM3_CH4/TIM1_CH3N/EVENTOUT,ADC1_IN9
20,G3,28,37,L6,48,PB2-BOOT1(PB2),I/O,FT,EVENTOUT,
0,0,0,38,M7,58,PE7,I/O,FT,TIM1_ETR/EVENTOUT,
0,0,0,39,L7,59,PE8,I/O,FT,TIM1_CH1N/EVENTOUT,
0,0,0,40,M8,60,PE9,I/O,FT,TIM1_CH1/EVENTOUT,
0,0,0,41,L8,63,PE10,I/O,FT,TIM1_CH2N/EVENTOUT,
0,0,0,42,M9,64,PE11,I/O,FT,TIM1_CH2/EVENTOUT,
0,0,0,43,L9,65,PE12,I/O,FT,TIM1_CH3N/EVENTOUT,
0,0,0,44,M10,66,PE13,I/O,FT,TIM1_CH3/EVENTOUT,
0,0,0,45,M11,67,PE14,I/O,FT,TIM1_CH4/EVENTOUT,
0,0,0,46,M12,68,PE15,I/O,FT,TIM1_BKIN/EVENTOUT,
21,E3,29,47,L10,69,PB10,I/O,FT,SPI2_SCK/I2S2_CK/I2C2_SCL/TIM2_CH3/EVENTOUT,
0,0,0,0,K9,70,PB11,I/O,FT,EVENTOUT,
22,G2,30,48,L11,71,VCAP_1,S,,,
23,D3,31,49,F12,0,VSS,S,,,
24,F2,32,50,G12,72,VDD,S,,,
25,E2,33,51,L12,73,PB12,I/O,FT,SPI2_NSS/I2S2_WS/I2C2_SMBA/TIM1_BKIN/EVENTOUT,
26,G1,34,52,K12,74,PB13,I/O,FT,SPI2_SCK/I2S2_CK/TIM1_CH1N/EVENTOUT,
27,F1,35,53,K11,75,PB14,I/O,FT,SPI2_MISO/TIM1_CH2N/I2S2ext_SD/EVENTOUT,
28,E1,36,54,K10,76,PB15,I/O,FT,SPI2_MOSI/I2S2_SD/TIM1_CH3N/EVENTOUT,RTC_REFIN
0,0,77,55,0,77,PD8,I/O,FT,EVENTOUT,
0,0,78,56,K8,78,PD9,I/O,FT,EVENTOUT,
0,0,0,57,J12,79,PD10,I/O,FT,EVENTOUT,
0,0,0,58,J11,80,PD11,I/O,FT,EVENTOUT,
0,0,0,59,J10,81,PD12,I/O,FT,TIM4_CH1/EVENTOUT,
0,0,0,60,H12,82,PD13,I/O,FT,TIM4_CH2/EVENTOUT,
0,0,0,61,H11,85,PD14,I/O,FT,TIM4_CH3/EVENTOUT,
0,0,0,62,H10,86,PD15,I/O,FT,TIM4_CH4/EVENTOUT,
0,0,37,63,E12,96,PC6,I/O,FT,I2S2_MCK/SDIO_D6/USART6_TX/TIM3_CH1/EVENTOUT,
0,0,38,64,E11,97,PC7,I/O,FT,I2S3_MCK/SDIO_D7/USART6_RX/TIM3_CH2/EVENTOUT,
0,0,39,65,E10,98,PC8,I/O,FT,SDIO_D0/TIM3_CH3/USART6_CK/EVENTOUT,
0,0,40,66,D12,99,PC9,I/O,FT,I2S_CKIN/MCO_2/SDIO_D1/I2C3_SDA/TIM3_CH4/EVENTOUT,
29,D1,41,67,D11,100,PA8,I/O,FT,MCO+1/USART1_CK/TIM1_CH1/I2C3_SCL/OTG_FS_SOF/EVENTOUT,
30,D2,42,68,D10,101,PA9,I/O,FT,USART1_TX/TIM1_CH2/I2C3_SMBA/EVENTOUT,OTG_FS_VBUS
31,C2,43,69,C12,102,PA10,I/O,FT,USART1_RX/TIM1_CH3/OTG_FS_ID/EVENTOUT,
32,C1,44,70,B12,103,PA11,I/O,FT,USART1_CTS/USART6_TX/TIM1_CH4/OTG_FS_DM/EVENTOUT,
33,C3,45,71,A12,104,PA12,I/O,FT,USART1_RTS/USART6_RX/TIM1_ETR/OTG_FS_DP/EVENTOUT,
34,B3,46,72,A11,105,PA13(JTMS-SWDIO),I/O,FT,JTMS-SWDIO/EVENTOUT,
0,0,0,73,C11,106,VCAP_2,S,,,
35,B1,47,74,F11,107,VSS,S,,,
36,,48,75,G11,0,VDD,S,,,
0,B2,0,0,0,108,VDD,S,,,
37,A1,49,76,A10,109,PA14(JTCK-SWCLK),I/O,FT,JTCK-SWCLK/EVENTOUT,
38,A2,50,77,A9,110,PA15(JTDI),I/O,FT,JTDI/SPI3_NSS/I2S3_WS/TIM2_CH1/TIM2_ETR/SPI1_NSS/EVENTOUT,
0,0,51,78,B11,111,PC10,I/O,FT,SPI3_SCK/I2S3_CK/SDIO_D2/EVENTOUT,
0,0,52,79,C10,112,PC11,I/O,FT,SPI3_MISO/SDIO_D3/I2S3ext_SD/EVENTOUT,
0,0,53,80,B10,113,PC12,I/O,FT,SDIO_CK/SPI3_MOSI/I2S3_SD/EVENTOUT,
0,0,0,81,C9,114,PD0,I/O,FT,EVENTOUT,
0,0,0,82,B9,115,PD1,I/O,FT,EVENTOUT,
0,0,54,83,C8,116,PD2,I/O,FT,TIM3_ETR/SDIO_CMD/EVENTOUT,
0,0,0,84,B8,117,PD3,I/O,FT,SPI2_SCK/I2S2_CK/USART2_CTS/EVENTOUT,
0,0,0,85,B7,118,PD4,I/O,FT,USART2_RTS/EVENTOUT,
0,0,0,86,A6,119,PD5,I/O,FT,USART2_TX/EVENTOUT,
0,0,0,87,B6,122,PD6,I/O,FT,USART2_RX/EVENTOUT,
0,0,0,88,A5,123,PD7,I/O,FT,USART2_CK/EVENTOUT,
39,A3,55,89,A8,133,PB3(JTDO-TRACESWO),I/O,FT,JTDO-SWO/SPI3_SCK/I2S3_CK/I2C2_SDA/TIM2_CH2/SPI1_SCK/EVENTOUT,
40,A4,56,90,A7,134,PB4(NJTRST),I/O,FT,NJTRST/SPI3_MISO/TIM3_CH1/SPI1_MISO/I2C3_SDA/I2S3ext_SD/EVENTOUT,
41,B4,57,91,C5,135,PB5,I/O,FT,I2C1_SMBA/TIM3_CH2/SPI1_MOSI/SPI3_MOSI/I2S3_SD/EVENTOUT,
42,C4,58,92,B5,136,PB6,I/O,FT,I2C1_SCL/TIM4_CH1/USART1_TX/EVENTOUT,
43,D4,59,93,B4,137,PB7,I/O,FT,I2C1_SDA/USART1_RX/TIM4_CH2/EVENTOUT,
44,A5,60,94,A4,138,BOOT0,I,B,,VPP
45,B5,61,95,A3,139,PB8,I/O,FT,TIM4_CH3/SDIO_D4/TIM10_CH1/I2C1_SCL/EVENTOUT,
46,C5,62,96,B3,140,PB9,I/O,FT,SPI2_NSS/I2S2_WS/TIM4_CH4/TIM11_CH1/SDIO_D5/I2C1_SDA/EVENTOUT,
0,0,0,97,C3,141,PE0,I/O,FT,TIM4_ETR/EVENTOUT,
0,0,0,98,A2,142,PE1,I/O,FT,EVENTOUT,
47,A6,63,99,H3,0,VSS,S,,,
0,B6,0,0,0,143,PDR_ON,I,FT,,
48,A7,64,100,0,144,VDD,S,,,
1 UQFN48 WLCSP49 LQFP64 LQFP100 UFBGA100 LQFP144 Name Type IO Alternate Additional
2 0 0 0 1 B2 1 PE2 I/O FT TRACECLK/EVENTOUT
3 0 0 0 2 A1 2 PE3 I/O FT TRACED0/EVENTOUT
4 0 0 0 3 B1 3 PE4 I/O FT TRACED1/EVENTOUT
5 0 0 0 4 C2 4 PE5 I/O FT TIM9_CH1/TRACED2/EVENTOUT
6 0 0 0 5 D2 5 PE6 I/O FT TIM9_CH2/TRACED3/EVENTOUT
7 0 0 0 0 D3 0 VSS S
8 0 0 0 0 C4 0 VDD S
9 1 B7 1 6 E2 6 VBAT S
10 2 D5 2 7 C1 7 PC13-ANTI_TAMP I/O FT EVENTOUT RTC_TAMP1/RTC_OUT/RTC_TS
11 3 C7 3 8 D1 8 PC14-OSC32_IN(PC14) I/O FT EVENTOUT OSC32_IN
12 4 0 4 9 E1 9 PC15-OSC32_OUT(PC15) I/O FT EVENTOUT OSC32_OUT
13 0 0 0 10 F2 0 VSS S
14 0 0 0 11 G2 0 VDD S
15 5 D7 5 12 F1 23 PH0-OSC_IN(PH0) I/O FT EVENTOUT OSC_IN
16 6 D6 6 13 G1 24 PH1-OSC_OUT(PH1) I/O FT EVENTOUT OSC_OUT
17 7 E7 7 14 H2 25 NRST I/O RST EVENTOUT
18 0 0 8 15 H1 26 PC0 I/O FT EVENTOUT ADC1_IN10
19 0 0 9 16 J2 27 PC1 I/O FT EVENTOUT ADC1_IN11
20 0 0 10 17 J3 28 PC2 I/O FT SPI2_MISO/I2S2ext_SD/EVENTOUT ADC1_IN12
21 0 0 11 18 K2 29 PC3 I/O FT SPI2_MOSI/I2S2_SD/EVENTOUT ADC1_IN13
22 0 0 0 19 0 0 VDD S
23 8 E6 12 20 0 0 VSSA-VREF- S
24 0 0 0 0 J11 0 VSSA S
25 0 0 0 0 K1 0 VREF- S
26 9 0 13 0 0 0 VDDA-VREF+ S
27 0 0 0 21 L1 0 VREF+ S
28 0 F7 0 22 M1 0 VDDA S
29 10 F6 14 23 L2 34 PA0-WKUP(PA0) I/O FT USART2_CTS/TIM2_CH1/TIM2_ETR/TIM5_CH1/EVENTOUT ADC1_IN0/WKUP
30 11 G7 15 24 M2 35 PA1 I/O FT USART2_RTS/TIM2_CH2/TIM5_CH2/EVENTOUT ADC1_IN1
31 12 E5 16 25 K3 36 PA2 I/O FT USART2_TX/TIM5_CH3/TIM9_CH1/TIM2_CH3/EVENTOUT ADC1_IN2
32 13 E4 17 26 L3 37 PA3 I/O FT USART2_RX/TIM5_CH4/TIM9_CH2/TIM2_CH4/EVENTOUT ADC1_IN3
33 0 0 18 27 0 38 VSS S
34 0 0 19 28 0 39 VDD S
35 0 0 0 0 E3 0 BYPASS_REG I FT
36 14 G6 20 29 M3 40 PA4 I/O FT SPI1_NSS/SPI3_NSS/USART2_CK/I2S3_WS/EVENTOUT ADC1_IN4
37 15 F5 21 30 K4 41 PA5 I/O FT SPI1_SCK/TIM2_CH1/TIM2_ETR/EVENTOUT ADC1_IN5
38 16 F4 22 31 L4 42 PA6 I/O FT SPI1_MISO/TIM3_CH1/TIM1_BKIN/EVENTOUT ADC1_IN6
39 17 F3 23 32 M4 43 PA7 I/O FT SPI1_MOSI/TIM3_CH2/TIM1_CH1N/EVENTOUT ADC1_IN7
40 0 0 24 33 K5 44 PC4 I/O FT EVENTOUT ADC1_IN14
41 0 0 25 34 L5 45 PC5 I/O FT EVENTOUT ADC1_IN15
42 18 G5 26 35 M5 46 PB0 I/O FT TIM3_CH3/TIM1_CH2N/EVENTOUT ADC1_IN8
43 19 G4 27 36 M6 47 PB1 I/O FT TIM3_CH4/TIM1_CH3N/EVENTOUT ADC1_IN9
44 20 G3 28 37 L6 48 PB2-BOOT1(PB2) I/O FT EVENTOUT
45 0 0 0 38 M7 58 PE7 I/O FT TIM1_ETR/EVENTOUT
46 0 0 0 39 L7 59 PE8 I/O FT TIM1_CH1N/EVENTOUT
47 0 0 0 40 M8 60 PE9 I/O FT TIM1_CH1/EVENTOUT
48 0 0 0 41 L8 63 PE10 I/O FT TIM1_CH2N/EVENTOUT
49 0 0 0 42 M9 64 PE11 I/O FT TIM1_CH2/EVENTOUT
50 0 0 0 43 L9 65 PE12 I/O FT TIM1_CH3N/EVENTOUT
51 0 0 0 44 M10 66 PE13 I/O FT TIM1_CH3/EVENTOUT
52 0 0 0 45 M11 67 PE14 I/O FT TIM1_CH4/EVENTOUT
53 0 0 0 46 M12 68 PE15 I/O FT TIM1_BKIN/EVENTOUT
54 21 E3 29 47 L10 69 PB10 I/O FT SPI2_SCK/I2S2_CK/I2C2_SCL/TIM2_CH3/EVENTOUT
55 0 0 0 0 K9 70 PB11 I/O FT EVENTOUT
56 22 G2 30 48 L11 71 VCAP_1 S
57 23 D3 31 49 F12 0 VSS S
58 24 F2 32 50 G12 72 VDD S
59 25 E2 33 51 L12 73 PB12 I/O FT SPI2_NSS/I2S2_WS/I2C2_SMBA/TIM1_BKIN/EVENTOUT
60 26 G1 34 52 K12 74 PB13 I/O FT SPI2_SCK/I2S2_CK/TIM1_CH1N/EVENTOUT
61 27 F1 35 53 K11 75 PB14 I/O FT SPI2_MISO/TIM1_CH2N/I2S2ext_SD/EVENTOUT
62 28 E1 36 54 K10 76 PB15 I/O FT SPI2_MOSI/I2S2_SD/TIM1_CH3N/EVENTOUT RTC_REFIN
63 0 0 77 55 0 77 PD8 I/O FT EVENTOUT
64 0 0 78 56 K8 78 PD9 I/O FT EVENTOUT
65 0 0 0 57 J12 79 PD10 I/O FT EVENTOUT
66 0 0 0 58 J11 80 PD11 I/O FT EVENTOUT
67 0 0 0 59 J10 81 PD12 I/O FT TIM4_CH1/EVENTOUT
68 0 0 0 60 H12 82 PD13 I/O FT TIM4_CH2/EVENTOUT
69 0 0 0 61 H11 85 PD14 I/O FT TIM4_CH3/EVENTOUT
70 0 0 0 62 H10 86 PD15 I/O FT TIM4_CH4/EVENTOUT
71 0 0 37 63 E12 96 PC6 I/O FT I2S2_MCK/SDIO_D6/USART6_TX/TIM3_CH1/EVENTOUT
72 0 0 38 64 E11 97 PC7 I/O FT I2S3_MCK/SDIO_D7/USART6_RX/TIM3_CH2/EVENTOUT
73 0 0 39 65 E10 98 PC8 I/O FT SDIO_D0/TIM3_CH3/USART6_CK/EVENTOUT
74 0 0 40 66 D12 99 PC9 I/O FT I2S_CKIN/MCO_2/SDIO_D1/I2C3_SDA/TIM3_CH4/EVENTOUT
75 29 D1 41 67 D11 100 PA8 I/O FT MCO+1/USART1_CK/TIM1_CH1/I2C3_SCL/OTG_FS_SOF/EVENTOUT
76 30 D2 42 68 D10 101 PA9 I/O FT USART1_TX/TIM1_CH2/I2C3_SMBA/EVENTOUT OTG_FS_VBUS
77 31 C2 43 69 C12 102 PA10 I/O FT USART1_RX/TIM1_CH3/OTG_FS_ID/EVENTOUT
78 32 C1 44 70 B12 103 PA11 I/O FT USART1_CTS/USART6_TX/TIM1_CH4/OTG_FS_DM/EVENTOUT
79 33 C3 45 71 A12 104 PA12 I/O FT USART1_RTS/USART6_RX/TIM1_ETR/OTG_FS_DP/EVENTOUT
80 34 B3 46 72 A11 105 PA13(JTMS-SWDIO) I/O FT JTMS-SWDIO/EVENTOUT
81 0 0 0 73 C11 106 VCAP_2 S
82 35 B1 47 74 F11 107 VSS S
83 36 48 75 G11 0 VDD S
84 0 B2 0 0 0 108 VDD S
85 37 A1 49 76 A10 109 PA14(JTCK-SWCLK) I/O FT JTCK-SWCLK/EVENTOUT
86 38 A2 50 77 A9 110 PA15(JTDI) I/O FT JTDI/SPI3_NSS/I2S3_WS/TIM2_CH1/TIM2_ETR/SPI1_NSS/EVENTOUT
87 0 0 51 78 B11 111 PC10 I/O FT SPI3_SCK/I2S3_CK/SDIO_D2/EVENTOUT
88 0 0 52 79 C10 112 PC11 I/O FT SPI3_MISO/SDIO_D3/I2S3ext_SD/EVENTOUT
89 0 0 53 80 B10 113 PC12 I/O FT SDIO_CK/SPI3_MOSI/I2S3_SD/EVENTOUT
90 0 0 0 81 C9 114 PD0 I/O FT EVENTOUT
91 0 0 0 82 B9 115 PD1 I/O FT EVENTOUT
92 0 0 54 83 C8 116 PD2 I/O FT TIM3_ETR/SDIO_CMD/EVENTOUT
93 0 0 0 84 B8 117 PD3 I/O FT SPI2_SCK/I2S2_CK/USART2_CTS/EVENTOUT
94 0 0 0 85 B7 118 PD4 I/O FT USART2_RTS/EVENTOUT
95 0 0 0 86 A6 119 PD5 I/O FT USART2_TX/EVENTOUT
96 0 0 0 87 B6 122 PD6 I/O FT USART2_RX/EVENTOUT
97 0 0 0 88 A5 123 PD7 I/O FT USART2_CK/EVENTOUT
98 39 A3 55 89 A8 133 PB3(JTDO-TRACESWO) I/O FT JTDO-SWO/SPI3_SCK/I2S3_CK/I2C2_SDA/TIM2_CH2/SPI1_SCK/EVENTOUT
99 40 A4 56 90 A7 134 PB4(NJTRST) I/O FT NJTRST/SPI3_MISO/TIM3_CH1/SPI1_MISO/I2C3_SDA/I2S3ext_SD/EVENTOUT
100 41 B4 57 91 C5 135 PB5 I/O FT I2C1_SMBA/TIM3_CH2/SPI1_MOSI/SPI3_MOSI/I2S3_SD/EVENTOUT
101 42 C4 58 92 B5 136 PB6 I/O FT I2C1_SCL/TIM4_CH1/USART1_TX/EVENTOUT
102 43 D4 59 93 B4 137 PB7 I/O FT I2C1_SDA/USART1_RX/TIM4_CH2/EVENTOUT
103 44 A5 60 94 A4 138 BOOT0 I B VPP
104 45 B5 61 95 A3 139 PB8 I/O FT TIM4_CH3/SDIO_D4/TIM10_CH1/I2C1_SCL/EVENTOUT
105 46 C5 62 96 B3 140 PB9 I/O FT SPI2_NSS/I2S2_WS/TIM4_CH4/TIM11_CH1/SDIO_D5/I2C1_SDA/EVENTOUT
106 0 0 0 97 C3 141 PE0 I/O FT TIM4_ETR/EVENTOUT
107 0 0 0 98 A2 142 PE1 I/O FT EVENTOUT
108 47 A6 63 99 H3 0 VSS S
109 0 B6 0 0 0 143 PDR_ON I FT
110 48 A7 64 100 0 144 VDD S

View File

@ -0,0 +1,82 @@
,AF00,AF01,AF02,AF03,AF04,AF05,AF06,AF07,AF08,AF09,AF10,AF11,AF12,AF13,AF14,AF15
PA0,-,TIM2_CH1/TIM2_ETR,TIM5_CH1,-,-,-,-,USART2_CTS,-,-,-,-,-,-,-,EVENT OUT
PA1,-,TIM2_CH2,TIM5_CH2,-,-,-,-,USART2_RTS,-,-,-,-,-,-,-,EVENT OUT
PA2,-,TIM2_CH3,TIM5_CH3,TIM9_CH1,-,-,-,USART2_TX,-,-,-,-,-,-,-,EVENT OUT
PA3,-,TIM2_CH4,TIM5_CH4,TIM9_CH2,-,-,-,USART2_RX,-,-,-,-,-,-,-,EVENT OUT
PA4,-,-,-,-,-,SPI1_NSS,SPI3_NSS/I2S3_WS,USART2_CK,-,-,-,-,-,-,-,EVENT OUT
PA5,-,TIM2_CH1/TIM2_ETR,-,-,-,SPI1_SCK,-,-,-,-,-,-,-,-,-,EVENT OUT
PA6,-,TIM1_BKIN,TIM3_CH1,-,-,SPI1_MISO,-,-,-,-,-,-,-,-,-,EVENT OUT
PA7,-,TIM1_CH1N,TIM3_CH2,-,-,SPI1_MOSI,-,-,-,-,-,-,-,-,-,EVENT OUT
PA8,MCO_1,TIM1_CH1,-,-,I2C3_SCL,-,-,USART1_CK,-,-,OTG_FS_SOF,-,-,-,-,EVENT OUT
PA9,-,TIM1_CH2,-,-,I2C3_SMBA,-,-,USART1_TX,-,-,OTG_FS_VBUS,-,-,-,-,EVENT OUT
PA10,-,TIM1_CH3,-,-,-,-,-,USART1_RX,-,-,OTG_FS_ID,-,-,-,-,EVENT OUT
PA11,-,TIM1_CH4,-,-,-,-,-,USART1_CTS,USART6_TX,-,OTG_FS_DM,-,-,-,-,EVENT OUT
PA12,-,TIM1_ETR,-,-,-,-,-,USART1_RTS,USART6_RX,-,OTG_FS_DP,-,-,-,-,EVENT OUT
PA13,JTMS_SWDIO,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PA14,JTCK_SWCLK,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PA15,JTDI,TIM2_CH1/TIM2_ETR,-,-,-,SPI1_NSS,SPI3_NSS/I2S3_WS,-,-,-,-,-,-,-,-,EVENT OUT
PB0,-,TIM1_CH2N,TIM3_CH3,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PB1,-,TIM1_CH3N,TIM3_CH4,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PB2,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PB3,JTDO-SWO,TIM2_CH2,-,-,-,SPI1_SCK,SPI3_SCK/I2S3_CK,-,-,I2C2_SDA,-,-,-,-,-,EVENT OUT
PB4,JTRST,-,TIM3_CH1,-,-,SPI1_MISO,SPI3_MISO,I2S3ext_SD,-,I2C3_SDA,-,-,-,-,-,EVENT OUT
PB5,-,-,TIM3_CH2,-,I2C1_SMBA,SPI1_MOSI,SPI3_MOSI/I2S3_SD,-,-,-,-,-,-,-,-,EVENT OUT
PB6,-,-,TIM4_CH1,-,I2C1_SCL,-,-,USART1_TX,-,-,-,-,-,-,-,EVENT OUT
PB7,-,-,TIM4_CH2,-,I2C1_SDA,-,-,USART1_RX,-,-,-,-,-,-,-,EVENT OUT
PB8,-,-,TIM4_CH3,TIM10_CH1,I2C1_SCL,-,-,-,-,-,-,-,SDIO_D4,-,-,EVENT OUT
PB9,-,-,TIM4_CH4,TIM11_CH1,I2C1_SDA,SPI2_NSS/I2S2_WS,-,-,-,-,-,-,SDIO_D5,-,-,EVENT OUT
PB10,-,TIM2_CH3,-,-,I2C2_SCL,SPI2_SCK/I2S2_CK,-,-,-,-,-,-,-,-,-,EVENT OUT
PB12,-,TIM1_BKIN,-,-,I2C2_SMBA,SPI2_NSS/I2S2_WS,-,-,-,-,-,-,-,-,-,EVENT OUT
PB13,-,TIM1_CH1N,-,-,-,SPI2_SCK/I2S2_CK,-,-,-,-,-,-,-,-,-,EVENT OUT
PB14,-,TIM1_CH2N,-,-,-,SPI2_MISO,I2S2ext_SD,-,-,-,-,-,-,-,-,EVENT OUT
PB15,RTC_REFIN,TIM1_CH3N,-,-,-,SPI2_MOSI/I2S2_SD,-,-,-,-,-,-,-,-,-,EVENT OUT
PC0,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PC1,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PC2,-,-,-,-,-,SPI2_MISO,I2S2ext_SD,-,-,-,-,-,-,-,-,EVENT OUT
PC3,-,-,-,-,-,SPI2_MOSI/I2S2_SD,-,-,-,-,-,-,-,-,-,EVENT OUT
PC4,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PC5,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PC6,-,-,TIM3_CH1,-,-,I2S2_MCK,-,-,USART6_TX,-,-,-,SDIO_D6,-,-,EVENT OUT
PC7,-,-,TIM3_CH2,-,-,-,I2S3_MCK,-,USART6_RX,-,-,-,SDIO_D7,-,-,EVENT OUT
PC8,-,-,TIM3_CH3,-,-,-,-,-,USART6_CK,-,-,-,SDIO_D0,-,-,EVENT OUT
PC9,MCO_2,-,TIM3_CH4,-,I2C3_SDA,I2S_CKIN,-,-,-,-,-,-,SDIO_D1,-,-,EVENT OUT
PC10,-,-,-,-,-,-,SPI3_SCK/I2S3_CK,-,-,-,-,-,SDIO_D2,-,-,EVENT OUT
PC11,-,-,-,-,-,I2S3ext_SD,SPI3_MISO,-,-,-,-,-,SDIO_D3,-,-,EVENT OUT
PC12,-,-,-,-,-,-,SPI3_MOSI/I2S3_SD,-,-,-,-,-,SDIO_CK,-,-,EVENT OUT
PC13,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PC14,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PC15,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PD0,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PD1,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PD2,-,-,TIM3_ETR,-,-,-,-,-,-,-,-,-,SDIO_CMD,-,-,EVENT OUT
PD3,-,-,-,-,-,SPI2_SCK/I2S2_CK,-,USART2_CTS,-,-,-,-,-,-,-,EVENT OUT
PD4,-,-,-,-,-,-,-,USART2_RTS,-,-,-,-,-,-,-,EVENT OUT
PD5,-,-,-,-,-,-,-,USART2_TX,-,-,-,-,-,-,-,EVENT OUT
PD6,-,-,-,-,-,SPI3_MOSI/I2S3_SD,-,USART2_RX,-,-,-,-,-,-,-,EVENT OUT
PD7,-,-,-,-,-,-,-,USART2_CK,-,-,-,-,-,-,-,EVENT OUT
PD8,-,-,-,-,-,-,-,USART3_TX,-,-,-,-,-,-,-,EVENT OUT
PD9,-,-,-,-,-,-,-,USART3_RX,-,-,-,-,-,-,-,EVENT OUT
PD10,-,-,-,-,-,-,-,USART3_CK,-,-,-,-,-,-,-,EVENT OUT
PD11,-,-,-,-,-,-,-,USART3_CTS,-,-,-,-,-,-,-,EVENT OUT
PD12,-,-,TIM4_CH1,-,-,-,-,USART3_RTS,-,-,-,-,-,-,-,EVENT OUT
PD13,-,-,TIM4_CH2,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PD14,-,-,TIM4_CH3,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PD15,-,-,TIM4_CH4,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE0,-,-,TIM4_ETR,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE1,-,TIM1_CH2N,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE2,TRACECLK,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE3,TRACED0,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE4,TRACED1,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE5,TRACED2,-,-,TIM9_CH1,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE6,TRACED3,-,-,TIM9_CH2,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE7,-,TIM1_ETR,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE8,-,TIM1_CH1N,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE9,-,TIM1_CH1,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE10,-,TIM1_CH2N,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE11,-,TIM1_CH2,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE12,-,TIM1_CH3N,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE13,-,TIM1_CH3,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE14,-,TIM1_CH4,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PE15,-,TIM1_BKIN,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PH0,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
PH1,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,EVENT OUT
1 AF00 AF01 AF02 AF03 AF04 AF05 AF06 AF07 AF08 AF09 AF10 AF11 AF12 AF13 AF14 AF15
2 PA0 - TIM2_CH1/TIM2_ETR TIM5_CH1 - - - - USART2_CTS - - - - - - - EVENT OUT
3 PA1 - TIM2_CH2 TIM5_CH2 - - - - USART2_RTS - - - - - - - EVENT OUT
4 PA2 - TIM2_CH3 TIM5_CH3 TIM9_CH1 - - - USART2_TX - - - - - - - EVENT OUT
5 PA3 - TIM2_CH4 TIM5_CH4 TIM9_CH2 - - - USART2_RX - - - - - - - EVENT OUT
6 PA4 - - - - - SPI1_NSS SPI3_NSS/I2S3_WS USART2_CK - - - - - - - EVENT OUT
7 PA5 - TIM2_CH1/TIM2_ETR - - - SPI1_SCK - - - - - - - - - EVENT OUT
8 PA6 - TIM1_BKIN TIM3_CH1 - - SPI1_MISO - - - - - - - - - EVENT OUT
9 PA7 - TIM1_CH1N TIM3_CH2 - - SPI1_MOSI - - - - - - - - - EVENT OUT
10 PA8 MCO_1 TIM1_CH1 - - I2C3_SCL - - USART1_CK - - OTG_FS_SOF - - - - EVENT OUT
11 PA9 - TIM1_CH2 - - I2C3_SMBA - - USART1_TX - - OTG_FS_VBUS - - - - EVENT OUT
12 PA10 - TIM1_CH3 - - - - - USART1_RX - - OTG_FS_ID - - - - EVENT OUT
13 PA11 - TIM1_CH4 - - - - - USART1_CTS USART6_TX - OTG_FS_DM - - - - EVENT OUT
14 PA12 - TIM1_ETR - - - - - USART1_RTS USART6_RX - OTG_FS_DP - - - - EVENT OUT
15 PA13 JTMS_SWDIO - - - - - - - - - - - - - - EVENT OUT
16 PA14 JTCK_SWCLK - - - - - - - - - - - - - - EVENT OUT
17 PA15 JTDI TIM2_CH1/TIM2_ETR - - - SPI1_NSS SPI3_NSS/I2S3_WS - - - - - - - - EVENT OUT
18 PB0 - TIM1_CH2N TIM3_CH3 - - - - - - - - - - - - EVENT OUT
19 PB1 - TIM1_CH3N TIM3_CH4 - - - - - - - - - - - - EVENT OUT
20 PB2 - - - - - - - - - - - - - - - EVENT OUT
21 PB3 JTDO-SWO TIM2_CH2 - - - SPI1_SCK SPI3_SCK/I2S3_CK - - I2C2_SDA - - - - - EVENT OUT
22 PB4 JTRST - TIM3_CH1 - - SPI1_MISO SPI3_MISO I2S3ext_SD - I2C3_SDA - - - - - EVENT OUT
23 PB5 - - TIM3_CH2 - I2C1_SMBA SPI1_MOSI SPI3_MOSI/I2S3_SD - - - - - - - - EVENT OUT
24 PB6 - - TIM4_CH1 - I2C1_SCL - - USART1_TX - - - - - - - EVENT OUT
25 PB7 - - TIM4_CH2 - I2C1_SDA - - USART1_RX - - - - - - - EVENT OUT
26 PB8 - - TIM4_CH3 TIM10_CH1 I2C1_SCL - - - - - - - SDIO_D4 - - EVENT OUT
27 PB9 - - TIM4_CH4 TIM11_CH1 I2C1_SDA SPI2_NSS/I2S2_WS - - - - - - SDIO_D5 - - EVENT OUT
28 PB10 - TIM2_CH3 - - I2C2_SCL SPI2_SCK/I2S2_CK - - - - - - - - - EVENT OUT
29 PB12 - TIM1_BKIN - - I2C2_SMBA SPI2_NSS/I2S2_WS - - - - - - - - - EVENT OUT
30 PB13 - TIM1_CH1N - - - SPI2_SCK/I2S2_CK - - - - - - - - - EVENT OUT
31 PB14 - TIM1_CH2N - - - SPI2_MISO I2S2ext_SD - - - - - - - - EVENT OUT
32 PB15 RTC_REFIN TIM1_CH3N - - - SPI2_MOSI/I2S2_SD - - - - - - - - - EVENT OUT
33 PC0 - - - - - - - - - - - - - - - EVENT OUT
34 PC1 - - - - - - - - - - - - - - - EVENT OUT
35 PC2 - - - - - SPI2_MISO I2S2ext_SD - - - - - - - - EVENT OUT
36 PC3 - - - - - SPI2_MOSI/I2S2_SD - - - - - - - - - EVENT OUT
37 PC4 - - - - - - - - - - - - - - - EVENT OUT
38 PC5 - - - - - - - - - - - - - - - EVENT OUT
39 PC6 - - TIM3_CH1 - - I2S2_MCK - - USART6_TX - - - SDIO_D6 - - EVENT OUT
40 PC7 - - TIM3_CH2 - - - I2S3_MCK - USART6_RX - - - SDIO_D7 - - EVENT OUT
41 PC8 - - TIM3_CH3 - - - - - USART6_CK - - - SDIO_D0 - - EVENT OUT
42 PC9 MCO_2 - TIM3_CH4 - I2C3_SDA I2S_CKIN - - - - - - SDIO_D1 - - EVENT OUT
43 PC10 - - - - - - SPI3_SCK/I2S3_CK - - - - - SDIO_D2 - - EVENT OUT
44 PC11 - - - - - I2S3ext_SD SPI3_MISO - - - - - SDIO_D3 - - EVENT OUT
45 PC12 - - - - - - SPI3_MOSI/I2S3_SD - - - - - SDIO_CK - - EVENT OUT
46 PC13 - - - - - - - - - - - - - - - EVENT OUT
47 PC14 - - - - - - - - - - - - - - - EVENT OUT
48 PC15 - - - - - - - - - - - - - - - EVENT OUT
49 PD0 - - - - - - - - - - - - - - - EVENT OUT
50 PD1 - - - - - - - - - - - - - - - EVENT OUT
51 PD2 - - TIM3_ETR - - - - - - - - - SDIO_CMD - - EVENT OUT
52 PD3 - - - - - SPI2_SCK/I2S2_CK - USART2_CTS - - - - - - - EVENT OUT
53 PD4 - - - - - - - USART2_RTS - - - - - - - EVENT OUT
54 PD5 - - - - - - - USART2_TX - - - - - - - EVENT OUT
55 PD6 - - - - - SPI3_MOSI/I2S3_SD - USART2_RX - - - - - - - EVENT OUT
56 PD7 - - - - - - - USART2_CK - - - - - - - EVENT OUT
57 PD8 - - - - - - - USART3_TX - - - - - - - EVENT OUT
58 PD9 - - - - - - - USART3_RX - - - - - - - EVENT OUT
59 PD10 - - - - - - - USART3_CK - - - - - - - EVENT OUT
60 PD11 - - - - - - - USART3_CTS - - - - - - - EVENT OUT
61 PD12 - - TIM4_CH1 - - - - USART3_RTS - - - - - - - EVENT OUT
62 PD13 - - TIM4_CH2 - - - - - - - - - - - - EVENT OUT
63 PD14 - - TIM4_CH3 - - - - - - - - - - - - EVENT OUT
64 PD15 - - TIM4_CH4 - - - - - - - - - - - - EVENT OUT
65 PE0 - - TIM4_ETR - - - - - - - - - - - - EVENT OUT
66 PE1 - TIM1_CH2N - - - - - - - - - - - - - EVENT OUT
67 PE2 TRACECLK - - - - - - - - - - - - - - EVENT OUT
68 PE3 TRACED0 - - - - - - - - - - - - - - EVENT OUT
69 PE4 TRACED1 - - - - - - - - - - - - - - EVENT OUT
70 PE5 TRACED2 - - TIM9_CH1 - - - - - - - - - - - EVENT OUT
71 PE6 TRACED3 - - TIM9_CH2 - - - - - - - - - - - EVENT OUT
72 PE7 - TIM1_ETR - - - - - - - - - - - - - EVENT OUT
73 PE8 - TIM1_CH1N - - - - - - - - - - - - - EVENT OUT
74 PE9 - TIM1_CH1 - - - - - - - - - - - - - EVENT OUT
75 PE10 - TIM1_CH2N - - - - - - - - - - - - - EVENT OUT
76 PE11 - TIM1_CH2 - - - - - - - - - - - - - EVENT OUT
77 PE12 - TIM1_CH3N - - - - - - - - - - - - - EVENT OUT
78 PE13 - TIM1_CH3 - - - - - - - - - - - - - EVENT OUT
79 PE14 - TIM1_CH4 - - - - - - - - - - - - - EVENT OUT
80 PE15 - TIM1_BKIN - - - - - - - - - - - - - EVENT OUT
81 PH0 - - - - - - - - - - - - - - - EVENT OUT
82 PH1 - - - - - - - - - - - - - - - EVENT OUT

View File

@ -0,0 +1,571 @@
/**
******************************************************************************
* @file startup_stm32f4013.s
* @author MCD Application Team
* @version V1.3.0
* @date 08-November-2013
* @brief STM32F401xx Devices vector table for RIDE7 toolchain.
* This module performs:
* - Set the initial SP
* - Set the initial PC == Reset_Handler,
* - Set the vector table entries with the exceptions ISR address
* - Configure the clock system
* - Branches to main in the C library (which eventually
* calls main()).
* After Reset the Cortex-M4 processor is in Thread mode,
* priority is Privileged, and the Stack is set to Main.
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT 2013 STMicroelectronics</center></h2>
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
.syntax unified
.cpu cortex-m3
.fpu softvfp
.thumb
.global g_pfnVectors
.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
.word _sidata
/* start address for the .data section. defined in linker script */
.word _sdata
/* end address for the .data section. defined in linker script */
.word _edata
/* start address for the .bss section. defined in linker script */
.word _sbss
/* end address for the .bss section. defined in linker script */
.word _ebss
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
/**
* @brief This is the code that gets called when the processor first
* starts execution following a reset event. Only the absolutely
* necessary set is performed, after which the application
* supplied main() routine is called.
* @param None
* @retval : None
*/
.section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
b LoopCopyDataInit
CopyDataInit:
ldr r3, =_sidata
ldr r3, [r3, r1]
str r3, [r0, r1]
adds r1, r1, #4
LoopCopyDataInit:
ldr r0, =_sdata
ldr r3, =_edata
adds r2, r0, r1
cmp r2, r3
bcc CopyDataInit
ldr r2, =_sbss
b LoopFillZerobss
/* Zero fill the bss segment. */
FillZerobss:
movs r3, #0
str r3, [r2], #4
LoopFillZerobss:
ldr r3, = _ebss
cmp r2, r3
bcc FillZerobss
/* Call the clock system intitialization function.*/
bl SystemInit
/* Call the application's entry point.*/
bl main
bx lr
.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
* unexpected interrupt. This simply enters an infinite loop, preserving
* the system state for examination by a debugger.
* @param None
* @retval None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
.size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex M3. Note that the proper constructs
* must be placed on this to ensure that it ends up at physical address
* 0x0000.0000.
*
*******************************************************************************/
.section .isr_vector,"a",%progbits
.type g_pfnVectors, %object
.size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
.word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
.word UsageFault_Handler
.word 0
.word 0
.word 0
.word 0
.word SVC_Handler
.word DebugMon_Handler
.word 0
.word PendSV_Handler
.word SysTick_Handler
/* External Interrupts */
.word WWDG_IRQHandler /* Window WatchDog */
.word PVD_IRQHandler /* PVD through EXTI Line detection */
.word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */
.word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */
.word FLASH_IRQHandler /* FLASH */
.word RCC_IRQHandler /* RCC */
.word EXTI0_IRQHandler /* EXTI Line0 */
.word EXTI1_IRQHandler /* EXTI Line1 */
.word EXTI2_IRQHandler /* EXTI Line2 */
.word EXTI3_IRQHandler /* EXTI Line3 */
.word EXTI4_IRQHandler /* EXTI Line4 */
.word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */
.word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */
.word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */
.word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */
.word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */
.word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */
.word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */
.word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */
.word CAN1_TX_IRQHandler /* CAN1 TX */
.word CAN1_RX0_IRQHandler /* CAN1 RX0 */
.word CAN1_RX1_IRQHandler /* CAN1 RX1 */
.word CAN1_SCE_IRQHandler /* CAN1 SCE */
.word EXTI9_5_IRQHandler /* External Line[9:5]s */
.word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */
.word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */
.word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */
.word TIM1_CC_IRQHandler /* TIM1 Capture Compare */
.word TIM2_IRQHandler /* TIM2 */
.word TIM3_IRQHandler /* TIM3 */
.word TIM4_IRQHandler /* TIM4 */
.word I2C1_EV_IRQHandler /* I2C1 Event */
.word I2C1_ER_IRQHandler /* I2C1 Error */
.word I2C2_EV_IRQHandler /* I2C2 Event */
.word I2C2_ER_IRQHandler /* I2C2 Error */
.word SPI1_IRQHandler /* SPI1 */
.word SPI2_IRQHandler /* SPI2 */
.word USART1_IRQHandler /* USART1 */
.word USART2_IRQHandler /* USART2 */
.word USART3_IRQHandler /* USART3 */
.word EXTI15_10_IRQHandler /* External Line[15:10]s */
.word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */
.word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */
.word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */
.word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */
.word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */
.word TIM8_CC_IRQHandler /* TIM8 Capture Compare */
.word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */
.word FSMC_IRQHandler /* FSMC */
.word SDIO_IRQHandler /* SDIO */
.word TIM5_IRQHandler /* TIM5 */
.word SPI3_IRQHandler /* SPI3 */
.word UART4_IRQHandler /* UART4 */
.word UART5_IRQHandler /* UART5 */
.word TIM6_DAC_IRQHandler /* TIM6, DAC1 and DAC2 */
.word TIM7_IRQHandler /* TIM7 */
.word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */
.word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */
.word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */
.word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */
.word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */
.word DFSDM1_FLT0_IRQHandler /* DFSDM1 Filter0 */
.word DFSDM1_FLT1_IRQHandler /* DFSDM1 Filter1 */
.word CAN2_TX_IRQHandler /* CAN2 TX */
.word CAN2_RX0_IRQHandler /* CAN2 RX0 */
.word CAN2_RX1_IRQHandler /* CAN2 RX1 */
.word CAN2_SCE_IRQHandler /* CAN2 SCE */
.word OTG_FS_IRQHandler /* USB OTG FS */
.word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */
.word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */
.word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */
.word USART6_IRQHandler /* USART6 */
.word I2C3_EV_IRQHandler /* I2C3 event */
.word I2C3_ER_IRQHandler /* I2C3 error */
.word CAN3_TX_IRQHandler /* CAN3 TX */
.word CAN3_RX0_IRQHandler /* CAN3 RX0 */
.word CAN3_RX1_IRQHandler /* CAN3 RX1 */
.word CAN3_SCE_IRQHandler /* CAN3 SCE */
.word 0 /* Reserved */
.word 0 /* Reserved */
.word RNG_IRQHandler /* RNG */
.word FPU_IRQHandler /* FPU */
.word UART7_IRQHandler /* UART7 */
.word UART8_IRQHandler /* UART8 */
.word SPI4_IRQHandler /* SPI4 */
.word SPI5_IRQHandler /* SPI5 */
.word 0 /* Reserved */
.word SAI1_IRQHandler /* SAI1 */
.word UART9_IRQHandler /* UART9 */
.word UART10_IRQHandler /* UART10 */
.word 0 /* Reserved */
.word 0 /* Reserved */
.word QUADSPI_IRQHandler /* QuadSPI */
.word 0 /* Reserved */
.word 0 /* Reserved */
.word FMPI2C1_EV_IRQHandler /* FMPI2C1 Event */
.word FMPI2C1_ER_IRQHandler /* FMPI2C1 Error */
.word LPTIM1_IRQHandler /* LPTIM1 */
.word DFSDM2_FLT0_IRQHandler /* DFSDM2 Filter0 */
.word DFSDM2_FLT1_IRQHandler /* DFSDM2 Filter1 */
.word DFSDM2_FLT2_IRQHandler /* DFSDM2 Filter2 */
.word DFSDM2_FLT3_IRQHandler /* DFSDM2 Filter3 */
/*******************************************************************************
*
* Provide weak aliases for each Exception handler to the Default_Handler.
* As they are weak aliases, any function with the same name will override
* this definition.
*
*******************************************************************************/
.weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
.weak MemManage_Handler
.thumb_set MemManage_Handler,Default_Handler
.weak BusFault_Handler
.thumb_set BusFault_Handler,Default_Handler
.weak UsageFault_Handler
.thumb_set UsageFault_Handler,Default_Handler
.weak SVC_Handler
.thumb_set SVC_Handler,Default_Handler
.weak DebugMon_Handler
.thumb_set DebugMon_Handler,Default_Handler
.weak PendSV_Handler
.thumb_set PendSV_Handler,Default_Handler
.weak SysTick_Handler
.thumb_set SysTick_Handler,Default_Handler
.weak WWDG_IRQHandler
.thumb_set WWDG_IRQHandler,Default_Handler
.weak PVD_IRQHandler
.thumb_set PVD_IRQHandler,Default_Handler
.weak TAMP_STAMP_IRQHandler
.thumb_set TAMP_STAMP_IRQHandler,Default_Handler
.weak RTC_WKUP_IRQHandler
.thumb_set RTC_WKUP_IRQHandler,Default_Handler
.weak FLASH_IRQHandler
.thumb_set FLASH_IRQHandler,Default_Handler
.weak RCC_IRQHandler
.thumb_set RCC_IRQHandler,Default_Handler
.weak EXTI0_IRQHandler
.thumb_set EXTI0_IRQHandler,Default_Handler
.weak EXTI1_IRQHandler
.thumb_set EXTI1_IRQHandler,Default_Handler
.weak EXTI2_IRQHandler
.thumb_set EXTI2_IRQHandler,Default_Handler
.weak EXTI3_IRQHandler
.thumb_set EXTI3_IRQHandler,Default_Handler
.weak EXTI4_IRQHandler
.thumb_set EXTI4_IRQHandler,Default_Handler
.weak DMA1_Stream0_IRQHandler
.thumb_set DMA1_Stream0_IRQHandler,Default_Handler
.weak DMA1_Stream1_IRQHandler
.thumb_set DMA1_Stream1_IRQHandler,Default_Handler
.weak DMA1_Stream2_IRQHandler
.thumb_set DMA1_Stream2_IRQHandler,Default_Handler
.weak DMA1_Stream3_IRQHandler
.thumb_set DMA1_Stream3_IRQHandler,Default_Handler
.weak DMA1_Stream4_IRQHandler
.thumb_set DMA1_Stream4_IRQHandler,Default_Handler
.weak DMA1_Stream5_IRQHandler
.thumb_set DMA1_Stream5_IRQHandler,Default_Handler
.weak DMA1_Stream6_IRQHandler
.thumb_set DMA1_Stream6_IRQHandler,Default_Handler
.weak ADC_IRQHandler
.thumb_set ADC_IRQHandler,Default_Handler
.weak CAN1_TX_IRQHandler
.thumb_set CAN1_TX_IRQHandler,Default_Handler
.weak CAN1_RX0_IRQHandler
.thumb_set CAN1_RX0_IRQHandler,Default_Handler
.weak CAN1_RX1_IRQHandler
.thumb_set CAN1_RX1_IRQHandler,Default_Handler
.weak CAN1_SCE_IRQHandler
.thumb_set CAN1_SCE_IRQHandler,Default_Handler
.weak EXTI9_5_IRQHandler
.thumb_set EXTI9_5_IRQHandler,Default_Handler
.weak TIM1_BRK_TIM9_IRQHandler
.thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler
.weak TIM1_UP_TIM10_IRQHandler
.thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler
.weak TIM1_TRG_COM_TIM11_IRQHandler
.thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler
.weak TIM1_CC_IRQHandler
.thumb_set TIM1_CC_IRQHandler,Default_Handler
.weak TIM2_IRQHandler
.thumb_set TIM2_IRQHandler,Default_Handler
.weak TIM3_IRQHandler
.thumb_set TIM3_IRQHandler,Default_Handler
.weak TIM4_IRQHandler
.thumb_set TIM4_IRQHandler,Default_Handler
.weak I2C1_EV_IRQHandler
.thumb_set I2C1_EV_IRQHandler,Default_Handler
.weak I2C1_ER_IRQHandler
.thumb_set I2C1_ER_IRQHandler,Default_Handler
.weak I2C2_EV_IRQHandler
.thumb_set I2C2_EV_IRQHandler,Default_Handler
.weak I2C2_ER_IRQHandler
.thumb_set I2C2_ER_IRQHandler,Default_Handler
.weak SPI1_IRQHandler
.thumb_set SPI1_IRQHandler,Default_Handler
.weak SPI2_IRQHandler
.thumb_set SPI2_IRQHandler,Default_Handler
.weak USART1_IRQHandler
.thumb_set USART1_IRQHandler,Default_Handler
.weak USART2_IRQHandler
.thumb_set USART2_IRQHandler,Default_Handler
.weak USART3_IRQHandler
.thumb_set USART3_IRQHandler,Default_Handler
.weak EXTI15_10_IRQHandler
.thumb_set EXTI15_10_IRQHandler,Default_Handler
.weak RTC_Alarm_IRQHandler
.thumb_set RTC_Alarm_IRQHandler,Default_Handler
.weak OTG_FS_WKUP_IRQHandler
.thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler
.weak TIM8_BRK_TIM12_IRQHandler
.thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler
.weak TIM8_UP_TIM13_IRQHandler
.thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler
.weak TIM8_TRG_COM_TIM14_IRQHandler
.thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler
.weak TIM8_CC_IRQHandler
.thumb_set TIM8_CC_IRQHandler,Default_Handler
.weak DMA1_Stream7_IRQHandler
.thumb_set DMA1_Stream7_IRQHandler,Default_Handler
.weak FSMC_IRQHandler
.thumb_set FSMC_IRQHandler,Default_Handler
.weak SDIO_IRQHandler
.thumb_set SDIO_IRQHandler,Default_Handler
.weak TIM5_IRQHandler
.thumb_set TIM5_IRQHandler,Default_Handler
.weak SPI3_IRQHandler
.thumb_set SPI3_IRQHandler,Default_Handler
.weak UART4_IRQHandler
.thumb_set UART4_IRQHandler,Default_Handler
.weak UART5_IRQHandler
.thumb_set UART5_IRQHandler,Default_Handler
.weak TIM6_DAC_IRQHandler
.thumb_set TIM6_DAC_IRQHandler,Default_Handler
.weak TIM7_IRQHandler
.thumb_set TIM7_IRQHandler,Default_Handler
.weak DMA2_Stream0_IRQHandler
.thumb_set DMA2_Stream0_IRQHandler,Default_Handler
.weak DMA2_Stream1_IRQHandler
.thumb_set DMA2_Stream1_IRQHandler,Default_Handler
.weak DMA2_Stream2_IRQHandler
.thumb_set DMA2_Stream2_IRQHandler,Default_Handler
.weak DMA2_Stream3_IRQHandler
.thumb_set DMA2_Stream3_IRQHandler,Default_Handler
.weak DMA2_Stream4_IRQHandler
.thumb_set DMA2_Stream4_IRQHandler,Default_Handler
.weak DFSDM1_FLT0_IRQHandler
.thumb_set DFSDM1_FLT0_IRQHandler,Default_Handler
.weak DFSDM1_FLT1_IRQHandler
.thumb_set DFSDM1_FLT1_IRQHandler,Default_Handler
.weak CAN2_TX_IRQHandler
.thumb_set CAN2_TX_IRQHandler,Default_Handler
.weak CAN2_RX0_IRQHandler
.thumb_set CAN2_RX0_IRQHandler,Default_Handler
.weak CAN2_RX1_IRQHandler
.thumb_set CAN2_RX1_IRQHandler,Default_Handler
.weak CAN2_SCE_IRQHandler
.thumb_set CAN2_SCE_IRQHandler,Default_Handler
.weak OTG_FS_IRQHandler
.thumb_set OTG_FS_IRQHandler,Default_Handler
.weak DMA2_Stream5_IRQHandler
.thumb_set DMA2_Stream5_IRQHandler,Default_Handler
.weak DMA2_Stream6_IRQHandler
.thumb_set DMA2_Stream6_IRQHandler,Default_Handler
.weak DMA2_Stream7_IRQHandler
.thumb_set DMA2_Stream7_IRQHandler,Default_Handler
.weak USART6_IRQHandler
.thumb_set USART6_IRQHandler,Default_Handler
.weak I2C3_EV_IRQHandler
.thumb_set I2C3_EV_IRQHandler,Default_Handler
.weak I2C3_ER_IRQHandler
.thumb_set I2C3_ER_IRQHandler,Default_Handler
.weak CAN3_TX_IRQHandler
.thumb_set CAN3_TX_IRQHandler,Default_Handler
.weak CAN3_RX0_IRQHandler
.thumb_set CAN3_RX0_IRQHandler,Default_Handler
.weak CAN3_RX1_IRQHandler
.thumb_set CAN3_RX1_IRQHandler,Default_Handler
.weak CAN3_SCE_IRQHandler
.thumb_set CAN3_SCE_IRQHandler,Default_Handler
.weak RNG_IRQHandler
.thumb_set RNG_IRQHandler,Default_Handler
.weak FPU_IRQHandler
.thumb_set FPU_IRQHandler,Default_Handler
.weak UART7_IRQHandler
.thumb_set UART7_IRQHandler,Default_Handler
.weak UART8_IRQHandler
.thumb_set UART8_IRQHandler,Default_Handler
.weak SPI4_IRQHandler
.thumb_set SPI4_IRQHandler,Default_Handler
.weak SPI5_IRQHandler
.thumb_set SPI5_IRQHandler,Default_Handler
.weak SAI1_IRQHandler
.thumb_set SAI1_IRQHandler,Default_Handler
.weak UART9_IRQHandler
.thumb_set UART9_IRQHandler,Default_Handler
.weak UART10_IRQHandler
.thumb_set UART10_IRQHandler,Default_Handler
.weak QUADSPI_IRQHandler
.thumb_set QUADSPI_IRQHandler,Default_Handler
.weak FMPI2C1_EV_IRQHandler
.thumb_set FMPI2C1_EV_IRQHandler,Default_Handler
.weak FMPI2C1_ER_IRQHandler
.thumb_set FMPI2C1_ER_IRQHandler,Default_Handler
.weak LPTIM1_IRQHandler
.thumb_set LPTIM1_IRQHandler,Default_Handler
.weak DFSDM2_FLT0_IRQHandler
.thumb_set DFSDM2_FLT0_IRQHandler,Default_Handler
.weak DFSDM2_FLT1_IRQHandler
.thumb_set DFSDM2_FLT1_IRQHandler,Default_Handler
.weak DFSDM2_FLT2_IRQHandler
.thumb_set DFSDM2_FLT2_IRQHandler,Default_Handler
.weak DFSDM2_FLT3_IRQHandler
.thumb_set DFSDM2_FLT3_IRQHandler,Default_Handler
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large Load Diff

View File

@ -171,6 +171,10 @@
#elif defined(STM32F411xE)
#define STM32F411xx
#include "stm32f411xe.h"
#elif defined(STM32F413xH)
// #define STM32F411xx
#define STM32F401xx
#include "stm32f413xx.h"
#elif defined(STM32F446xx)
#include "stm32f446xx.h"
#else

View File

@ -251,9 +251,9 @@
/************************* PLL Parameters *************************************/
// PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
// USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ <-- should be 48Mhz
// SYSCLK = PLL_VCO / PLL_P
// PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
// USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ <-- should be 48Mhz
// SYSCLK = PLL_VCO / PLL_P
#define PLL_M 8
#define PLL_Q 7
@ -273,7 +273,14 @@
#define PLL_P 4
#endif /* STM32F401xx */
#if defined (STM32F411xx) // 96Mhz
#if defined (STM32F411xx) // 100Mhz
#undef PLL_Q
#define PLL_N 384
#define PLL_P 4
#define PLL_Q 8
#endif /* STM32F411xx */
#if defined (STM32F413xx) // 100Mhz
#undef PLL_Q
#define PLL_N 384
#define PLL_P 4

View File

@ -1,7 +1,7 @@
/**
******************************************************************************
* @file : usbd_conf.c
* @date : 19/05/2015 14:02:19
* @date : 19/05/2015 14:02:19
* @version : v1.0_Cube
* @brief : This file implements the board support package for the USB device library
******************************************************************************
@ -69,11 +69,11 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE) ; // __USB_OTG_FS_CLK_ENABLE();
/**USB_OTG_FS GPIO Configuration
/**USB_OTG_FS GPIO Configuration
PA9 ------> USB_OTG_FS_VBUS
PA11 ------> USB_OTG_FS_DM
PA12 ------> USB_OTG_FS_DP
PA12 ------> USB_OTG_FS_DP
*/
/* Configure DM DP Pins */
@ -208,27 +208,27 @@ void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd)
* @retval None
*/
void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
{
{
USBD_SpeedTypeDef speed = USBD_SPEED_FULL;
/*Set USB Current Speed*/
switch (hpcd->Init.speed)
{
#ifndef STM32F1
#ifndef STM32F1
case PCD_SPEED_HIGH:
speed = USBD_SPEED_HIGH;
break;
#endif
#endif
case PCD_SPEED_FULL:
speed = USBD_SPEED_FULL;
speed = USBD_SPEED_FULL;
break;
default:
speed = USBD_SPEED_FULL;
break;
speed = USBD_SPEED_FULL;
break;
}
USBD_LL_SetSpeed(hpcd->pData, speed);
USBD_LL_SetSpeed(hpcd->pData, speed);
/*Reset Device*/
USBD_LL_Reset(hpcd->pData);
}
@ -243,9 +243,9 @@ void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
{
/* Inform USB library that core enters in suspend Mode */
USBD_LL_Suspend(hpcd->pData);
#ifndef STM32F1
#ifndef STM32F1
__HAL_PCD_GATE_PHYCLOCK(hpcd);
#endif
#endif
/*Enter in STOP mode */
/* USER CODE BEGIN 2 */
if (hpcd->Init.low_power_enable)
@ -321,11 +321,11 @@ void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_Init (USBD_HandleTypeDef *pdev)
{
{
/* Init USB_IP */
/* Link The driver to the stack */
/* Link The driver to the stack */
hpcd_USB_OTG_FS.pData = pdev;
pdev->pData = &hpcd_USB_OTG_FS;
pdev->pData = &hpcd_USB_OTG_FS;
#ifdef STM32F4
hpcd_USB_OTG_FS.Instance = USB_OTG_FS;
hpcd_USB_OTG_FS.Init.dev_endpoints = 4;
@ -336,7 +336,11 @@ USBD_StatusTypeDef USBD_LL_Init (USBD_HandleTypeDef *pdev)
hpcd_USB_OTG_FS.Init.Sof_enable = ENABLE;
hpcd_USB_OTG_FS.Init.low_power_enable = DISABLE;
hpcd_USB_OTG_FS.Init.lpm_enable = DISABLE;
#ifdef USB_NO_VBUS_SENSE
hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE;
#else
hpcd_USB_OTG_FS.Init.vbus_sensing_enable = ENABLE;
#endif
hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE;
HAL_PCD_Init(&hpcd_USB_OTG_FS);
@ -346,7 +350,7 @@ USBD_StatusTypeDef USBD_LL_Init (USBD_HandleTypeDef *pdev)
HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 1, 0x40); // HID IN
HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 2, 0x20); // CDC CMD
HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 3, 0x40); // CDC IN
#endif
#endif
#ifdef STM32F1
hpcd_USB_OTG_FS.Instance = USB;
hpcd_USB_OTG_FS.Init.dev_endpoints = 8;
@ -374,7 +378,7 @@ USBD_StatusTypeDef USBD_LL_Init (USBD_HandleTypeDef *pdev)
HAL_PCDEx_PMAConfig(pdev->pData , 0x01 , PCD_SNG_BUF, 0x110); // CDC OUT
HAL_PCDEx_PMAConfig(pdev->pData , 0x82 , PCD_SNG_BUF, 0x100); // CDC CMD
#endif
#endif
return USBD_OK;
}
@ -386,18 +390,18 @@ USBD_StatusTypeDef USBD_LL_Init (USBD_HandleTypeDef *pdev)
USBD_StatusTypeDef USBD_LL_DeInit (USBD_HandleTypeDef *pdev)
{
HAL_PCD_DeInit(pdev->pData);
return USBD_OK;
return USBD_OK;
}
/**
* @brief Starts the Low Level portion of the Device driver.
* @brief Starts the Low Level portion of the Device driver.
* @param pdev: Device handle
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev)
{
HAL_PCD_Start(pdev->pData);
return USBD_OK;
return USBD_OK;
}
/**
@ -408,7 +412,7 @@ USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev)
USBD_StatusTypeDef USBD_LL_Stop (USBD_HandleTypeDef *pdev)
{
HAL_PCD_Stop(pdev->pData);
return USBD_OK;
return USBD_OK;
}
/**
@ -419,18 +423,18 @@ USBD_StatusTypeDef USBD_LL_Stop (USBD_HandleTypeDef *pdev)
* @param ep_mps: Endpoint Max Packet Size
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_OpenEP (USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
USBD_StatusTypeDef USBD_LL_OpenEP (USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
uint8_t ep_type,
uint16_t ep_mps)
{
HAL_PCD_EP_Open(pdev->pData,
ep_addr,
ep_mps,
HAL_PCD_EP_Open(pdev->pData,
ep_addr,
ep_mps,
ep_type);
return USBD_OK;
return USBD_OK;
}
/**
@ -439,11 +443,11 @@ USBD_StatusTypeDef USBD_LL_OpenEP (USBD_HandleTypeDef *pdev,
* @param ep_addr: Endpoint Number
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_CloseEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
USBD_StatusTypeDef USBD_LL_CloseEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
HAL_PCD_EP_Close(pdev->pData, ep_addr);
return USBD_OK;
return USBD_OK;
}
/**
@ -452,11 +456,11 @@ USBD_StatusTypeDef USBD_LL_CloseEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
* @param ep_addr: Endpoint Number
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_FlushEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
USBD_StatusTypeDef USBD_LL_FlushEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
HAL_PCD_EP_Flush(pdev->pData, ep_addr);
return USBD_OK;
return USBD_OK;
}
/**
@ -465,11 +469,11 @@ USBD_StatusTypeDef USBD_LL_FlushEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
* @param ep_addr: Endpoint Number
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_StallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
USBD_StatusTypeDef USBD_LL_StallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
HAL_PCD_EP_SetStall(pdev->pData, ep_addr);
return USBD_OK;
return USBD_OK;
}
/**
@ -478,11 +482,11 @@ USBD_StatusTypeDef USBD_LL_StallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
* @param ep_addr: Endpoint Number
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_ClearStallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
USBD_StatusTypeDef USBD_LL_ClearStallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
HAL_PCD_EP_ClrStall(pdev->pData, ep_addr);
return USBD_OK;
HAL_PCD_EP_ClrStall(pdev->pData, ep_addr);
return USBD_OK;
}
/**
@ -491,17 +495,17 @@ USBD_StatusTypeDef USBD_LL_ClearStallEP (USBD_HandleTypeDef *pdev, uint8_t ep_a
* @param ep_addr: Endpoint Number
* @retval Stall (1: Yes, 0: No)
*/
uint8_t USBD_LL_IsStallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
uint8_t USBD_LL_IsStallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
PCD_HandleTypeDef *hpcd = pdev->pData;
PCD_HandleTypeDef *hpcd = pdev->pData;
if((ep_addr & 0x80) == 0x80)
{
return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
}
else
{
return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
}
}
/**
@ -510,11 +514,11 @@ uint8_t USBD_LL_IsStallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
* @param ep_addr: Endpoint Number
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_SetUSBAddress (USBD_HandleTypeDef *pdev, uint8_t dev_addr)
USBD_StatusTypeDef USBD_LL_SetUSBAddress (USBD_HandleTypeDef *pdev, uint8_t dev_addr)
{
HAL_PCD_SetAddress(pdev->pData, dev_addr);
return USBD_OK;
return USBD_OK;
}
/**
@ -522,17 +526,17 @@ USBD_StatusTypeDef USBD_LL_SetUSBAddress (USBD_HandleTypeDef *pdev, uint8_t dev
* @param pdev: Device handle
* @param ep_addr: Endpoint Number
* @param pbuf: Pointer to data to be sent
* @param size: Data size
* @param size: Data size
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_Transmit (USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
USBD_StatusTypeDef USBD_LL_Transmit (USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
uint8_t *pbuf,
uint16_t size)
{
HAL_PCD_EP_Transmit(pdev->pData, ep_addr, pbuf, size);
return USBD_OK;
return USBD_OK;
}
/**
@ -543,14 +547,14 @@ USBD_StatusTypeDef USBD_LL_Transmit (USBD_HandleTypeDef *pdev,
* @param size: Data size
* @retval USBD Status
*/
USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
uint8_t *pbuf,
uint16_t size)
{
HAL_PCD_EP_Receive(pdev->pData, ep_addr, pbuf, size);
return USBD_OK;
return USBD_OK;
}
/**
@ -559,7 +563,7 @@ USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev,
* @param ep_addr: Endpoint Number
* @retval Recived Data Size
*/
uint32_t USBD_LL_GetRxDataSize (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
uint32_t USBD_LL_GetRxDataSize (USBD_HandleTypeDef *pdev, uint8_t ep_addr)
{
return HAL_PCD_EP_GetRxCount(pdev->pData, ep_addr);
}
@ -579,25 +583,25 @@ void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
if (hpcd->Init.low_power_enable)
{
SystemClock_Config();
/* Reset SLEEPDEEP bit of Cortex System Control Register */
SCB->SCR &= (uint32_t)~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
}
__HAL_PCD_UNGATE_PHYCLOCK(hpcd);
USBD_LL_Resume(hpcd->pData);
USBD_LL_Resume(hpcd->pData);
break;
case PCD_LPM_L1_ACTIVE:
__HAL_PCD_GATE_PHYCLOCK(hpcd);
USBD_LL_Suspend(hpcd->pData);
/*Enter in STOP mode */
if (hpcd->Init.low_power_enable)
{
{
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register */
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
}
break;
}
break;
}
}
#endif
@ -608,6 +612,6 @@ void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
*/
void USBD_LL_Delay (uint32_t Delay)
{
HAL_Delay(Delay);
HAL_Delay(Delay);
}
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/