Skip to content

Commit cf4a537

Browse files
committed
add spi flash support
1 parent 583d7f4 commit cf4a537

File tree

16 files changed

+2024
-3126
lines changed

16 files changed

+2024
-3126
lines changed

bsp/stm32/stm32f407-micu/.config

Lines changed: 63 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ CONFIG_FINSH_THREAD_STACK_SIZE=4096
206206
CONFIG_FINSH_USING_HISTORY=y
207207
CONFIG_FINSH_HISTORY_LINES=5
208208
# CONFIG_FINSH_USING_WORD_OPERATION is not set
209+
# CONFIG_FINSH_USING_FUNC_EXT is not set
209210
CONFIG_FINSH_USING_SYMTAB=y
210211
CONFIG_FINSH_CMD_SIZE=80
211212
CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
@@ -218,7 +219,47 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
218219
#
219220
# DFS: device virtual file system
220221
#
221-
# CONFIG_RT_USING_DFS is not set
222+
CONFIG_RT_USING_DFS=y
223+
CONFIG_DFS_USING_POSIX=y
224+
CONFIG_DFS_USING_WORKDIR=y
225+
# CONFIG_RT_USING_DFS_MNTTABLE is not set
226+
CONFIG_DFS_FD_MAX=16
227+
CONFIG_RT_USING_DFS_V1=y
228+
# CONFIG_RT_USING_DFS_V2 is not set
229+
CONFIG_DFS_FILESYSTEMS_MAX=4
230+
CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
231+
CONFIG_RT_USING_DFS_ELMFAT=y
232+
233+
#
234+
# elm-chan's FatFs, Generic FAT Filesystem Module
235+
#
236+
CONFIG_RT_DFS_ELM_CODE_PAGE=437
237+
CONFIG_RT_DFS_ELM_WORD_ACCESS=y
238+
# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set
239+
# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set
240+
# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
241+
CONFIG_RT_DFS_ELM_USE_LFN_3=y
242+
CONFIG_RT_DFS_ELM_USE_LFN=3
243+
CONFIG_RT_DFS_ELM_LFN_UNICODE_0=y
244+
# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
245+
# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
246+
# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
247+
CONFIG_RT_DFS_ELM_LFN_UNICODE=0
248+
CONFIG_RT_DFS_ELM_MAX_LFN=255
249+
CONFIG_RT_DFS_ELM_DRIVES=2
250+
CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
251+
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
252+
CONFIG_RT_DFS_ELM_REENTRANT=y
253+
CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
254+
# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
255+
# end of elm-chan's FatFs, Generic FAT Filesystem Module
256+
257+
CONFIG_RT_USING_DFS_DEVFS=y
258+
# CONFIG_RT_USING_DFS_ROMFS is not set
259+
# CONFIG_RT_USING_DFS_CROMFS is not set
260+
# CONFIG_RT_USING_DFS_RAMFS is not set
261+
# CONFIG_RT_USING_DFS_TMPFS is not set
262+
# CONFIG_RT_USING_DFS_MQUEUE is not set
222263
# end of DFS: device virtual file system
223264

224265
# CONFIG_RT_USING_FAL is not set
@@ -255,7 +296,19 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
255296
# CONFIG_RT_USING_PM is not set
256297
# CONFIG_RT_USING_RTC is not set
257298
# CONFIG_RT_USING_SDIO is not set
258-
# CONFIG_RT_USING_SPI is not set
299+
CONFIG_RT_USING_SPI=y
300+
CONFIG_RT_USING_SPI_ISR=y
301+
# CONFIG_RT_USING_SOFT_SPI is not set
302+
# CONFIG_RT_USING_QSPI is not set
303+
# CONFIG_RT_USING_SPI_MSD is not set
304+
CONFIG_RT_USING_SFUD=y
305+
CONFIG_RT_SFUD_USING_SFDP=y
306+
CONFIG_RT_SFUD_USING_FLASH_INFO_TABLE=y
307+
# CONFIG_RT_SFUD_USING_QSPI is not set
308+
CONFIG_RT_SFUD_SPI_MAX_HZ=50000000
309+
# CONFIG_RT_DEBUG_SFUD is not set
310+
# CONFIG_RT_USING_ENC28J60 is not set
311+
# CONFIG_RT_USING_SPI_WIFI is not set
259312
# CONFIG_RT_USING_WDT is not set
260313
# CONFIG_RT_USING_AUDIO is not set
261314
# CONFIG_RT_USING_SENSOR is not set
@@ -358,8 +411,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
358411
# CONFIG_RT_USING_RT_LINK is not set
359412
# end of Utilities
360413

