Skip to content

Commit f1d8792

Browse files
committed
Add stm32f3xx_can_rtos example
- Add example project for STM32F3DISCOVERY board - This project uses FreeRTOS and serves as an example which uses FreeRTOS locking. It also serves as an example for the CO_storageFlash module to write OD values to the flash memory.
1 parent 1f2049d commit f1d8792

File tree

123 files changed

+141664
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+141664
-0
lines changed

examples/stm32f3xx_can_rtos/.cproject

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

examples/stm32f3xx_can_rtos/.project

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>CANOpenNode-STM32F3DISCO</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
10+
<triggers>clean,full,incremental,</triggers>
11+
<arguments>
12+
</arguments>
13+
</buildCommand>
14+
<buildCommand>
15+
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
16+
<triggers>full,incremental,</triggers>
17+
<arguments>
18+
</arguments>
19+
</buildCommand>
20+
</buildSpec>
21+
<natures>
22+
<nature>com.st.stm32cube.ide.mcu.MCUProjectNature</nature>
23+
<nature>com.st.stm32cube.ide.mcu.MCUCubeProjectNature</nature>
24+
<nature>org.eclipse.cdt.core.cnature</nature>
25+
<nature>com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature</nature>
26+
<nature>com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature</nature>
27+
<nature>com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature</nature>
28+
<nature>com.st.stm32cube.ide.mcu.MCURootProjectNature</nature>
29+
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
30+
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
31+
</natures>
32+
<linkedResources>
33+
<link>
34+
<name>CANopenNode</name>
35+
<type>2</type>
36+
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/CANopenNode</locationURI>
37+
</link>
38+
<link>
39+
<name>CANopenNode_STM32</name>
40+
<type>2</type>
41+
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/CANopenNode_STM32</locationURI>
42+
</link>
43+
</linkedResources>
44+
</projectDescription>
Lines changed: 321 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,321 @@
1+
#MicroXplorer Configuration settings - do not modify
2+
CAD.formats=
3+
CAD.pinconfig=
4+
CAD.provider=
5+
CAN.BS1=CAN_BS1_13TQ
6+
CAN.BS2=CAN_BS2_2TQ
7+
CAN.CalculateBaudRate=125000
8+
CAN.CalculateTimeBit=8000
9+
CAN.CalculateTimeQuantum=500.0
10+
CAN.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,BS1,BS2,NART
11+
CAN.NART=ENABLE
12+
CAN.Prescaler=18
13+
FREERTOS.FootprintOK=true
14+
FREERTOS.HEAP_NUMBER=1
15+
FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,HEAP_NUMBER,FootprintOK
16+
FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;commTask,32,256,StartCommTask,Default,NULL,Dynamic,NULL,NULL
17+
FREERTOS.configTOTAL_HEAP_SIZE=6144
18+
File.Version=6
19+
GPIO.groupedBy=Group By Peripherals
20+
KeepUserPlacement=false
21+
Mcu.CPN=STM32F303VCT6
22+
Mcu.Family=STM32F3
23+
Mcu.IP0=CAN
24+
Mcu.IP1=FREERTOS
25+
Mcu.IP2=NVIC
26+
Mcu.IP3=RCC
27+
Mcu.IP4=SYS
28+
Mcu.IP5=TIM15
29+
Mcu.IPNb=6
30+
Mcu.Name=STM32F303V(B-C)Tx
31+
Mcu.Package=LQFP100
32+
Mcu.Pin0=PE2
33+
Mcu.Pin1=PE3
34+
Mcu.Pin10=PA6
35+
Mcu.Pin11=PA7
36+
Mcu.Pin12=PE8
37+
Mcu.Pin13=PE9
38+
Mcu.Pin14=PE10
39+
Mcu.Pin15=PE11
40+
Mcu.Pin16=PE12
41+
Mcu.Pin17=PE13
42+
Mcu.Pin18=PE14
43+
Mcu.Pin19=PE15
44+
Mcu.Pin2=PE4
45+
Mcu.Pin20=PA11
46+
Mcu.Pin21=PA12
47+
Mcu.Pin22=PA13
48+
Mcu.Pin23=PA14
49+
Mcu.Pin24=PD0
50+
Mcu.Pin25=PD1
51+
Mcu.Pin26=PB3
52+
Mcu.Pin27=PB6
53+
Mcu.Pin28=PB7
54+
Mcu.Pin29=PE0
55+
Mcu.Pin3=PE5
56+
Mcu.Pin30=PE1
57+
Mcu.Pin31=VP_FREERTOS_VS_CMSIS_V2
58+
Mcu.Pin32=VP_SYS_VS_tim2
59+
Mcu.Pin33=VP_TIM15_VS_ClockSourceINT
60+
Mcu.Pin4=PC14-OSC32_IN
61+
Mcu.Pin5=PC15-OSC32_OUT
62+
Mcu.Pin6=PF0-OSC_IN
63+
Mcu.Pin7=PF1-OSC_OUT
64+
Mcu.Pin8=PA0
65+
Mcu.Pin9=PA5
66+
Mcu.PinsNb=34
67+
Mcu.ThirdPartyNb=0
68+
Mcu.UserConstants=
69+
Mcu.UserName=STM32F303VCTx
70+
MxCube.Version=6.12.0
71+
MxDb.Version=DB.6.0.120
72+
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
73+
NVIC.CAN_RX1_IRQn=true\:4\:0\:true\:false\:true\:false\:true\:true\:true
74+
NVIC.CAN_SCE_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
75+
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
76+
NVIC.ForceEnableDMAVector=true
77+
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
78+
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
79+
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
80+
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false
81+
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
82+
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false\:false
83+
NVIC.SavedPendsvIrqHandlerGenerated=true
84+
NVIC.SavedSvcallIrqHandlerGenerated=true
85+
NVIC.SavedSystickIrqHandlerGenerated=true
86+
NVIC.SysTick_IRQn=true\:15\:0\:true\:false\:false\:true\:true\:true\:false
87+
NVIC.TIM1_BRK_TIM15_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
88+
NVIC.TIM2_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
89+
NVIC.TimeBase=TIM2_IRQn
90+
NVIC.TimeBaseIP=TIM2
91+
NVIC.USB_HP_CAN_TX_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
92+
NVIC.USB_LP_CAN_RX0_IRQn=true\:4\:0\:true\:false\:true\:false\:true\:true\:true
93+
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
94+
PA0.GPIOParameters=GPIO_Label
95+
PA0.GPIO_Label=B1 [Blue PushButton]
96+
PA0.Locked=true
97+
PA0.Signal=GPIO_Input
98+
PA11.GPIOParameters=GPIO_Label
99+
PA11.GPIO_Label=DM
100+
PA11.Locked=true
101+
PA11.Signal=USB_DM
102+
PA12.GPIOParameters=GPIO_Label
103+
PA12.GPIO_Label=DP
104+
PA12.Locked=true
105+
PA12.Signal=USB_DP
106+
PA13.GPIOParameters=GPIO_Label
107+
PA13.GPIO_Label=SWDIO
108+
PA13.Locked=true
109+
PA13.Mode=Serial_Wire
110+
PA13.Signal=SYS_JTMS-SWDIO
111+
PA14.GPIOParameters=GPIO_Label
112+
PA14.GPIO_Label=SWCLK
113+
PA14.Locked=true
114+
PA14.Mode=Serial_Wire
115+
PA14.Signal=SYS_JTCK-SWCLK
116+
PA5.GPIOParameters=GPIO_Label
117+
PA5.GPIO_Label=SPI1_SCK [L3GD20_SCL/SPC]
118+
PA5.Locked=true
119+
PA5.Signal=SPI1_SCK
120+
PA6.GPIOParameters=GPIO_Label
121+
PA6.GPIO_Label=SPI1_MISO [L3GD20_SA0/SDO]
122+
PA6.Locked=true
123+
PA6.Signal=SPI1_MISO
124+
PA7.GPIOParameters=GPIO_Label
125+
PA7.GPIO_Label=SPI1_MISO [L3GD20_SDA/SDI/SDO]
126+
PA7.Locked=true
127+
PA7.Signal=SPI1_MOSI
128+
PB3.GPIOParameters=GPIO_Label
129+
PB3.GPIO_Label=SWO
130+
PB3.Locked=true
131+
PB3.Signal=SYS_JTDO-TRACESWO
132+
PB6.GPIOParameters=GPIO_Label,GPIO_Pu
133+
PB6.GPIO_Label=I2C1_SCL [LSM303DLHC_SCL]
134+
PB6.GPIO_Pu=GPIO_PULLUP
135+
PB6.Locked=true
136+
PB6.Signal=I2C1_SCL
137+
PB7.GPIOParameters=GPIO_Label,GPIO_Pu
138+
PB7.GPIO_Label=I2C1_SDA [LSM303DLHC_SDA]
139+
PB7.GPIO_Pu=GPIO_PULLUP
140+
PB7.Locked=true
141+
PB7.Signal=I2C1_SDA
142+
PC14-OSC32_IN.GPIOParameters=GPIO_Label
143+
PC14-OSC32_IN.GPIO_Label=OSC32_IN
144+
PC14-OSC32_IN.Locked=true
145+
PC14-OSC32_IN.Signal=RCC_OSC32_IN
146+
PC15-OSC32_OUT.GPIOParameters=GPIO_Label
147+
PC15-OSC32_OUT.GPIO_Label=OSC32_OUT
148+
PC15-OSC32_OUT.Locked=true
149+
PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
150+
PD0.Mode=CAN_Activate
151+
PD0.Signal=CAN_RX
152+
PD1.Locked=true
153+
PD1.Mode=CAN_Activate
154+
PD1.Signal=CAN_TX
155+
PE0.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
156+
PE0.GPIO_Label=MEMS_INT1 [L3GD20_INT1]
157+
PE0.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
158+
PE0.Locked=true
159+
PE0.Signal=GPXTI0
160+
PE1.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
161+
PE1.GPIO_Label=MEMS_INT2 [L3GD20_DRDY/INT2]
162+
PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
163+
PE1.Locked=true
164+
PE1.Signal=GPXTI1
165+
PE10.GPIOParameters=GPIO_Label
166+
PE10.GPIO_Label=LD5 [Orange Led]
167+
PE10.Locked=true
168+
PE10.Signal=GPIO_Output
169+
PE11.GPIOParameters=GPIO_Label
170+
PE11.GPIO_Label=LD7 [Green Led]
171+
PE11.Locked=true
172+
PE11.Signal=GPIO_Output
173+
PE12.GPIOParameters=GPIO_Label
174+
PE12.GPIO_Label=LD9 [Blue Led]
175+
PE12.Locked=true
176+
PE12.Signal=GPIO_Output
177+
PE13.GPIOParameters=GPIO_Label
178+
PE13.GPIO_Label=LD10 [Red Led]
179+
PE13.Locked=true
180+
PE13.Signal=GPIO_Output
181+
PE14.GPIOParameters=GPIO_Label
182+
PE14.GPIO_Label=LD8 [Orange Led]
183+
PE14.Locked=true
184+
PE14.Signal=GPIO_Output
185+
PE15.GPIOParameters=GPIO_Label
186+
PE15.GPIO_Label=LD6 [Green Led]
187+
PE15.Locked=true
188+
PE15.Signal=GPIO_Output
189+
PE2.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
190+
PE2.GPIO_Label=DRDY [LSM303DLHC_DRDY]
191+
PE2.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
192+
PE2.Locked=true
193+
PE2.Signal=GPXTI2
194+
PE3.GPIOParameters=GPIO_Label
195+
PE3.GPIO_Label=CS_I2C/SPI [L3GD20_CS_I2C/SPI]
196+
PE3.Locked=true
197+
PE3.Signal=GPIO_Output
198+
PE4.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
199+
PE4.GPIO_Label=MEMS_INT3 [LSM303DLHC_INT1]
200+
PE4.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
201+
PE4.Locked=true
202+
PE4.Signal=GPXTI4
203+
PE5.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
204+
PE5.GPIO_Label=MEMS_INT4 [LSM303DLHC_INT2]
205+
PE5.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
206+
PE5.Locked=true
207+
PE5.Signal=GPXTI5
208+
PE8.GPIOParameters=GPIO_Label
209+
PE8.GPIO_Label=LD4 [Blue Led]
210+
PE8.Locked=true
211+
PE8.Signal=GPIO_Output
212+
PE9.GPIOParameters=GPIO_Label
213+
PE9.GPIO_Label=LD3 [Red Led]
214+
PE9.Locked=true
215+
PE9.Signal=GPIO_Output
216+
PF0-OSC_IN.GPIOParameters=GPIO_Label
217+
PF0-OSC_IN.GPIO_Label=OSC_IN
218+
PF0-OSC_IN.Locked=true
219+
PF0-OSC_IN.Mode=HSE-External-Clock-Source
220+
PF0-OSC_IN.Signal=RCC_OSC_IN
221+
PF1-OSC_OUT.GPIOParameters=GPIO_Label
222+
PF1-OSC_OUT.GPIO_Label=OSC_OUT
223+
PF1-OSC_OUT.Locked=true
224+
PF1-OSC_OUT.Signal=RCC_OSC_OUT
225+
PinOutPanel.RotationAngle=0
226+
ProjectManager.AskForMigrate=true
227+
ProjectManager.BackupPrevious=false
228+
ProjectManager.CompilerOptimize=6
229+
ProjectManager.ComputerToolchain=false
230+
ProjectManager.CoupleFile=true
231+
ProjectManager.CustomerFirmwarePackage=
232+
ProjectManager.DefaultFWLocation=true
233+
ProjectManager.DeletePrevious=true
234+
ProjectManager.DeviceId=STM32F303VCTx
235+
ProjectManager.FirmwarePackage=STM32Cube FW_F3 V1.11.5
236+
ProjectManager.FreePins=false
237+
ProjectManager.HalAssertFull=false
238+
ProjectManager.HeapSize=0x200
239+
ProjectManager.KeepUserCode=true
240+
ProjectManager.LastFirmware=true
241+
ProjectManager.LibraryCopy=1
242+
ProjectManager.MainLocation=Core/Src
243+
ProjectManager.NoMain=false
244+
ProjectManager.PreviousToolchain=STM32CubeIDE
245+
ProjectManager.ProjectBuild=false
246+
ProjectManager.ProjectFileName=CANOpenNode-STM32F3DISCO.ioc
247+
ProjectManager.ProjectName=CANOpenNode-STM32F3DISCO
248+
ProjectManager.ProjectStructure=
249+
ProjectManager.RegisterCallBack=
250+
ProjectManager.StackSize=0x400
251+
ProjectManager.TargetToolchain=STM32CubeIDE
252+
ProjectManager.ToolChainLocation=
253+
ProjectManager.UAScriptAfterPath=
254+
ProjectManager.UAScriptBeforePath=
255+
ProjectManager.UnderRoot=true
256+
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_CAN_Init-CAN-false-HAL-true,4-MX_TIM8_Init-TIM8-false-HAL-true,5-MX_TIM16_Init-TIM16-false-HAL-true,6-MX_TIM15_Init-TIM15-false-HAL-true,7-MX_CRC_Init-CRC-false-HAL-true
257+
RCC.ADC12outputFreq_Value=72000000
258+
RCC.ADC34outputFreq_Value=72000000
259+
RCC.AHBFreq_Value=72000000
260+
RCC.APB1CLKDivider=RCC_HCLK_DIV2
261+
RCC.APB1Freq_Value=36000000
262+
RCC.APB1TimFreq_Value=72000000
263+
RCC.APB2CLKDivider=RCC_HCLK_DIV2
264+
RCC.APB2Freq_Value=36000000
265+
RCC.APB2TimFreq_Value=72000000
266+
RCC.CortexFreq_Value=72000000
267+
RCC.FCLKCortexFreq_Value=72000000
268+
RCC.FamilyName=M
269+
RCC.HCLKFreq_Value=72000000
270+
RCC.HSEPLLFreq_Value=8000000
271+
RCC.HSE_VALUE=8000000
272+
RCC.HSIPLLFreq_Value=4000000
273+
RCC.HSI_VALUE=8000000
274+
RCC.I2C1Freq_Value=8000000
275+
RCC.I2C2Freq_Value=8000000
276+
RCC.I2SClocksFreq_Value=72000000
277+
RCC.IPParameters=ADC12outputFreq_Value,ADC34outputFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSEPLLFreq_Value,HSE_VALUE,HSIPLLFreq_Value,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,PRESCALERUSB,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSourceVirtual,TIM1Freq_Value,TIM2Freq_Value,TIM8Freq_Value,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOOutput2Freq_Value
278+
RCC.LSE_VALUE=32768
279+
RCC.LSI_VALUE=40000
280+
RCC.MCOFreq_Value=72000000
281+
RCC.PLLCLKFreq_Value=72000000
282+
RCC.PLLMCOFreq_Value=36000000
283+
RCC.PLLMUL=RCC_PLL_MUL9
284+
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
285+
RCC.PRESCALERUSB=RCC_USBCLKSOURCE_PLL_DIV1_5
286+
RCC.RTCFreq_Value=40000
287+
RCC.RTCHSEDivFreq_Value=250000
288+
RCC.SYSCLKFreq_VALUE=72000000
289+
RCC.SYSCLKSourceVirtual=RCC_SYSCLKSOURCE_PLLCLK
290+
RCC.TIM1Freq_Value=72000000
291+
RCC.TIM2Freq_Value=72000000
292+
RCC.TIM8Freq_Value=72000000
293+
RCC.UART4Freq_Value=36000000
294+
RCC.UART5Freq_Value=36000000
295+
RCC.USART1Freq_Value=36000000
296+
RCC.USART2Freq_Value=36000000
297+
RCC.USART3Freq_Value=36000000
298+
RCC.USBFreq_Value=48000000
299+
RCC.VCOOutput2Freq_Value=8000000
300+
SH.GPXTI0.0=GPIO_EXTI0
301+
SH.GPXTI0.ConfNb=1
302+
SH.GPXTI1.0=GPIO_EXTI1
303+
SH.GPXTI1.ConfNb=1
304+
SH.GPXTI2.0=GPIO_EXTI2
305+
SH.GPXTI2.ConfNb=1
306+
SH.GPXTI4.0=GPIO_EXTI4
307+
SH.GPXTI4.ConfNb=1
308+
SH.GPXTI5.0=GPIO_EXTI5
309+
SH.GPXTI5.ConfNb=1
310+
TIM15.IPParameters=Period
311+
TIM15.Period=36000
312+
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
313+
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
314+
VP_SYS_VS_tim2.Mode=TIM2
315+
VP_SYS_VS_tim2.Signal=SYS_VS_tim2
316+
VP_TIM15_VS_ClockSourceINT.Mode=Internal
317+
VP_TIM15_VS_ClockSourceINT.Signal=TIM15_VS_ClockSourceINT
318+
board=STM32F3DISCOVERY
319+
boardIOC=true
320+
rtos.0.ip=FREERTOS
321+
isbadioc=false

0 commit comments

Comments
 (0)