STM32 Cube integration.
ST have recently introduced the Cube libraries for their STM32 devices
I guess there are plans to integrate this into CTL/crossworks, now that the old firmware libraries are in their maintenance phase.
I've hacked a version of CTL to get the CTL and the Cube HAL to co exist - but its not pretty, so it'd be nice to see it integrated properly.
cheers
Mark
-
Hi Mark,
We released an updated STM32 CPU support package that supplies the CMSIS files used in the STM32 Cube distributions. Unfortunately ST removed the PLL setup code from the SystemInit() function so we had to update each affected (ST haven't dared to touch STM32F1/STM32L1) board support package with a constructor function to setup the PLL.
We have a program that can create crossstudio project files from their Atollic equivalents as shipped in the STM32 Cube distributions. Not sure how to release this program at the moment.
Regards
Michael
-
Hi Gerry,
Had a change of tack (the eclipse project files are a mess) the 3.3.1 release has a Keil MDK project file import capability. You can get early access to this here
http://www.rowleydownload.co.uk/snapshots/arm_crossworks_crossworks_v3_macos_x86.dmg
http://www.rowleydownload.co.uk/snapshots/arm_crossworks_crossworks_v3_linux_x86.tar.gz
http://www.rowleydownload.co.uk/snapshots/arm_crossworks_crossworks_v3_win_x86_setup.exe
Regards
Michael
-
Will this be the final approach to provide support for the STM32 Cube projects?
I currently have version 2 and I am thinking about upgrading to the newest version and want to ensure that this support will be part of what I am purchasing (i.e. if I upgrade now, will I be able to get the 3.3.1 update? )
-
Hi Michael
Seems that STMCube is still not stable. I've done many tests, and it is not doing what it should.
There is a Crossworks and FreeRTOS demo on the FreeRTOS site, those examples all work. I will use that as my basis, and then pull the STM StdPeripheral library into my project.
Thanks
Gerry
-
Hi.
Thanks for adding the Keil project importer - a pragmatic and important step for getting code from STMCube into Crossworks.
I've found similar problems to Gerry and got past them, so maybe some of my notes can be helpful -
I wanted to base a project off the STM32F429I-DISCO demonstration project. So I downloaded the stm32cubef4.zip file and extracted it so I had a STM32Cube_FW_F4_V1.3.0 folder. I imported the project Projects\STM32F429I-Discovery\Demonstrations\MDK-ARM\Project.uvproj using the template "ST_STM32F429I_DISCOVERY_EXE". The import was successful but the project didn't build.
- From the source files folder "Middlewares/FreeRTOS/Portable", removed the "Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c" file and added "Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" instead
- In the Project Properties -> User Include Directories, changed "../../../../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F" to "../../../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F"
- In the Code Generation Options, changed ARM FP ABI Type to "Hard"
- Got a strange error "X:/2/STM32Cube_FW_F4_V1.3.0/Projects/STM32F429I-Discovery/Demonstrations/MDK-ARM/../Config/LCDConf.c: No such file or directory". Removed "LCDConf.c" from the "Middlewares/STemWin/Config" folder (there is also a "LCDConf_stm32f429i_disco_MB1075.c" file, and I think it's really the absent "LCDConf.c" file).
- Removed the file "STemWin524b_CM4_OS_Keil.lib" file from the "Middlewares/STemWin/Library" source folder, and added "Middlewares/ST/STemWin/Lib/STemWin524b_CM4_OS_GCC.a" file instead.
- Imported the segment placement xml file into the project, and added a new segment:
<MemorySegment name="SDRAM1" >
<ProgramSection alignment="4" Load="No" name=".ExtRAMData" />
</MemorySegment>I guess only the first 3 points will be relevant to you. Anyway, I hope this helps.
Cheers,
Rob.
-
Thank you for implementing this - it is quite useful. FWIW, the first time I used it, CrossStudio crashed. I restarted CrossStudio and tried the import again and it succeeded. If I can provide any info. to help with debugging the reason for the first crash, please let me know what you need.
-
Can anyone commend about implementing CTL with when importing the CubeMX HAL?
I don't care if I use the MX/HAL or the older STM32's standard libs, but I'd like to try CTL along with that. Seems like it's a lot of trouble to use CubeMX, but there are advantages too.
Any thoughts on how to accomplish this? Would it be as simple as
- Create the project in CubeMX
- Import as uVision into Rowley
- Then add the CTL libs in and start creating the tasks?
Surely I'll have to look at what CTL needs for NVIC, Clock, Timers, but is this worth trying?
Please sign in to leave a comment.
Comments
22 comments