361-
# CONFIG_RT_USING_VBUS is not set
362-
363414
#
364415
# Using USB legacy version
365416
#
@@ -1437,6 +1488,9 @@ CONFIG_SOC_STM32F407VE=y
14371488
#
14381489
# Onboard Peripheral Drivers
14391490
#
1491+
CONFIG_BSP_USING_VIRTUAL_USART=y
1492+
CONFIG_BSP_USING_ON_BOARD_FLASH=y
1493+
# end of Onboard Peripheral Drivers
14401494

14411495
#
14421496
# On-chip Peripheral Drivers
@@ -1446,6 +1500,11 @@ CONFIG_BSP_USING_UART=y
14461500
CONFIG_BSP_STM32_UART_V1_TX_TIMEOUT=2000
14471501
CONFIG_BSP_USING_UART1=y
14481502
# CONFIG_BSP_UART1_RX_USING_DMA is not set
1503+
CONFIG_BSP_USING_SPI=y
1504+
CONFIG_BSP_USING_SPI1=y
1505+
CONFIG_BSP_SPI1_TX_USING_DMA=y
1506+
CONFIG_BSP_SPI1_RX_USING_DMA=y
1507+
# CONFIG_BSP_USING_SPI2 is not set
14491508
# CONFIG_BSP_USING_RNG is not set
14501509
# CONFIG_BSP_USING_UDID is not set
14511510
# end of On-chip Peripheral Drivers

bsp/stm32/stm32f407-micu/board/CubeMX_Config/.mxproject

Lines changed: 8 additions & 8 deletions
Large diffs are not rendered by default.

bsp/stm32/stm32f407-micu/board/CubeMX_Config/CubeMX_Config.ioc

Lines changed: 62 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,38 @@ GPIO.groupedBy=Group By Peripherals
77
KeepUserPlacement=false
88
Mcu.CPN=STM32F407VET6
99
Mcu.Family=STM32F4
10-
Mcu.IP0=NVIC
11-
Mcu.IP1=RCC
12-
Mcu.IP2=SYS
13-
Mcu.IP3=USART1
14-
Mcu.IPNb=4
10+
Mcu.IP0=I2C1
11+
Mcu.IP1=NVIC
12+
Mcu.IP2=RCC
13+
Mcu.IP3=SDIO
14+
Mcu.IP4=SPI1
15+
Mcu.IP5=SYS
16+
Mcu.IP6=USART1
17+
Mcu.IPNb=7
1518
Mcu.Name=STM32F407V(E-G)Tx
1619
Mcu.Package=LQFP100
1720
Mcu.Pin0=PC14-OSC32_IN
1821
Mcu.Pin1=PC15-OSC32_OUT
22+
Mcu.Pin10=PA9
23+
Mcu.Pin11=PA10
24+
Mcu.Pin12=PA13
25+
Mcu.Pin13=PA14
26+
Mcu.Pin14=PC10
27+
Mcu.Pin15=PC11
28+
Mcu.Pin16=PC12
29+
Mcu.Pin17=PD2
30+
Mcu.Pin18=PB6
31+
Mcu.Pin19=PB7
1932
Mcu.Pin2=PH0-OSC_IN
33+
Mcu.Pin20=VP_SYS_VS_Systick
2034
Mcu.Pin3=PH1-OSC_OUT
21-
Mcu.Pin4=PA9
22-
Mcu.Pin5=PA10
23-
Mcu.Pin6=PA13
24-
Mcu.Pin7=PA14
25-
Mcu.Pin8=VP_SYS_VS_Systick
26-
Mcu.PinsNb=9
35+
Mcu.Pin4=PA4
36+
Mcu.Pin5=PA5
37+
Mcu.Pin6=PA6
38+
Mcu.Pin7=PA7
39+
Mcu.Pin8=PC8
40+
Mcu.Pin9=PC9
41+
Mcu.PinsNb=21
2742
Mcu.ThirdPartyNb=0
2843
Mcu.UserConstants=
2944
Mcu.UserName=STM32F407VETx
@@ -46,12 +61,38 @@ PA13.Mode=Serial_Wire
4661
PA13.Signal=SYS_JTMS-SWDIO
4762
PA14.Mode=Serial_Wire
4863
PA14.Signal=SYS_JTCK-SWCLK
64+
PA4.GPIOParameters=GPIO_Label
65+
PA4.GPIO_Label=SPI1_CS
66+
PA4.Locked=true
67+
PA4.Signal=GPIO_Output
68+
PA5.Mode=Full_Duplex_Master
69+
PA5.Signal=SPI1_SCK
70+
PA6.Mode=Full_Duplex_Master
71+
PA6.Signal=SPI1_MISO
72+
PA7.Mode=Full_Duplex_Master
73+
PA7.Signal=SPI1_MOSI
4974
PA9.Mode=Asynchronous
5075
PA9.Signal=USART1_TX
76+
PB6.Mode=I2C
77+
PB6.Signal=I2C1_SCL
78+
PB7.Mode=I2C
79+
PB7.Signal=I2C1_SDA
80+
PC10.Mode=SD_4_bits_Wide_bus
81+
PC10.Signal=SDIO_D2
82+
PC11.Mode=SD_4_bits_Wide_bus
83+
PC11.Signal=SDIO_D3
84+
PC12.Mode=SD_4_bits_Wide_bus
85+
PC12.Signal=SDIO_CK
5186
PC14-OSC32_IN.Mode=LSE-External-Oscillator
5287
PC14-OSC32_IN.Signal=RCC_OSC32_IN
5388
PC15-OSC32_OUT.Mode=LSE-External-Oscillator
5489
PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
90+
PC8.Mode=SD_4_bits_Wide_bus
91+
PC8.Signal=SDIO_D0
92+
PC9.Mode=SD_4_bits_Wide_bus
93+
PC9.Signal=SDIO_D1
94+
PD2.Mode=SD_4_bits_Wide_bus
95+
PD2.Signal=SDIO_CMD
5596
PH0-OSC_IN.Mode=HSE-External-Oscillator
5697
PH0-OSC_IN.Signal=RCC_OSC_IN
5798
PH1-OSC_OUT.Mode=HSE-External-Oscillator
@@ -88,8 +129,8 @@ ProjectManager.ToolChainLocation=
88129
ProjectManager.UAScriptAfterPath=
89130
ProjectManager.UAScriptBeforePath=
90131
ProjectManager.UnderRoot=false
91-
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART1_UART_Init-USART1-false-HAL-true
92-
RCC.48MHZClocksFreq_Value=84000000
132+
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_SPI1_Init-SPI1-false-HAL-true,5-MX_SDIO_SD_Init-SDIO-false-HAL-true
133+
RCC.48MHZClocksFreq_Value=48000000
93134
RCC.AHBFreq_Value=168000000
94135
RCC.APB1CLKDivider=RCC_HCLK_DIV4
95136
RCC.APB1Freq_Value=42000000
@@ -105,13 +146,14 @@ RCC.HCLKFreq_Value=168000000
105146
RCC.HSE_VALUE=8000000
106147
RCC.HSI_VALUE=16000000
107148
RCC.I2SClocksFreq_Value=192000000
108-
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
149+
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
109150
RCC.LSI_VALUE=32000
110151
RCC.MCO2PinFreq_Value=168000000
111152
RCC.PLLCLKFreq_Value=168000000
112153
RCC.PLLM=8
113154
RCC.PLLN=168
114-
RCC.PLLQCLKFreq_Value=84000000
155+
RCC.PLLQ=7
156+
RCC.PLLQCLKFreq_Value=48000000
115157
RCC.RTCFreq_Value=32000
116158
RCC.RTCHSEDivFreq_Value=4000000
117159
RCC.SYSCLKFreq_VALUE=168000000
@@ -120,6 +162,11 @@ RCC.VCOI2SOutputFreq_Value=384000000
120162
RCC.VCOInputFreq_Value=2000000
121163
RCC.VCOOutputFreq_Value=336000000
122164
RCC.VcooutputI2S=192000000
165+
SPI1.CalculateBaudRate=42.0 MBits/s
166+
SPI1.Direction=SPI_DIRECTION_2LINES
167+
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
168+
SPI1.Mode=SPI_MODE_MASTER
169+
SPI1.VirtualType=VM_MASTER
123170
USART1.IPParameters=VirtualMode
124171
USART1.VirtualMode=VM_ASYNC
125172
VP_SYS_VS_Systick.Mode=SysTick

bsp/stm32/stm32f407-micu/board/CubeMX_Config/Inc/main.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ void Error_Handler(void);
5757
/* USER CODE END EFP */
5858

5959
/* Private defines -----------------------------------------------------------*/
60+
#define SPI1_CS_Pin GPIO_PIN_4
61+
#define SPI1_CS_GPIO_Port GPIOA
6062

6163
/* USER CODE BEGIN Private defines */
6264

0 commit comments

Comments
 (0)